Pinterest Ads

📘

For Pinterest CAPI - See HERE.

What Is Pinterest Ads?

The Pinterest Ads integration via MetaRouter enables comprehensive tracking of user actions post-interaction with Promoted Pins. MetaRouter collects and enriches web event data, incorporating key user information and managing first-party cookies to ensure accurate tracking. This data is transmitted to Pinterest's conversion tracking endpoints through unauthenticated GET requests, allowing for precise attribution and audience targeting. This integration helps measure return on ad spend (RoAS) and build targeted audiences, enhancing the effectiveness of your Pinterest advertising campaigns.

What are the benefits of integrating MetaRouter with Pinterest Ads?

  • Automated Cookie Management: Automatically grabs and stores relevant Pinterest tag cookies, ensuring accurate user tracking and data consistency.
  • Data Enrichment: MetaRouter enriches event data with crucial user information, enhancing tracking accuracy.

Capabilities and Considerations

  • MetaRouter solves identity for the Pinterest Ads integration by grabbing the pin_unauth, epik, and derived_epik cookies via the sync injector via a GET request. In addition, MetaRouter also passes the user agent for matching. Though IP is not required, it will be essential for geo-reporting.
    • pin_unauth - A first-party cookie placed by the Pinterest tag when we are unable to match the user. It contains a unique UUID to group actions across pages.
    • epik - A query parameter found in the URL when a person visits a page from a Pinterest ad. When someone clicks on a Pinterest ad, information is added to the URL to help the Pinterest tag find a match. The Pinterest tag caches this information in this first-party cookie.
    • derived_epik - Placed when the Pinterest tag reports a match identified without using cookies, such as through enhanced match. The Pinterest tag caches information to make matching on future pages easier.
  • Track user actions post-ad engagement through Pinterest Ads reporting.
  • Measure and optimize return on ad spend (RoAS) through Pinterest Ads reporting.
  • Create targeted audiences in Pinterest Ads based on user interactions.

Limitations

  • Server-side events are sent via HTTP forward uses unauthenticated GET requests.
  • This integration is for web events only.
  • Pinterest tag will still need to be implemented to grab the the pin_unauthand derived_epik cookies.

Pinterest Ads vs Pinterest CAPI

Pintrest Ads Integration

  • Uses unauthenticated GET requests, eliminating the need for complex API authentication processes.
  • Uses pin_unauth first-party cookie and user agent as the main identifiers. Also uses epik and derived_epik as additional identifiers.

**Pinterest CAPI Integration**

  • Uses authenticated API requests which Provides enhanced security and verification for data being sent to Pinterest.
  • Offers robust mechanisms for handling sensitive user data securely.
  • Uses either IP and user agent combo and/or hashed email as identifiers. In addition, you may use the Pinterest CAPI sync to send epik and external_id for increased user matching. See more details here.

Getting Started - From Your Pinterest Ads Account

Grant MetaRouter Access to Your Ads Account

  1. Navigate to Business Access > Partners and click “Add Partner.”
  2. Enter 1142577505371214964 for the Partner ID and select “Invite this partner to access your ad accounts and tools.”
  3. After seeing the Success message, click “Assign Assets.”
  4. For each ad account, turn on the “Analyst” permission and click “Assign Permissions.”
  5. Notify your Customer Success Manager once you have completed these steps.
    • Note: The partner connection will appear only after MetaRouter accepts the invitation.

Pixel ID:

  1. Continuing in Pinterest Business Manager, click on the upper-left drop down menu.
  2. Click on “Conversions” under the “Business” column.
  3. On the left-hand navigation, click on “Tag Manager”.
  4. There is an option to click on “Install the Pinterest tag manually” that will let you view your Tag ID on the upper-right side of the screen. This ID will be used as your Pixel ID in the sync.

Getting Started - From Your MetaRouter Account

Adding a Pinterest Ads integration.

From the integration library, add a Pinterest Ads integration. Then, fill out the Connection Parameters:

Connection ParameterDescription
TAG_IDYour pixel ID.

Adding a Pinterest Ads Sync

To gather the pin_unauth, epik, and derived_epik values, you must add a Pinterest Ads 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 Ads sync.
  3. Fill out the following fields:
    1. Consent Type
    2. API Timeout (in milliseconds) - default 300 milliseconds
    3. Cookie Lifetime (in days) - default 365 days
    4. Retry Interval (in days) - default 7 days
  4. Scroll down and click the Save and Build File button.
  5. Deploy your AJS file to propagate changes to your web property.

Event Mappings

MetaRouter provides all of the event mappings that Pinterest Ads integrations typically require. You may add custom events, parameters or mappings in accordance with Pinterest Ad’s API documentation.

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
noscriptstring: Indicates whether the browser supports JavaScriptEnrichment - staticString: "1"
tid
Required
string: The unique tag ID assigned to the Pinterest tagEnrichment - staticString: TAG_ID
cb
Required
integer: A cache-busting timestamp to prevent caching of the requestEnrichment - timestamp: seconds
client_ip
Required
string: The IP address of the clientcontext.ip
pd[derived_epik]string: The derived epik parameter from the Pinterest providercontext.providers.pinterest.epik
ad[loc]
Required
string: The URL of the current pagecontext.page.url
ad[ref]string: The referrer URL of the current pagecontext.page.referrer
ed[page_url]
Required
string: The URL of the current pagecontext.page.url

