102 pages · engineers
The HTTP 200 is not a contract check
Conversion APIs accept malformed events and return 200. Pixels cache. Consent placeholders decode as base64. These pages are the field, the unit, and the fixture you put in the pipeline.
Pixels and tags
- A pixel is an HTTP request with a job Pixels · PMs, marketers, engineers
- An image cannot hash an email Pixels · engineers, marketers
- Noscript is a different request Pixels · engineers, marketers
- Impression and click are not the same URL Pixels · marketers, PMs, engineers
- Thank-you page pixels miss the backend sale Pixels · PMs, marketers, engineers
- The vendor host cannot see your cookie jar Pixels · engineers, PMs
- A cached impression is a lie Pixels · engineers, marketers
- A 200 in a click chain is a dead end Pixels · engineers, marketers
- The URL changed. The pixel did not. Pixels · engineers, PMs
- The pixel ran in the wrong frame Pixels · engineers
- UTM is not a click id Pixels · marketers, PMs, engineers
- Purchase does not belong on the landing page Pixels · marketers, PMs, engineers
- Not every 200 was a person Pixels · engineers, PMs, marketers
- The tag ran. The request did not. Pixels · engineers, marketers, PMs
- no-referrer means the collector guesses Pixels · engineers
- buyer@example.com in the query is a finding Pixels · engineers, PMs
- The fired URL still says CACHEBUSTER Pixels · engineers, marketers
- Say whether it has fired Pixels · engineers, marketers
- A first-party hostname is still their collector Pixels · engineers, PMs
- PageView fired twice on one load Pixels · engineers, marketers
Conversion APIs
- The browser never saw the purchase CAPI · PMs, marketers, engineers
- Two pipes, one conversion CAPI · engineers, marketers, PMs
- One event_id, two transports CAPI · engineers, PMs
- A conversion with nobody on it CAPI · marketers, engineers, PMs
- Tell Meta where the event happened CAPI · engineers
- Your API host is not a landing page CAPI · engineers
- sGTM is a proxy. CAPI is your job. CAPI · engineers, PMs
- Test events are not a lower environment CAPI · engineers, marketers
- 200 means the server was awake CAPI · engineers, PMs
- Retry the body, not a new conversion CAPI · engineers
- The conversion happened in Salesforce CAPI · PMs, marketers, engineers
- Enhanced conversions are hashed PII on the Ads tag CAPI · marketers, engineers
- Value without currency is a non-event CAPI · engineers, marketers
- Purchse is a custom event whether you meant it CAPI · marketers, engineers, PMs
- Do not fire the whole funnel on thank-you CAPI · marketers, PMs, engineers
- A refund is a measurement event CAPI · PMs, marketers, engineers
Identity and matching
- Hash email and phone. Leave the algorithm as SHA-256. Identity · engineers, marketers
- IP and user-agent are sent in the clear Identity · engineers
- Lowercase, trim, then hash Identity · engineers, marketers
- E.164, then SHA-256, not a local format Identity · engineers, marketers
- gclid, fbclid, ttclid, msclkid, li_fat_id Identity · marketers, engineers, PMs
- _fbp is the browser. _fbc is the click. Identity · engineers, marketers
- client_id is analytics. external_id is yours. Identity · engineers, PMs
- distinct_id is who PostHog and Mixpanel join on Identity · engineers, PMs
- Send the client IP, not the VPC NAT Identity · engineers
- The platform's graph is not your CDP Identity · PMs, engineers, marketers
- Safari will expire that cookie Identity · engineers, PMs
- Checkout on another host drops the click id Identity · engineers, marketers, PMs
Time and attribution
- Seconds, milliseconds, microseconds, ISO. Pick one. Time · engineers
- Ingestion time is not event time Time · engineers, PMs
- The window is a report setting, not a pixel Time · marketers, PMs, engineers
- Unix time has no timezone. Your shop does. Time · engineers, marketers
- Too late for the graph, still true in finance Time · engineers, marketers, PMs
- event_time in the future is a bug Time · engineers
- View-through is an impression credit, not a click Time · marketers, PMs, engineers
- Last click is a story. Data-driven is a model. Time · marketers, PMs, engineers
Consent and privacy
- A TC String is not the letters 1 or true Consent · engineers, PMs, marketers
- GPP header type is 3 Consent · engineers, PMs
- US Privacy was deprecated on 31 January 2024 Consent · engineers, PMs, marketers
- Consent Mode is a gtag signal, not a CMP Consent · engineers, marketers, PMs
- A banner that does not block still fires the pixel Consent · PMs, engineers, marketers
- CAPI still needs a lawful basis Consent · PMs, engineers
- Limited Data Use is a parameter, not a vibe Consent · engineers, PMs
- ATT is a prompt. IDFA is the identifier. Consent · engineers, PMs
- Child-directed traffic is not a tag setting you forget Consent · PMs, engineers
- Event logs are PII adjacent Consent · engineers, PMs
- Cookies are not the only measurement future Consent · PMs, engineers
- Aggregate reports are not a pixel HAR Consent · engineers, PMs
- The CMP choice has to survive into the URL Consent · engineers, marketers
- Withdrawing consent has to hit the same URL that accepted it Consent · engineers, PMs, marketers
- Two gdpr_consent parameters is not belt and suspenders Consent · engineers
Mobile and MMP
- The MMP endpoint is a contract, not fire-and-forget Mobile · engineers, PMs
- SKAN is a conversion value, not a click id Mobile · PMs, engineers, marketers
- Install is not session is not in-app purchase Mobile · PMs, marketers, engineers
- The install happened after the click Mobile · engineers, marketers
- The click was on the web. The conversion was in the app. Mobile · PMs, engineers, marketers
- IDFA is advertising. IDFV is the vendor. GAID is Android. Mobile · engineers, PMs
- Store receipts are the source of truth Mobile · engineers, PMs
- Device graphs got worse. Probabilistic got noisier. Mobile · PMs, engineers
Analytics and CDP
- timestamp_micros is 16 digits Analytics · engineers, PMs
- PostHog returns 200 and drops the event Analytics · engineers, PMs
- track without an event name still 200s Analytics · engineers, PMs
- Amplitude wants milliseconds, not seconds Analytics · engineers
- Mixpanel join key is distinct_id Analytics · engineers, PMs
- An Adobe hit is not a GA4 event Analytics · engineers, marketers
- A CDP is a pipe. A pixel is a bid. Analytics · PMs, engineers, marketers
- Sampling hides the broken 1% Analytics · engineers, PMs, marketers
- DebugView is not production Analytics · engineers, marketers
- Product analytics and ads conversion are different jobs Analytics · PMs, engineers, marketers
Launch and QA
- Ship the dictionary before you ship the tag Launch · PMs, marketers, engineers
- Hash the fields the vendor named, nothing else Launch · engineers
- Staging must not train production Launch · engineers, marketers, PMs
- Fixtures in CI, not a weekly HAR Launch · engineers, PMs
- Filter by the collector host Launch · engineers, marketers
- A HAR is a fired artifact plus PII Launch · engineers, PMs
- Preview is not the published container Launch · marketers, engineers
Vendor playbooks
- fbq plus CAPI, same event_id Vendor · engineers, marketers, PMs
- ttq plus Events API, ISO time on the server Vendor · engineers, marketers
- Insight Tag plus CAPI in milliseconds Vendor · engineers, marketers, PMs
- Pinterest Tag plus Conversions API Vendor · engineers, marketers
- src, type, cat, and a unique ord Vendor · engineers, marketers
- Conversion linker, gclid, then the conversion tag Vendor · engineers, marketers, PMs