> For the complete documentation index, see [llms.txt](https://docs.chord.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chord.co/activate/event-streaming/destinations/advertising/pinterest/pinterest-tag.md).

# Pinterest Tag

**Pinterest Tag** is Pinterest's conversion tracking pixel. It loads the Pinterest Tag JavaScript SDK in the browser and forwards ecommerce events to Pinterest for campaign measurement, audience building, and automated bidding optimization. For server events, add the [Pinterest Conversions API](/activate/event-streaming/destinations/advertising/pinterest/pinterest-conversions-api.md) destination. See [Pinterest](/activate/event-streaming/destinations/advertising/pinterest.md) for how the two fit together.

## Getting started

Chord loads the Pinterest Tag for you, so you don't install any script.

You need your Pinterest Tag ID, found in your Pinterest Ads account under **Ads > Conversions**.

## Settings

* **Destination Name** (required): a name to tell this destination apart.
* **Pinterest Tag ID** (required): your Pinterest Tag ID.
* **Use Enhanced Match Loading** (optional): loads the tag with the traits of the signed-in user, when Chord has them. Off by default.
* **Consent Requirements** (optional): the consent categories a visitor must accept before Chord sends data to this destination. See [Consent](/activate/event-streaming/consent.md).

## Connect

Add **Pinterest Tag** from the destination catalog, using the settings above. See [Connect a destination](/activate/event-streaming/connect-a-destination.md) for the full steps.

## Event mapping

Every event is sent with an `event_id` set to the Chord `messageId`, for deduplication. See [Pinterest](/activate/event-streaming/destinations/advertising/pinterest.md) for how the two versions deduplicate.

| Chord event                                                                             | Pinterest event                                                      | Notes |
| --------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ----- |
| `page`                                                                                  | `PageVisit`                                                          |       |
| `identify`                                                                              | `pintrk("set")` only. No conversion event is sent                    |       |
| [`Product List Viewed`](/collect-data/tracking-plan/product-list-viewed.md)             | `ViewCategory`                                                       |       |
| [`Products Searched`](/collect-data/tracking-plan/products-searched.md)                 | `Search`                                                             |       |
| `Products List Filtered`                                                                | `Search`                                                             |       |
| [`Product Viewed`](/collect-data/tracking-plan/product-viewed.md)                       | `ViewContent`                                                        |       |
| [`Product Added`](/collect-data/tracking-plan/product-added.md)                         | `AddToCart`                                                          |       |
| [`Product Added to Wishlist`](/collect-data/tracking-plan/product-added-to-wishlist.md) | `AddToWishlist`                                                      |       |
| [`Checkout Started`](/collect-data/tracking-plan/checkout-started.md)                   | `InitiateCheckout`                                                   |       |
| [`Payment Info Entered`](/collect-data/tracking-plan/payment-info-entered.md)           | `AddPaymentInfo`                                                     |       |
| [`Order Completed`](/collect-data/tracking-plan/order-completed.md)                     | `Checkout`                                                           |       |
| [`Signed Up`](/collect-data/tracking-plan/signed-up.md)                                 | `Signup`                                                             |       |
| [`Email Captured`](/collect-data/tracking-plan/email-captured.md)                       | `Lead`                                                               |       |
| *(other track events)*                                                                  | Sent under the Chord event name. See [Custom events](#custom-events) |       |

## Page events

**Pinterest SDK call:** `pintrk("track", "PageVisit", pageProps)`

| Chord source (priority order) | Pinterest field | Notes |
| ----------------------------- | --------------- | ----- |
| `properties.title`            | `name`          |       |
| `messageId`                   | `event_id`      |       |

## Identify events

Sets user identity for Pinterest enhanced matching.

**Pinterest SDK call:** `pintrk("set", { np, em })`

| Chord source (priority order)                                | Pinterest field | Notes                                                                      |
| ------------------------------------------------------------ | --------------- | -------------------------------------------------------------------------- |
| *(hardcoded)* `"segment"`                                    | `np`            | Integration name                                                           |
| `properties.email` > `context.traits.email` > `traits.email` | `em`            | Lowercased and SHA-256 hashed in the browser. Omitted if there is no email |

## Event properties

Product List Viewed, Products Searched, Products List Filtered, Product Viewed, Product Added, Product Added to Wishlist, Checkout Started, Payment Info Entered, Order Completed, Signed Up and Email Captured all send these properties.

| Chord source (priority order)                 | Pinterest field | Notes                                                                           |
| --------------------------------------------- | --------------- | ------------------------------------------------------------------------------- |
| `messageId`                                   | `event_id`      |                                                                                 |
| `properties.query`                            | `search_query`  |                                                                                 |
| `properties.order_id`                         | `order_id`      |                                                                                 |
| `properties.coupon`                           | `coupon`        |                                                                                 |
| `properties.value`                            | `value`         |                                                                                 |
| `properties.currency`                         | `currency`      |                                                                                 |
| Each product, as in [Line items](#line-items) | `line_items`    | Not sent for Signed Up and Email Captured. Omitted if the event has no products |

Two events add more:

* **Product List Viewed** also sends `name` from `properties.item_list_name` and `category` from `properties.category`.
* **Order Completed** is skipped, with a console warning, when the order has no products.

Products come from `properties.products[]`. For single-product events such as Product Added, Chord reads the product from the top-level `properties` instead.

**Pinterest SDK calls**

* Product List Viewed: `pintrk("track", "ViewCategory", data)`
* Products Searched and Products List Filtered: `pintrk("track", "Search", data)`
* Product Viewed: `pintrk("track", "ViewContent", data)`
* Product Added: `pintrk("track", "AddToCart", data)`
* Product Added to Wishlist: `pintrk("track", "AddToWishlist", data)`
* Checkout Started: `pintrk("track", "InitiateCheckout", data)`
* Payment Info Entered: `pintrk("track", "AddPaymentInfo", data)`
* Order Completed: `pintrk("track", "Checkout", data)`
* Signed Up: `pintrk("track", "Signup", data)`
* Email Captured: `pintrk("track", "Lead", data)`

## Line items

When products are present, each product is mapped to a Pinterest line item:

| Chord source (priority order)        | Pinterest field      | Notes |
| ------------------------------------ | -------------------- | ----- |
| `product.name`                       | `product_name`       |       |
| `product.product_id` > `product.sku` | `product_id`         |       |
| `product.category`                   | `product_category`   |       |
| `product.variant_id`                 | `product_variant_id` |       |
| `product.variant`                    | `product_variant`    |       |
| `product.price`                      | `product_price`      |       |
| `product.quantity`                   | `product_quantity`   |       |
| `product.brand`                      | `product_brand`      |       |

## Custom events

Any track event that is not in the table above is sent under its Chord event name. The payload holds only `event_id` and the properties you add with destination mappings. See [Custom property forwarding](#custom-property-forwarding).

**Pinterest SDK call:** `pintrk("track", eventName, properties)`

## Custom property forwarding

Configure destination mappings in Chord with `properties.*` destination paths to forward additional event properties into `pintrk("track", ...)` payloads. Only explicitly-configured non-schema fields are forwarded — nothing flows through automatically.

**How to configure:**

1. In Chord, open the destination's connection and find **Property Mappings**. See [Property mappings](/activate/event-streaming/property-mappings.md#add-a-mapping) for the steps.
2. Add a mapping with source path `properties.loyalty_tier` and destination path `properties.loyalty_tier`.
3. On the next event, `loyalty_tier` will appear in the event properties payload sent to Pinterest.

**What is excluded:**

* Fields Chord already computes: `value`, `currency`, `order_id`, `coupon`, `query`, `search_term`, `products`, `item_list_name`, `category` and `title`.
* PII fields (`email`), which Chord handles separately for enhanced match.

A mapping to a field that Chord computes is ignored. The computed value is always the one sent.

## Initialization

Chord loads `https://s.pinimg.com/ct/core.js`, then calls `pintrk("load", tagId)`, followed by `pintrk("page")` to fire the initial page view. If **Use Enhanced Match Loading** is on and the first event has an email, the load call includes the SHA-256 hash of the email as `{ em }`.

If another tag on the page has already loaded the Pinterest Tag, Chord doesn't load or initialize it again. It only sends events through the existing tag. If the script fails to load, later events are silently dropped.

## CSP requirements

If your site uses a Content Security Policy, allow the following domains:

| Directive     | Domain                 |
| ------------- | ---------------------- |
| `script-src`  | `https://s.pinimg.com` |
| `connect-src` | `https://s.pinimg.com` |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chord.co/activate/event-streaming/destinations/advertising/pinterest/pinterest-tag.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
