Pinterest Conversion Tracking Setup Guide

Track purchases, signups, and other conversions from Pinterest Ads. Here's how to set up the Pinterest Tag, Conversions API, and verify everything works.

Pinterestconversion trackingPinterest tagCAPIecommerceserver-side tracking

You’re running Pinterest Ads. Impressions look good. Clicks are coming in. But how many of those clicks actually turn into purchases? Without conversion tracking, you have no idea — and neither does Pinterest’s optimization algorithm.

Pinterest conversion tracking connects your website activity back to your Pinterest campaigns. When someone clicks a Pin ad and later buys from your store, conversion tracking tells Pinterest “this click led to a sale.” Pinterest then uses that data to find more people like your buyers and optimize your campaigns accordingly.

Here’s how to set it up from scratch.

What You Need

  1. A Pinterest Business account (not a personal account)
  2. A Pinterest Ads account with an active advertiser
  3. Access to your website’s code (or Google Tag Manager)
  4. Your website’s order confirmation page (where purchases complete)

Step 1: Create a Pinterest Tag

The Pinterest Tag is a JavaScript snippet — similar to Meta Pixel or Google Ads tag — that runs on your website.

Create the Tag in Pinterest

  1. Go to Pinterest Ads Manager
  2. Click Ads, then Conversions
  3. Click Create a Pinterest Tag (if you don’t have one yet)
  4. Copy the base code and your Tag ID

Install the Base Code

The base code goes on every page of your website. It initializes the Pinterest Tag and fires a PageVisit event on every page load.

Option A: Direct Installation

Add the code before the closing </head> tag on every page:

<script>
  !function(e){if(!window.pintrk){window.pintrk=function(){
  window.pintrk.queue.push(Array.prototype.slice.call(arguments))};
  var n=window.pintrk;n.queue=[],n.version="3.0";
  var t=document.createElement("script");
  t.async=!0,t.src=e;
  var r=document.getElementsByTagName("script")[0];
  r.parentNode.insertBefore(t,r)}}
  ("https://s.pinimg.com/ct/core.js");
  pintrk('load', 'YOUR_TAG_ID');
  pintrk('page');
</script>

Option B: Google Tag Manager

  1. In GTM, create a new Custom HTML tag
  2. Paste the Pinterest base code
  3. Set the trigger to All Pages
  4. Publish

Step 2: Set Up Conversion Events

The base code tracks page views. Now you need to track specific actions.

Essential Events

EventWhen to FireCode
PageVisitEvery page loadIncluded in base code
ViewCategoryCategory/collection pagespintrk('track', 'viewcategory');
AddToCartItem added to cartpintrk('track', 'addtocart', {...});
CheckoutCheckout initiatedpintrk('track', 'checkout', {...});
SignupUser creates accountpintrk('track', 'signup');
LeadForm submissionpintrk('track', 'lead');

The Purchase Event (Most Important)

The purchase event fires on your order confirmation page and tells Pinterest a sale happened:

pintrk('track', 'checkout', {
  value: 89.99,
  order_quantity: 2,
  currency: 'USD',
  order_id: 'ORDER-12345',
  line_items: [
    {
      product_name: 'Ceramic Planter',
      product_id: 'SKU-100',
      product_price: 44.99,
      product_quantity: 2,
      product_category: 'Home & Garden'
    }
  ]
});

Note: Pinterest uses checkout as the event name for purchases (not purchase like GA4). The order_id parameter is important for deduplication if you also set up the Conversions API.

Enhanced Match

Enhanced match helps Pinterest identify users more accurately by sending additional data points:

pintrk('load', 'YOUR_TAG_ID', {
  em: 'customer@example.com'
});

Include the customer’s email address (in plaintext — Pinterest handles the hashing) in the load call when available. This significantly improves match rates, especially for users who aren’t logged into Pinterest.

Step 3: Set Up the Conversions API (CAPI)

Like Meta and TikTok, Pinterest offers a server-side Conversions API that supplements the browser tag. The reasons to use it are the same: ad blockers, privacy settings, and browser limitations prevent the tag from capturing every conversion.

Get Your API Token

  1. Go to Pinterest Ads Manager, then Conversions, then Conversions API
  2. Generate an API access token
  3. Note your Ad Account ID and Tag ID

API Endpoint

POST https://api.pinterest.com/v5/ad_accounts/{ad_account_id}/events

Request Headers

Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

Request Body (Purchase Example)

{
  "data": [
    {
      "event_name": "checkout",
      "action_source": "web",
      "event_time": 1712000000,
      "event_id": "order-12345-purchase",
      "event_source_url": "https://yourstore.com/checkout/thank-you",
      "user_data": {
        "em": ["sha256_hashed_email"],
        "ph": ["sha256_hashed_phone"],
        "client_ip_address": "203.0.113.42",
        "client_user_agent": "Mozilla/5.0 ..."
      },
      "custom_data": {
        "currency": "USD",
        "value": "89.99",
        "order_id": "ORDER-12345",
        "num_items": 2,
        "content_ids": ["SKU-100"],
        "contents": [
          {
            "id": "SKU-100",
            "item_price": "44.99",
            "quantity": 2
          }
        ]
      }
    }
  ]
}

