> For the complete documentation index, see [llms.txt](https://help.branch.io/llms.txt).

# Enable Pinterest (New)

> Integrate Pinterest with Branch to help optimize conversions and streamline marketing efforts for better app performance.

## Overview

[Pinterest](https://pinterest.com) is a visual discovery engine for finding ideas like recipes, home and style inspiration, and more. Connect Pinterest to Branch to attribute clicks and installs, forward conversion events via Pinterest's Conversions API, and configure Postbacks.

For more information about integrating ad partners in general, visit our [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md).

> **Note: this guide is for new Branch**
>
> Please note that this guide is about integrating Pinterest in the [new Branch experience](https://help.branch.io/marketer-hub/new-branch-overview.md). For information on Pinterest in legacy Branch, visit our [legacy guide](https://help.branch.io/marketer-hub/pinterest.md).

### Partner capabilities

| Capability | Details |
| --- | --- |
| Company type | Non-SAN ad network |
| Deep linking | Supported |
| Attribution | Click-through attribution, View-through attribution |
| Ad campaign types | Acquisition campaigns, Retargeting campaigns |
| Ad formats | Contact Pinterest for details |
| Click types | Server-side click |
| Supported platforms | iOS, Android |
| Link wrapping | Not supported |
| Cost ingestion support | Not supported |
| Pricing models | CPC, CPM, CPA, CPV, CPL |

## Before you begin

To set up the Pinterest integration, you need:

- Ad partner integrations enabled for your Branch account. Availability varies by Branch plan. See [Branch pricing](https://www.branch.io/pricing/) or contact your Branch representative.
- A Branch account with access to **Configuration > Ad Partners** and admin permissions to enable and configure integrations.
- The Branch SDK implemented in your app ([iOS](https://help.branch.io/developer-hub/ios-sdk-overview.md) | [Android](https://help.branch.io/developer-hub/android-sdk-overview.md)) with [event tracking](https://help.branch.io/developer-hub/track-branch-events.md) configured.
- Admin, Analyst, Audience, or Campaign [Business Access](https://help.pinterest.com/en/business/article/business-manager-access-roles-and-permissions) to your Pinterest Ads account.
- Active campaigns running in Pinterest Ads Manager.
- [PAM](https://help.branch.io/marketer-hub/predictive-aggregate-measurement.md) enabled (recommended).

> **Note: PAM uses two separate toggles**
>
> The **PAM for Publishers** toggle for this partner, found under **Partner settings** > **Manage account**, is separate from the account-level **PAM switch**. **PAM for Publishers** must be enabled to reconcile conversion events with your partner. To attribute events with PAM, you also need PAM enabled on the [Attribution page](https://help.branch.io/account-hub/attribution-page-new.md) under **Configuration** > **Attribution**. Learn more in our [PAM Overview](https://help.branch.io/marketer-hub/predictive-aggregate-measurement.md#pam-for-publishers).

## Enable Pinterest

To begin, navigate to **Configuration > Ad Partners > Pinterest**.

Pinterest requires an **Ad Account ID** and **Conversion Token** from your Pinterest Ads account before postbacks can be activated. Follow the steps below to retrieve these credentials and connect Pinterest to Branch.

### Step 1: Retrieve your Ad Account ID

1. Log in to your [Pinterest Ads Manager](https://ads.pinterest.com) account.
2. Navigate to **Ads > Account Overview**.
3. Locate and note the Ad Account ID in the URL: `ads.pinterest.com/advertiser/{ad_account_id}/`

### Step 2: Retrieve your Conversion Token

1. In Pinterest Ads Manager, navigate to **Account Overview > Conversions**.
2. If you don't have a Conversion Token yet, select **Set up API** in the **Conversions API** section, then select **Generate new token**.
3. Copy your Conversion Token using the copy icon.

### Step 3: Connect Pinterest in Branch

1. Select **Partner settings** to open the **Manage account** dialog.
2. Under **Postback Credentials**, enter the **Ad Account ID** and **Conversion Token** from steps 1 and 2.
3. Select **Save**.

After saving, postbacks for the standard event set will activate and the **Status** tab will confirm **Ad Linking** and **Attribution** are enabled. **Clicks and Impressions** will show **Needs Setup**. This is resolved when you place your Branch tracking links in your Pinterest campaigns (see [Set up tracking links](#set-up-tracking-links)).

(Recommended) To configure the optional **PAM for Publishers** privacy setting, select **Partner settings** to open the **Manage account** dialog and enable the toggle. When enabled, [PAM for Publishers](https://help.branch.io/marketer-hub/predictive-aggregate-measurement.md#pam-for-publishers) removes advertiser-specific user identifiers from postbacks for users who haven't opted in via Apple's App Tracking Transparency (ATT) framework, prioritizing identifiers provided directly by Pinterest.

## Set up tracking links

Pinterest requires Branch tracking links to be placed in your ad creatives to record clicks and impressions. Pinterest uses server-side clicks, so the `%24s2s=true` parameter must be included in all tracking links. Place the following in your Pinterest Ads Manager when setting up your ad creative:

| Field | Value |
| --- | --- |
| Impression Tracking URL | Your Branch impression tracking link. Must include `%24s2s=true`. See [Link formatting](#link-formatting) for the full link structure. |
| Click Tracking URL | Your Branch click tracking link. Must include `%24s2s=true`. See [Link formatting](#link-formatting) for the full link structure. |
| Destination URL | A Branch link with `%24deeplink_no_attribution=true`. Placing a standard Branch link here causes double attribution. See [Create a Branch Link with no attribution](#create-a-branch-link-with-no-attribution). |

### Create a Branch Link with no attribution

If you place a standard Branch link in the Pinterest **Destination URL** field, Branch may attribute the resulting conversion twice, once from the Click Tracking URL and once from the destination link redirect. To prevent this, create a Branch link with tracking disabled to use as the Destination URL.

1. Create a Branch link as normal in **Ads > Links** or using the Branch link builder.
2. Append `%24deeplink_no_attribution=true` to the link URL.
3. Place this tracking-disabled link in the **Destination URL** field in Pinterest Ads Manager.

### Link formatting

Use the following formats for your Pinterest tracking links. Replace `[yourapp.app.link]` with your Branch domain. Pinterest populates the macro parameters in curly braces automatically when serving your ads.

**Click Tracking Link**

```url
https://[yourapp.app.link]?%243p=a_pinterest&%24aaid_sha1={sha1_advertising_id}&%24idfa_sha1={sha1_advertising_id}&%24s2s=true&~ad_set_id={ad_group_id}&~ad_set_name={ad_group_name}&~campaign={campaign_name}&~campaign_id={campaign_id}&~click_id={click_id}&~creative_id={creative_id}&~creative_name={creative_name}&~secondary_publisher={publisher}
```

**Impression Tracking Link**

```url
https://impression.[yourapp.app.link]?%243p=a_pinterest&%24aaid_sha1={sha1_advertising_id}&%24idfa_sha1={sha1_advertising_id}&%24s2s=true&~ad_set_id={ad_group_id}&~ad_set_name={ad_group_name}&~campaign={campaign_name}&~campaign_id={campaign_id}&~creative_id={creative_id}&~creative_name={creative_name}&~secondary_publisher={publisher}
```

| Parameter | Description |
| --- | --- |
| `%243p=a_pinterest` | Identifies Pinterest as the ad network. Static value included in your Branch link. |
| `%24aaid_sha1={sha1_advertising_id}` | SHA1-hashed Android GAID. Required for Android attribution. |
| `%24idfa_sha1={sha1_advertising_id}` | SHA1-hashed iOS IDFA. Required for iOS attribution. |
| `%24s2s=true` | Required. Tells Branch this is a server-side click or impression from Pinterest. |
| `~ad_set_id={ad_group_id}` | Pinterest macro for ad group ID. Maps to Branch's `~ad_set_id`. |
| `~ad_set_name={ad_group_name}` | Pinterest macro for ad group name. Maps to Branch's `~ad_set_name`. |
| `~campaign={campaign_name}` | Pinterest macro for campaign name. Maps to Branch's `~campaign`. |
| `~campaign_id={campaign_id}` | Pinterest macro for campaign ID. Maps to Branch's `~campaign_id`. |
| `~click_id={click_id}` | Pinterest macro for click ID. Maps to Branch's `~click_id`. Click tracking link only. |
| `~creative_id={creative_id}` | Pinterest macro for creative ID. Maps to Branch's `~creative_id`. |
| `~creative_name={creative_name}` | Pinterest macro for creative name. Maps to Branch's `~creative_name`. |
| `~secondary_publisher={publisher}` | Pinterest macro for publisher. Maps to Branch's `~secondary_publisher`. |

## Configure attribution

By default, Pinterest uses your global app attribution settings. To set attribution windows specific to Pinterest, enable the **Override global app settings** toggle on the **Attribution windows** tab.

For more information, follow [Configure attribution](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md#configure-attribution) in the general [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md).

## Configure postbacks

Connecting Pinterest automatically activates postbacks for `INSTALL`, `REINSTALL`, `OPEN`, `PAGEVIEW`, `WEB_SESSION_START`, `INITIATE_PURCHASE`, `PURCHASE`, `VIEW_ITEM`, `VIEW_ITEMS`, `ADD_TO_CART`, `COMPLETE_REGISTRATION`, `ADD_TO_WISHLIST`, `START_TRIAL`, `SUBSCRIBE`, `RESERVE`, `SEARCH`, `INITIATE_STREAM`, and `COMPLETE_STREAM`. Branch maps these to Pinterest's Conversions API event types as follows.

| Pinterest event | Branch event |
| --- | --- |
| `app_install` | `INSTALL`, `REINSTALL` |
| `app_open` | `OPEN` |
| `page_visit` | `PAGEVIEW`, `WEB_SESSION_START` |
| `initiate_checkout` | `INITIATE_PURCHASE` |
| `checkout` | `PURCHASE` |
| `view_category` | `VIEW_ITEM`, `VIEW_ITEMS` |
| `add_to_cart` | `ADD_TO_CART` |
| `signup` | `COMPLETE_REGISTRATION` |
| `add_to_wishlist` | `ADD_TO_WISHLIST` |
| `start_trial` | `START_TRIAL` |
| `subscribe` | `SUBSCRIBE` |
| `lead` | `RESERVE` |
| `search` | `SEARCH` |
| `watch_video` | `INITIATE_STREAM`, `COMPLETE_STREAM` |
| `custom` | {custom_event_name} |

Pinterest recommends enabling **Send all events** on the **Postback config** tab so that Branch forwards all in-app conversions to Pinterest. This allows Pinterest to report the full value the platform is driving to your app.

To add postbacks for additional events or to customize behavior, follow [Configure postbacks](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md#configure-postbacks) in the general [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md).

## Create a Branch Ad Link

Create a Branch Ad Link to use in your Pinterest campaigns. Branch uses the link to attribute clicks and impressions and deep link users into your app. Placing the Branch Ad Link in your Pinterest campaigns will resolve the **Clicks and Impressions: Needs Setup** status shown on the Status tab.

Follow [Create Ad Links](https://help.branch.io/marketer-hub/ad-links-new.md).

## Verify your data

After your integration is connected and events are flowing, you can verify data is reaching Branch:

- **In Branch** [**Liveview**](https://app.branch.io/testing-and-monitoring/events): confirm that events from your app appear in real time. This is the fastest way to confirm SDK events are firing. Filter for `ad partner (3p) = a_pinterest`.
- **In Branch** [**Analysis dashboards**](https://help.branch.io/marketer-hub/analysis-dashboards-overview-new.md): review attributed installs and events where `Ad Partner Name = Pinterest`.
- **In Pinterest**: confirm that forwarded events are appearing in your Pinterest Ads attribution reporting.

## Troubleshoot

### Link formatting issues

If clicks or impressions are not being attributed to Pinterest, verify the following in your tracking links:

- `%24s2s=true` is present in both the Click Tracking URL and the Impression Tracking URL. Without this parameter, Branch cannot register server-side events from Pinterest.
- Advertiser IDs are mapped correctly: `{idfa}` for iOS and `{google_advertising_id}` for Android. If these macros are missing or incorrectly formatted, Branch cannot match clicks to conversions on a per-device basis.
- The **Destination URL** uses a tracking-disabled Branch link, not a standard Branch link. A standard Branch link in the Destination URL field will cause double attribution. See [Create a Branch Link with no attribution](#create-a-branch-link-with-no-attribution).

### GEO_CONFLICT

Pinterest's Conversions API applies a `GEO_CONFLICT` anti-fraud validation. If the geographic location in the click or impression event differs significantly from the location in the conversion event, Pinterest may flag or reject the conversion. This is expected behavior and does not indicate a problem with your Branch integration.

If you see higher-than-expected `GEO_CONFLICT` rejection rates, verify that your Branch SDK is correctly capturing the user's device location. Elevated rates can also occur when users connect via VPN or when there are geographic mismatches between ad serving and device data.

## Data mappings

### Campaign data

Branch populates the following fields from Pinterest campaign data.

| Branch field | Partner data |
| --- | --- |
| `~advertising_partner_name` | `"Pinterest"` (static) |
| `~campaign` | campaign_name |
| `~campaign_id` | campaign_id |
| `~ad_set_name` | ad_group_name |
| `~ad_set_id` | ad_group_id |
| `~creative_name` | creative_name |
| `~creative_id` | creative_id |
| `~click_id` | click_id |
| `~secondary_publisher` | publisher |
