Networks · Pinterest
Pinterest Tag events and parameters
Updated 2026-09-27
The Pinterest Tag is the website tag that reports events such as page visits, add to cart and checkout to Pinterest Ads. Its events go to ct.pinterest.com/v3/ as URL query parameters, form fields or JSON. Event data sits at the top level or in an ed object, sent either as JSON or as ed[key] form fields.
Where the events go
| Endpoint | Method | What it carries |
|---|---|---|
ct.pinterest.com/v3/ | GET (query) or POST (form or JSON) | One event: the name in event, the tag ID in tid, event data in ed, and page data in ad (ad.loc page URL, ad.ref referrer). |
ct.pinterest.com/v3/ with event=init | Same | The base tag's initialization handshake. It is setup evidence, not a page visit or conversion. |
The script loads from s.pinimg.com/ct/core.js. A loaded script is setup evidence, not an event. The value ed.np=shopify-web-pixel marks Pinterest's Shopify integration, not a separate script file.
Event names as sent
The event name is in event, or in ed[event] or the event member of the ed JSON. The tag ID is in tid, the occurrence ID in event_id or eventID. Spelling varies between sites: the same event has been seen in lowercase and in capitalized form, so check the exact name each site sends.
| Name as sent | Notes |
|---|---|
pagevisit, PageVisit | Page visit. Both spellings seen live. It stays a page visit even when it carries a product ID. |
viewcategory | Category view, seen live. |
Search | Site search. On a live store, the term was in ed.search_query. |
addtocart, AddToCart | Add to cart. Both spellings seen live. |
InitiateCheckout | Checkout started, seen live. |
checkout | Per Pinterest's event documentation, this is the purchase event, not the start of checkout. No real purchase was made to observe it live. |
init | Initialization handshake, not an event. |
Value, currency, order ID and products
Each field can arrive as ed.<key> (JSON), ed[<key>] (form) or a top-level key.
| Field | Key(s) | Notes |
|---|---|---|
| Event value | ed.value, ed[value], value | Must be a number. Never summed from item prices. |
| Currency | ed.currency, ed[currency], currency | Kept exactly as sent. |
| Order ID | order_id | Also ed.order_id, ed[order_id]. |
| Order quantity, promo code | order_quantity, promo_code | Order-level fields. |
| Occurrence ID | event_id, eventID | Identifies this event, separate from the order ID. |
| Products (list) | ed.line_items[], or form keys such as ed[line_items][0][product_id] | Per item: product_id, product_name, product_category, product_variant_id, product_variant, product_brand, product_price, product_quantity, product_currency. Form indices are kept as sent, including gaps. |
| Single product | product_id and the other product_ keys at the top level or in ed | Used when no line items are sent. |
| Item price and currency | product_price, product_currency | Belong to the item. The event value and currency never fill them, and they never fill the event's. |
product_id is the parent product; product_variant_id is kept as a separate field.
Common problems
- Add to cart without an event value. On a live store,
AddToCartsented.currencyand a line item withproduct_price,product_quantityandproduct_currency, but noed.value. The item price is not an event value, so the value shows as not observed. - Different spellings of one event. One live store sent
addtocart, anotherAddToCart;pagevisitandPageVisitalso both appear. Filters or reports that match one exact spelling miss the other. - Reading
checkoutas checkout started. Pinterest's event documentation definescheckoutas the purchase; the start of checkout is a different event. The extension shows the name as sent, without relabeling it. - Only an init request. On a live store, the tag sent only the
/v3/initialization request (HTTP 200) and no event. The tag loaded, but no page visit or conversion was sent. - Two events for one click. On a live store, one add-to-cart click produced two Pinterest events, and several other networks doubled too. The cause was the site's cart flow, not the tag.
How to check it with Universal Pixel Debugger
- Open the site and click the Universal Pixel Debugger toolbar icon to open the side panel.
- Find the Pinterest lane on the signal board. It shows the event count and an amber
?for requests with no decoded event, such as the init request. Click the lane to show only Pinterest. - Click an event. Value and currency each show the key they came from, for example "from ed.value", or read Not observed or Invalid. Line items list each product's ID, quantity, price and item currency as sent.
- Open the Pinterest parameters checklist: "N of M known fields sent", the sent fields by section, and a Not sent list. Anything else the request carried is under Other sent fields.
- Check the issues: invalid numeric value or currency, a value, currency or product mismatch when events on several networks share an order ID, and data that differs between destinations.