Deduplication

Use the same event_id in both the browser tag and the Conversions API. Pinterest will deduplicate automatically, keeping whichever event arrived first.

Without deduplication, every conversion is double-counted. Your ROAS looks twice as high as reality.

Step 4: Create Conversion Actions in Pinterest Ads

Now connect the events to your ad account:

  1. Go to Ads, then Conversions

  2. Click Create conversion event (if events aren’t auto-detected)

  3. Select the event type (Checkout, Lead, Signup)

  4. Set the attribution window:

    • Click window: 1 day, 7 days, or 30 days
    • View window: 1 day (default for engagement attribution)
    • Recommendation: Start with 7-day click, 1-day view
  5. Select this conversion for campaign optimization

Step 5: Verify Everything Works

Pinterest Tag Helper

Install the Pinterest Tag Helper Chrome extension:

  1. Visit your website
  2. Click the extension icon
  3. Verify the base code loads (you should see “PageVisit” event)
  4. Navigate to a product page (check for ViewCategory)
  5. Add to cart (check for AddToCart)
  6. Complete a test purchase (check for Checkout event with correct value)

Pinterest Events Manager

  1. Go to Ads, then Conversions
  2. Click on your tag
  3. Check the Event History tab
  4. Verify events are appearing with correct names and values
  5. For CAPI events, look for “Server” as the source

Common Verification Issues

ProblemCauseFix
No events appearingTag isn’t installed or blockedCheck tag placement, test with Tag Helper
Events appear but no valuePurchase event missing value parameterFix the event code to include order value
Duplicate eventsBoth tag and CAPI firing without shared event_idAdd matching event_id to both sources
Events show “Unverified”Tag was recently createdWait 24 hours for Pinterest to verify

If you’re having trouble with the Pinterest Tag specifically, see our Pinterest Tag not firing troubleshooting guide.

Platform-Specific Setup

Shopify

  1. Install the Pinterest channel from the Shopify App Store
  2. Connect your Pinterest Business account
  3. The app installs the base tag and purchase events automatically
  4. Enable Conversions API in the app settings (if available)

Note: Shopify’s Pinterest integration handles basic events but may not send all enhanced match parameters or custom product data. For complete tracking, consider supplementing with GTM.

WooCommerce

Use a Pinterest tracking plugin or add the tag manually:

  1. Add the base code to your theme’s header
  2. Use WooCommerce hooks to fire conversion events:
    • woocommerce_thankyou hook for purchase events
    • woocommerce_add_to_cart hook for add-to-cart events

Google Tag Manager

GTM gives you the most control:

  1. Create a Custom HTML tag with the Pinterest base code (All Pages trigger)
  2. Create event-specific Custom HTML tags for each conversion event
  3. Use Data Layer variables to pass dynamic values (product ID, price, order ID)
  4. Set triggers based on data layer events (add_to_cart, purchase)

Best Practices

Include Product Data

The more product information you send with conversion events, the better Pinterest can optimize:

  • content_ids — Your product SKUs (must match your Pinterest product catalog)
  • value — Order total
  • currency — Currency code
  • num_items — Number of items

If you have a Pinterest product catalog, match your content_ids to catalog product IDs. This enables dynamic retargeting ads that show users the specific products they viewed.

Set Realistic Attribution Windows

Pinterest is often a top-of-funnel channel. Users discover products on Pinterest and may take days or weeks to purchase. A 7-day click window captures most of this delayed conversion behavior. Going shorter (1-day) will undercount conversions; going longer (30-day) may overcount.

Use Both Tag and CAPI

Just like Meta and TikTok, the browser tag alone misses conversions. The CAPI fills gaps. Together with deduplication, you get the most complete picture.

Test Regularly

Pinterest conversion tracking can break without warning — especially after site updates, theme changes, or app updates on Shopify. Test with the Tag Helper monthly, or after any significant site change.

The Bottom Line

Pinterest conversion tracking follows the same pattern as every other ad platform: install a browser tag for real-time tracking, add server-side API calls for completeness, and deduplicate with event IDs. The implementation details differ, but the principles are identical.

Without conversion tracking, Pinterest can’t optimize your campaigns, and you can’t measure whether your Pin ads are actually driving revenue. With it, Pinterest’s algorithm learns who buys and finds more people like them.

If you want to verify that your Pinterest tracking (and all your other ad platform tracking) is working correctly, run a free scan. We check pixels and tags across every major platform in about a minute.