How to set up Pinterest Conversions API server-side tracking

Pinterest Conversions API Server-Side Setup (DTC + SaaS)

6 min read • install

Admaxxer is a marketing analytics and attribution platform for DTC brands and SaaS companies. This guide walks through setting up the Pinterest Conversions API — the server-to-server way to send purchase and conversion events to Pinterest — so your Pinterest ad measurement and optimization keep working when the browser-side Pinterest Tag loses signal to ad-blockers, Safari's tracking prevention, and link-tracking changes on iOS.

Like Meta and TikTok, Pinterest offers two delivery legs: the browser-side Pinterest Tag and the server-side Conversions API. The strongest setup runs both with a shared event identifier so they don't double-count. This guide uses an ecommerce checkout (purchase) event; SaaS mapping is noted below. For the exact field names, endpoint, and authentication, always defer to Pinterest's developer documentation, because Pinterest evolves its API and the documentation is the source of truth.

Why server-side Pinterest tracking matters

The Pinterest Tag runs in the browser and inherits every browser-side weakness: ad-blockers drop its requests, Safari truncates the cookies it relies on, link-tracking protection can strip Pinterest's click identifier from shared links, and slow pages can unload before the tag fires. The Conversions API fires from your server, where none of that applies — restoring the conversion signal Pinterest needs to optimize and report accurately.

For the broader picture, see server-side tracking explained; for why platform-reported and pixel-reported numbers diverge, see platform vs pixel conversions.

Prerequisites

Step-by-step: connect the Pinterest Conversions API

Step 1: Generate the Conversions API access token

In your Pinterest Ads account, generate a Conversions API access token for the ad account you want to send events for. Store it server-side, never in client code. If you connect Pinterest through Admaxxer, the Pinterest Ads integration walks you through pasting this token and keeps it server-side.

Step 2: Choose your events

Pinterest's standard ecommerce events include page visits, view-category, add-to-cart, and checkout (the purchase event), among others. For a DTC store, checkout at order completion is your money event; send it with order value and currency. Pinterest also expects an action_source describing where the event originated (for server-side events, the web). Confirm the exact event names and required fields in Pinterest's developer documentation for the version you're on.

SaaS difference: there's no purchase. Map sign-up to a lead / registration event and a paid conversion to checkout or a custom conversion, and send the contract or first-payment value so Pinterest optimizes toward revenue rather than raw sign-ups.

Step 3: Send strong identifiers

Pinterest matches your server event to a Pinterest user using a hashed user-data block. Pinterest's documentation describes accepting a hashed email, a hashed mobile advertiser ID where available, the Pinterest click identifier (click_id / the epik parameter), and the customer's IP address and user agent. As with every platform, the more strong identifiers you send, the higher your match rate.

Always include:

The same cross-platform discipline applies: hash with SHA-256, normalize before hashing, and never send raw PII.

Step 4: Deduplicate with a shared event ID

You're now sending checkout from both the Pinterest Tag and your server. Pinterest deduplicates using an event identifier — generate one deterministic ID per order (order ID plus event name works well) and send the identical identifier on both legs. Pinterest's documentation specifies the exact field name for the dedup key; without it, Pinterest double-counts. Confirm the field name in the Conversions API documentation.

Step 5: Validate before you trust the numbers

Pinterest Ads provides conversion diagnostics that show incoming events and whether the Tag and Conversions API events are deduplicating. Fire a real test order and confirm:

  1. The server checkout event arrives and is attributed to the right event name.
  2. Your identifiers are received (bad hashing is dropped).
  3. The Tag and server events deduplicate rather than double-count.

Only then compare Pinterest-reported conversions against your true order count; expect convergence, not an exact match.

How to measure the gap server-side tracking closes

You can quantify what the Conversions API recovers on your own data — no fabricated benchmark required.

  1. Anchor on your true order count. Pull completed orders for the last 30 days from your commerce platform, filtered to Pinterest-attributed orders (by your campaign UTMs or by the presence of the Pinterest click identifier in the landing session). This is your truth set.
  2. Read the Tag-only count. In Pinterest Ads, count checkout conversions for the same window. The gap between this and your truth set is what the browser Tag is losing to ad-blockers, link-tracking protection, cookie truncation, and slow pages.
  3. Turn on the Conversions API and re-measure after two weeks. With both legs running and deduplicated, the deduplicated total should move toward your truth set. The amount the gap closes is your recovered conversion volume — specific to your store, not an industry estimate.

Because Pinterest skews toward planning and consideration purchases, expect a meaningful share of your conversions to be view-through (a user saw the Pin, didn't click immediately, and came back later). Server-side events with a hashed email give Pinterest the identity signal to attribute those conversions even when no click identifier is present — which is exactly the volume a Tag-only setup tends to miss.

Common mistakes

How Admaxxer does this for you

Admaxxer ships Pinterest Conversions API delivery as part of its server-side tracking, with hashed identifiers pre-wired in Pinterest's payload shape, the real customer IP and user agent passed through, and the deduplication identifier handled automatically. Connect Pinterest once on the Pinterest Ads integration page and events flow server-side from then on. See pricing for what's included or the documentation for the full walkthrough.

FAQs

Do I still need the Pinterest Tag if I have the Conversions API? Yes. The strongest setup runs both — the Tag browser-side and the Conversions API server-side — with a shared event identifier so Pinterest merges them. The server leg recovers what the browser loses.

What identifiers should I send to Pinterest? At minimum a hashed email; add the Pinterest click identifier when present, plus the real customer IP and user agent. Pinterest's documentation lists the full set, including a hashed mobile advertiser ID where available — send everything you have for the event.

What hashing does Pinterest expect? SHA-256 of normalized values, the same family of rules as Meta and TikTok — lowercase and trim email before hashing. Always confirm the exact normalization in Pinterest's current documentation.

How do I deduplicate the Tag and the Conversions API? Send the same deterministic event identifier on both legs. Pinterest matches them and counts the conversion once. The exact field name is in the Conversions API documentation.

How is this different for a SaaS product? Map sign-up to a registration/lead event and a paid conversion to checkout or a custom conversion, and send the contract or first-payment value so Pinterest optimizes toward revenue, not raw sign-ups.

Frequently Asked Questions

Do I still need the Pinterest Tag if I have the Conversions API?

Yes. The strongest setup runs both — the Tag browser-side and the Conversions API server-side — with a shared event identifier so Pinterest merges them. The server leg recovers what the browser loses.

What identifiers should I send to Pinterest?

At minimum a hashed email; add the Pinterest click identifier when present, plus the real customer IP and user agent. Pinterest's documentation lists the full set, including a hashed mobile advertiser ID where available — send everything you have for the event.

What hashing does Pinterest expect?

SHA-256 of normalized values, the same family of rules as Meta and TikTok — lowercase and trim email before hashing. Always confirm the exact normalization in Pinterest's current developer documentation.

How do I deduplicate the Tag and the Conversions API?

Send the same deterministic event identifier on both legs. Pinterest matches them and counts the conversion once. The exact field name is in the Conversions API documentation.

How is this different for a SaaS product?

Map sign-up to a registration/lead event and a paid conversion to a checkout or custom conversion, and send the contract or first-payment value so Pinterest optimizes toward revenue, not raw sign-ups.

Put This Knowledge Into Action

Bring Meta and Google ads into one self-hosted workspace.

Get Started Free