Pinterest CAPI Sync

What is Pinterest?

Pinterest is a visual discovery and social media platform that allows users to discover, collect, and share ideas through images and videos known as "Pins." Businesses use Pinterest Ads to reach users with promoted content based on their interests and behaviors. The Pinterest Conversion API (CAPI) enables advertisers to send conversion data from their servers directly to Pinterest, improving attribution accuracy and ad targeting by bypassing browser limitations.

Product Type: Advertising

Integration Type: Starter Kit & ID Sync


Capabilities

  • Captures epik from URLs and stores it for conversion tracking.
  • Syncs the epik identifier by firing a match pixel to Pinterest’s CAPI endpoint.
  • Refreshes stored values and pixel firing logic when new data is detected in URL parameters.
  • Adds identifiers to server-side events for conversion attribution.
  • Supports firing multiple pixels using extra pixel IDs configured in the UI.

Considerations

  • Pixel firing logic and conditions are outlined in a workflow diagram hosted on Miro.
  • Pixel fires via GET request to https://ct.pinterest.com/v3/ and may include a property and additional pixel IDs.

Sync Details

  • IDs:

    • epik – A Pinterest Conversion API identifier passed via URL for attributing conversions to user actions across sessions.
  • Description:

    • The sync captures epik from URL parameters.
    • Each value is stored in first-party storage for the duration specified in the UI (default: 365 days).
    • Values are refreshed when the URL parameter reappears.
    • A pixel request is also sent to Pinterest CAPI endpoint using the captured data.
    • The identifiers are added to server-side event payloads for attribution and ad targeting.
  • Server-side Event Payload:
    Upon completion of all vendor's sync, the server-side events will incorporate all resolved identifiers as described above. The following object will be appended to the context.providers property within the event's JSON payload.

    {
      "pinterestCAPI": {
        "epik": "value of URL parameter epik"
      }
    }
    
    
  • Cookie Name:

    • Cookie: _meta_pinterestCAPI_epik, _meta_pinterestCAPI_fired, _meta_pinterestCAPI_fired_{extraPixelIDs}
    • IndexedDB: [your storage prefix]_pinterestCAPI_epik, [your storage prefix]_pinterestCAPI_fired, [your storage prefix]_pinterestCAPI_fired_{extraPixelIDs}
    • For a general guide on ID Sync validation, see here.

Sync Setup Guide

1. Add a Pinterest Sync in MetaRouter

To gather the epik value and send it via match pixel to Pinterest, you must add a Pinterest sync.

  1. From the Pipelines page, find the pipeline associated with the web property you’d like to add a sync to. Hover over the three dot dropdown and select “Build AJS File.”
  2. In the Identity Syncs section, select the Pinterest sync.
  3. Fill out the following fields:
    1. Cookie Lifetime (in days) – Enter the number of days to retain stored values (e.g., 45).
    2. Pixel ID – Enter the main Pinterest pixel ID provided in the Pinterest UI (e.g., "2542621907646").
    3. Property – Enter the property name for Pinterest events (default: "MetaRouterSync").
    4. Extra Pixel IDs (Optional) – If you wish to fire multiple pixels, enter a JSON array of pixel IDs (e.g., ["2542621577120", "2542621898577"]).
    5. Fire On ReSync – Enter true or false to control whether the pixel should fire again on identity call (e.g., true).
  4. Scroll down and click the Save and Build File button.
  5. Deploy your AJS file to propagate changes to your web property.