What Pinterest traffic looks like
The Pinterest Tag encodes structured data as PHP-style bracket parameters rather than JSON, close to unreadable in raw DevTools.
- Endpoint pattern
- Core script from
s.pinimg.com/ct/core.js; event beacons toct.pinterest.com; thenoscriptfallback usesct.pinterest.com/ct.html - Transport
- GET beacons carrying event data as bracket-notation query parameters (
ed[...],pd[...]) instead of JSON. A checkout with a few line items becomes bracket soup - Key parameters
tidthe tag ID ·eventthe event name (pagevisit,viewcategory,addtocart,checkout, or custom)- E-commerce
ed[value],ed[currency],ed[order_quantity]transaction summary ·ed[line_items][0][product_name],ed[line_items][0][product_id],ed[line_items][0][product_price]per-product arrays, one bracket path per field- Payload
- Enhanced Match travels under
pd[...]:pd[em]SHA-256 hashed email; extended fields cover hashed name (pd[fn],pd[ln]), phone (pd[ph]), location (pd[ct],pd[st],pd[zp],pd[country]), gender, date of birth, andpd[external_id]
Debugging Pinterest with Event Watcher
- The Pinterest parser reconstructs the bracket notation into real structures: tag ID, value, currency, and quantity in the overview.
edfields render as an Event Data table;line_itemsdecode into a proper e-commerce items list with product name, ID, price, quantity, category, brand, and variant per row.- Every
pdEnhanced Match hash groups under Identity, so you can see exactly which PII fields (hashed) left the browser. - Cache-buster, iframe, and noscript flags land under Page Context.
Pinterest and consent
Marketing consentThe extension checks Pinterest Tag traffic against the marketing consent category. There is no cookieless or consent-mode variant of the browser tag: a ct.pinterest.com request before marketing consent is a completed transmission and gets flagged as pre-consent or denied.
Enhanced Match raises the stakes: pd[em] populates whenever the site passes an email to pintrk('load', ...) or the user is identifiable at page load.
So a pre-consent pagevisit beacon can already carry a hashed email. When auditing, check the Identity group on the earliest Pinterest hit specifically.
Common debugging scenarios
- Checkout value missing in Pinterest reporting. Open the checkout event and verify
ed[value]anded[currency]. Sites frequently send the value only on individual line items and leave the event-leveled[value]empty. - Line items look wrong. The decoded e-commerce table shows each product row; mismatched
product_priceversus displayed price usually traces to a tax-inclusive/exclusive mixup in the dataLayer mapping. - Enhanced Match silently inactive. If the Identity group never shows
pd[em], the email is not being passed at load, and conversion match rates in Ads Manager will be poor. - Tag fires before consent. The consent check marks the beacons; the diagnosis pattern matches GA4 fires before consent.
- Which script pushed the checkout event? When the tag is driven by dataLayer events, use which script pushed the dataLayer event to attribute the push before blaming the Pinterest mapping.