Pinterest Conversions
The Pinterest Conversions API destination sends event data directly from Chord CDP to Pinterest's servers, bypassing the browser entirely. Unlike the Pinterest Tag (device mode), server-side events are immune to ad blockers and browser tracking restrictions, providing more reliable signal for campaign measurement, audience building, and automated bidding optimization.
Use this destination alongside the Pinterest Tag destination for maximum data coverage. Pinterest deduplicates events using the event_id field.
Getting Started
This is a cloud-mode destination. You will need:
- Ad Account ID — your Pinterest Ads account ID, found in your Pinterest Ads dashboard URL or under Ads > Account settings.
- Conversion Token — a conversion access token generated in Pinterest Ads > Conversions. See Pinterest's documentation for instructions on creating a server-side access token.
- App Name — a name identifying your application or integration (e.g. "my-storefront"). Used as the partner_name in the event payload.
Connecting to the Pinterest Conversions API CDP Destination
- Log into the Chord data platform.
- Navigate to the CDP.
- Click the "Add" button next to Destinations.
- Select Pinterest Conversions API from the destination catalog.
- Enter the destination name, Ad Account ID, Conversion Token, and App Name.
- Click "Create" to connect.
Event Mapping
Chord Event | Pinterest Event |
|---|---|
page | PageVisit |
Order Completed | checkout |
Checkout Started | InitiateCheckout |
Product Added | AddToCart |
Product Viewed | ViewContent |
Products Searched | Search |
Product Added to Wishlist | AddToWishlist |
(other track events) | Chord event name passed as-is |
Page, track, and screen events are forwarded. Identify events are ignored.
User Data (All Events)
All personally identifiable information (PII) is sent to Pinterest as raw values; Pinterest's API hashes them server-side according to its data processing requirements. Fields that cannot be resolved are omitted.
Pinterest Field | Chord Source (Priority Order) | Notes |
|---|---|---|
properties.email > context.traits.email | Array; omitted if not present | |
phone | properties.phone > context.traits.phone | Array; omitted if not present |
first_name | properties.first_name > context.traits.firstName | Array; omitted if not present |
last_name | properties.last_name > context.traits.lastName | Array; omitted if not present |
city | context.traits.address.city > properties.address.city | Array; omitted if not present |
state | context.traits.address.state > properties.address.state | Array; omitted if not present |
zip | context.traits.address.postalCode > properties.address.postalCode | Array; omitted if not present |
country | context.traits.address.country > properties.address.country | Array; omitted if not present |
external_id | userId > anonymousId | Array; omitted if neither is present |
client_ip_address | context.ip | Not hashed |
client_user_agent | context.userAgent | Defaults to "Mozilla/5.0" if not present |
click_id | epik query parameter from context.page.url | Pinterest click ID |
partner_id | properties.partner_id > context.campaign.name | |
Custom Data (Track Events)
Track events include a custom_data block with the following structured schema fields. Additionally, any properties.* destination mappings configured in Hub that target non-schema fields are forwarded as custom properties alongside the structured fields.
Pinterest Field | Chord Source (Priority Order) | Notes |
|---|---|---|
value | properties.value > properties.price > properties.revenue > sum of price × quantity across products | String; omitted if not resolvable |
currency | properties.currency > properties.meta.i18n.currency | Defaults to "USD" |
order_id | properties.order_id > properties.cart_id | |
content_ids | Product IDs from properties.products[] or properties.product_id / properties.sku | Falls back to page title for page events |
contents | Array of { id, item_price, quantity, item_name, item_category, item_brand } per product | Omitted if no products |
num_items | properties.quantity > sum of quantities across properties.products[] | |
search_string | properties.query > properties.search_term | Relevant for Products Searched |
Custom Property Forwarding
Configure destination mappings in Hub with properties.* destination paths to forward additional event properties into custom_data. Only explicitly-configured non-schema fields are forwarded — nothing flows through automatically.
How to configure:
- Open the destination's Mappings tab in Hub.
- Add a mapping with source path properties.loyalty_tier and destination path properties.loyalty_tier.
- On the next event, custom_data.loyalty_tier will appear in the payload sent to Pinterest.
What is excluded:
- Schema fields already handled by the destination transform (e.g. currency, value, order_id, content_ids, contents) — these flow through the structured transform
- PII fields (email, phone, first_name, last_name) — these are handled via user_data
When a custom mapping targets a schema field (e.g. properties.value → properties.value), the customer-configured value overrides the destination's computed default. This allows schema fields to be sourced from a different event property — for example, mapping properties.total → properties.value to use your order total as the conversion value.
Testing and Validation
After connecting the destination:
- Trigger events from your storefront or use the Live Events tab in the Chord CDP to confirm events are flowing.
- In Pinterest Ads Manager, navigate to Ads > Conversions and open your conversion tag to verify events are received.
- Confirm revenue values and order counts align with your expectations.
- If you are running both the Conversions API and the Pinterest Tag, ensure event_id values match across both to prevent duplicate counting. Chord CDP handles this automatically by using messageId as the event_id for both destinations.
Updated 27 May 2026