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 Key

Description

Expected Input

noscript

string: Indicates whether the browser supports JavaScript

Enrichment - staticString: "1"

tid
Required

string: The unique tag ID assigned to the Pinterest tag

Enrichment - staticString: TAG_ID

cb
Required

integer: A cache-busting timestamp to prevent caching of the request

Enrichment - timestamp: seconds

client_ip
Required

string: The IP address of the client

context.ip

pd[derived_epik]

string: The derived epik parameter from the Pinterest provider

context.providers.pinterest.epik

ad[loc]
Required

string: The URL of the current page

context.page.url

ad[ref]

string: The referrer URL of the current page

context.page.referrer

ed[page_url]
Required

string: The URL of the current page

context.page.url


Event Specific

Page Event

Output Key

Description

Expected Input

event Required

string: Indicates a page visit event

Enrichment - staticString: pagevisit

ed[page_name]

string: The name of the page

properties.name

ed[page_category]

string: The category of the page

properties.category

Products Searched Event

Output Key

Description

Expected Input

event Required

string: Indicates a search event

Enrichment - staticString: search

ed[search_query]
Required

string: The search query used by the user

properties.query

Product List Viewed Event

Output Key

Description

Expected Input

event Required

string: Indicates a product list view event

Enrichment - staticString: viewcategory

ed[line_items][index][product_id]
Required

string: The ID of the product

N/A - Expression

ed[line_items][index][product_name]
Required

string: The name of the product

N/A - Expression

ed[line_items][index][product_category]
Required

string: The category of the product

N/A - Expression

ed[line_items][index][product_brand]
Required

string: The brand of the product

N/A - Expression

Product Viewed Event

Output Key

Description

Expected Input

event Required

string: Indicates a product view event

Enrichment - staticString: pagevisit

ed[line_items][0][product_id]
Required

string: The ID of the viewed product

N/A - Expression

ed[line_items][0][product_name]
Required

string: The name of the viewed product

N/A - Expression

ed[line_items][0][product_category]
Required

string: The category of the viewed product

N/A - Expression

ed[line_items][0][product_brand]
Required

string: The brand of the viewed product

N/A - Expression

ed[line_items][0][product_price]
Required

string: The price of the viewed product

N/A - Expression

ed[currency]
Required

string: The currency of the product price

properties.currency

Product Added Event

Output Key

Description

Expected Input

event Required

string: Indicates an add to cart event

Enrichment - staticString: addtocart

ed[value]
Required

number: The total value of the added product(s)

input

ed[currency]
Required

string: The currency of the product price

properties.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 product

N/A - Expression

ed[line_items][0][product_name]
Required

string: The name of the added product

N/A - Expression

ed[line_items][0][product_category]
Required

string: The category of the added product

N/A - Expression

ed[line_items][0][product_brand]
Required

string: The brand of the added product

N/A - Expression

Cart Viewed Event

Output Key

Description

Expected Input

event Required

string: Indicates a cart view event

Enrichment - staticString: pagevisit

ed[value]
Required

number: The total value of the cart

input

ed[currency]
Required

string: The currency of the cart value

properties.currency

ed[order_quantity]

integer: The total quantity of items in the cart

input

ed[line_items][index][product_id]
Required

string: The ID of the product in the cart

N/A - Expression

ed[line_items][index][product_name]
Required

string: The name of the product in the cart

N/A - Expression

ed[line_items][index][product_category]
Required

string: The category of the product in the cart

N/A - Expression

ed[line_items][index][product_brand]
Required

string: The brand of the product in the cart

N/A - Expression

Order Completed Event

Output Key

Description

Expected Input

event Required

string: Indicates an order completion event

Enrichment - staticString: checkout

ed[order_id]

string: The ID of the order

properties.order_id

ed[value]
Required

number: The total value of the order

input

ed[currency]
Required

string: The currency of the order

properties.currency

ed[order_quantity]

integer: The total quantity of items in the order

input

ed[promo_code]

string: The promo code used in the order

properties.coupon

ed[line_items][index][product_id]
Required

string: The ID of the product in the order

N/A - Expression

ed[line_items][index][product_name]
Required

string: The name of the product in the order

N/A - Expression

ed[line_items][index][product_category]
Required

string: The category of the product in the order

N/A - Expression

ed[line_items][index][product_brand]
Required

string: The brand of the product in the order

N/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.

Attribute

Example

Sync Injector Required?

pin_unauth Required

dWlkPU1EQTRaakkyTldNdE5UTmxZUzAwT1dRd0xXRTRPVGt0WkdRMllqQXpOakV4WlRSaA

Yes

epik
Recommended

EAabc1234

Yes

derived_epik
Recommended

ABC123456789

Yes

ip
Recommended

192.168.1.1

No

user agent

Required

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

No

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