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
- A Pinterest Business account (not a personal account)
- A Pinterest Ads account with an active advertiser
- Access to your website’s code (or Google Tag Manager)
- 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
- Go to Pinterest Ads Manager
- Click Ads, then Conversions
- Click Create a Pinterest Tag (if you don’t have one yet)
- 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
- In GTM, create a new Custom HTML tag
- Paste the Pinterest base code
- Set the trigger to All Pages
- Publish
Step 2: Set Up Conversion Events
The base code tracks page views. Now you need to track specific actions.
Essential Events
| Event | When to Fire | Code |
|---|---|---|
| PageVisit | Every page load | Included in base code |
| ViewCategory | Category/collection pages | pintrk('track', 'viewcategory'); |
| AddToCart | Item added to cart | pintrk('track', 'addtocart', {...}); |
| Checkout | Checkout initiated | pintrk('track', 'checkout', {...}); |
| Signup | User creates account | pintrk('track', 'signup'); |
| Lead | Form submission | pintrk('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
checkoutas the event name for purchases (notpurchaselike GA4). Theorder_idparameter 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
- Go to Pinterest Ads Manager, then Conversions, then Conversions API
- Generate an API access token
- 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:
-
Go to Ads, then Conversions
-
Click Create conversion event (if events aren’t auto-detected)
-
Select the event type (Checkout, Lead, Signup)
-
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
-
Select this conversion for campaign optimization
Step 5: Verify Everything Works
Pinterest Tag Helper
Install the Pinterest Tag Helper Chrome extension:
- Visit your website
- Click the extension icon
- Verify the base code loads (you should see “PageVisit” event)
- Navigate to a product page (check for ViewCategory)
- Add to cart (check for AddToCart)
- Complete a test purchase (check for Checkout event with correct value)
Pinterest Events Manager
- Go to Ads, then Conversions
- Click on your tag
- Check the Event History tab
- Verify events are appearing with correct names and values
- For CAPI events, look for “Server” as the source
Common Verification Issues
| Problem | Cause | Fix |
|---|---|---|
| No events appearing | Tag isn’t installed or blocked | Check tag placement, test with Tag Helper |
| Events appear but no value | Purchase event missing value parameter | Fix the event code to include order value |
| Duplicate events | Both tag and CAPI firing without shared event_id | Add matching event_id to both sources |
| Events show “Unverified” | Tag was recently created | Wait 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
- Install the Pinterest channel from the Shopify App Store
- Connect your Pinterest Business account
- The app installs the base tag and purchase events automatically
- 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:
- Add the base code to your theme’s header
- Use WooCommerce hooks to fire conversion events:
woocommerce_thankyouhook for purchase eventswoocommerce_add_to_carthook for add-to-cart events
Google Tag Manager
GTM gives you the most control:
- Create a Custom HTML tag with the Pinterest base code (All Pages trigger)
- Create event-specific Custom HTML tags for each conversion event
- Use Data Layer variables to pass dynamic values (product ID, price, order ID)
- 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.