Event Specific

Page Event

Output KeyDescriptionExpected Input
event
Required
string: Indicates a page visit eventEnrichment - staticString: pagevisit
ed[page_name]string: The name of the pageproperties.name
ed[page_category]string: The category of the pageproperties.category

Products Searched Event

Output KeyDescriptionExpected Input
event
Required
string: Indicates a search eventEnrichment - staticString: search
ed[search_query]
Required
string: The search query used by the userproperties.query

Product List Viewed Event

Output KeyDescriptionExpected Input
event
Required
string: Indicates a product list view eventEnrichment - staticString: viewcategory
ed[line_items][index][product_id]
Required
string: The ID of the productN/A - Expression
ed[line_items][index][product_name]
Required
string: The name of the productN/A - Expression
ed[line_items][index][product_category]
Required
string: The category of the productN/A - Expression
ed[line_items][index][product_brand]
Required
string: The brand of the productN/A - Expression

Product Viewed Event

Output KeyDescriptionExpected Input
event
Required
string: Indicates a product view eventEnrichment - staticString: pagevisit
ed[line_items][0][product_id]
Required
string: The ID of the viewed productN/A - Expression
ed[line_items][0][product_name]
Required
string: The name of the viewed productN/A - Expression
ed[line_items][0][product_category]
Required
string: The category of the viewed productN/A - Expression
ed[line_items][0][product_brand]
Required
string: The brand of the viewed productN/A - Expression
ed[line_items][0][product_price]
Required
string: The price of the viewed productN/A - Expression
ed[currency]
Required
string: The currency of the product priceproperties.currency

Product Added Event

Output KeyDescriptionExpected Input
event
Required
string: Indicates an add to cart eventEnrichment - staticString: addtocart
ed[value]
Required
number: The total value of the added product(s)input
ed[currency]
Required
string: The currency of the product priceproperties.currency
ed[order_quantity]integer: The quantity of the added product(s)properties.quantity
ed[line_items][0][product_id]
Required
string: The ID of the added productN/A - Expression
ed[line_items][0][product_name]
Required
string: The name of the added productN/A - Expression
ed[line_items][0][product_category]
Required
string: The category of the added productN/A - Expression
ed[line_items][0][product_brand]
Required
string: The brand of the added productN/A - Expression

Cart Viewed Event

Output KeyDescriptionExpected Input
event
Required
string: Indicates a cart view eventEnrichment - staticString: pagevisit
ed[value]
Required
number: The total value of the cartinput
ed[currency]
Required
string: The currency of the cart valueproperties.currency
ed[order_quantity]integer: The total quantity of items in the cartinput
ed[line_items][index][product_id]
Required
string: The ID of the product in the cartN/A - Expression
ed[line_items][index][product_name]
Required
string: The name of the product in the cartN/A - Expression
ed[line_items][index][product_category]
Required
string: The category of the product in the cartN/A - Expression
ed[line_items][index][product_brand]
Required
string: The brand of the product in the cartN/A - Expression

Order Completed Event

Output KeyDescriptionExpected Input
event
Required
string: Indicates an order completion eventEnrichment - staticString: checkout
ed[order_id]string: The ID of the orderproperties.order_id
ed[value]
Required
number: The total value of the orderinput
ed[currency]
Required
string: The currency of the orderproperties.currency
ed[order_quantity]integer: The total quantity of items in the orderinput
ed[promo_code]string: The promo code used in the orderproperties.coupon
ed[line_items][index][product_id]
Required
string: The ID of the product in the orderN/A - Expression
ed[line_items][index][product_name]
Required
string: The name of the product in the orderN/A - Expression
ed[line_items][index][product_category]
Required
string: The category of the product in the orderN/A - Expression
ed[line_items][index][product_brand]
Required
string: The brand of the product in the orderN/A - Expression

Required & Recommended Identifiers

These identifiers must be mapped to Pinterest Ads in order for successful user matching to occur. Without these IDs, any events sent to Pinterest Ads may not be accurately reflected in reporting. For your convenience, required and recommended IDs are mapped as Global parameters to ensure they are added to every event.

AttributeExampleSync Injector Required?
pin_unauth
Required
dWlkPU1EQTRaakkyTldNdE5UTmxZUzAwT1dRd0xXRTRPVGt0WkdRMllqQXpOakV4WlRSaAYes
epik
Recommended
EAabc1234Yes
derived_epik
Recommended
ABC123456789Yes
ip
Recommended
192.168.1.1No
user agent RequiredMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36No

Additional Identifiers

These identifiers should be mapped to Pinterest Ads whenever possible to ensure the highest user match rates possible. If using these identifiers, they must be added as Global or Event Specific mappings.

AttributeDescriptionExample
emEmail for https://help.pinterest.com/en/business/article/enhanced-match. SHA-256 hashed.b58996c504c5638798eb6b511e6f49af12b4e8c5706c8c3a88d2c39f72b5422a

Additional Pinterest Ads Documentation