
Make confident, data-driven decisions with actionable ad spend insights.
© 2026 DataCops. All rights reserved.
15 min read
The Pinterest Conversion Tag is broken. There, I said it. Not broken in the sense that the code snippet no longer executes, it does. It's broken because the foundational assumptions it relies on, that a browser will dutifully fire an external script and transmit the necessary data, have been thoroughly undermined.

Orla Gallagher
PPC & Paid Social Expert
Last Updated
December 13, 2025
The Problem: Your Pinterest Ads report 2.5x ROAS with 200 conversions this month looking profitable. Backend e-commerce platform shows 285 actual orders from Pinterest traffic (42% gap). You cannot determine if campaigns are truly profitable or if reported 2.5x ROAS is actually 3.5x because ad blockers prevent Pinterest tag from tracking 30-40% of shoppers who complete purchases.
The Reason: Pinterest tag loads from third-party domain (widgets.pinterest.com) that ad blockers prevent from firing for 30-40% of users. Safari ITP limits tracking cookies to 7 days, breaking attribution for discovery-to-purchase journeys exceeding one week. Bot traffic creates 10-15% fake engagement inflating metrics. Pinterest optimization algorithm receives incomplete conversion data, cannot identify patterns of actual buyers.
The Solution: Implement Pinterest Conversions API that sends conversion data from your server to Pinterest, bypassing browser blocking. Use first-party tracking via CNAME to capture complete session data for 95%+ of users. Filter bot traffic before sending to Pinterest CAPI. Include enhanced match parameters (hashed email, order ID) for high Event Match Quality, enabling accurate algorithm optimization.
Pinterest Conversions API (CAPI) sends conversion data from your server directly to Pinterest, bypassing browser-based tag tracking blocked by ad blockers and privacy browsers.
How Pinterest tag tracking works (browser-based):
User clicks Pinterest ad (Product Pin).
Lands on e-commerce site, Pinterest tag loads in browser.
User completes purchase.
Tag sends conversion to Pinterest from user's browser.
Where Pinterest tag fails:
Ad blocker prevents tag from loading (no tracking).
Safari ITP limits third-party cookies to 7 days (attribution breaks).
Privacy browsers block third-party scripts (tag never fires).
30-40% of shoppers affected.
How Pinterest CAPI works (server-based):
User clicks Pinterest ad, visits website.
User completes purchase.
Your server detects order completion.
Server sends conversion directly to Pinterest API.
Server-to-server, not affected by browser blocking.
Why Pinterest CAPI improves tracking:
Bypasses ad blockers (server connection, not browser).
Not affected by Safari ITP cookie restrictions.
Works for privacy-conscious shoppers.
Captures conversions from 95%+ of users instead of 70%.
Pinterest tag loads from third-party domain that ad blockers prevent from executing for 30-40% of e-commerce shoppers.
Pinterest tag loading:
Script source: https://s.pinimg.com/ct/core.js
Browser classifies as third-party (different domain).
Ad blocker recognizes pinimg.com as tracking domain.
Who blocks Pinterest tracking:
Privacy-conscious shoppers:
Desktop: 30-35% use ad blocker extensions.
Mobile: 15-20% use ad blocking browsers.
Safari users: All affected by ITP restrictions.
Privacy browser users:
Brave browser: Blocks third-party trackers by default.
Firefox Enhanced Tracking Protection: Blocks social trackers.
Safari ITP: Limits third-party cookies to 7 days.
The e-commerce problem:
Pinterest drives discovery-phase traffic.
Shoppers research products, bookmark, return later.
Multi-day consideration before purchase.
Attribution breaks when cookies expire after 7 days.
Impact on conversion tracking:
Pinterest shows: 200 conversions.
E-commerce platform shows: 285 actual orders from Pinterest.
Gap: 85 conversions (30% missing).
Cannot calculate accurate ROAS.
Cannot optimize campaigns on complete data.
Pinterest shoppers take 7-30 days from discovery to purchase, but Safari ITP deletes attribution cookies after 7 days, losing conversion tracking.
Typical Pinterest shopping journey:
Day 1: User discovers product via Pinterest ad.
Pinterest tag sets cookie (7-day expiration in Safari).
User saves Pin, does not purchase yet.
Day 5: User returns to Pinterest, clicks saved Pin.
Cookie still valid, session tracked.
Day 8: Safari ITP deletes Pinterest cookie (7-day limit).
Day 12: User decides to purchase, types URL directly.
Purchases product (conversion happens).
Pinterest tag fires but finds no attribution cookie.
Conversion appears as "Direct" not Pinterest.
Attribution failure:
Spent $50 on Pinterest ad impressions for this user.
User converted but Pinterest gets zero credit.
Campaign appears to have low ROAS (false).
Budget shifted away from Pinterest (wrong decision).
Product categories most affected:
Home decor (14-30 day consideration).
Fashion apparel (7-21 day consideration).
Furniture (21-60 day consideration).
Jewelry (14-45 day consideration).
All exceed 7-day ITP cookie limit.
Most Pinterest CAPI setups fail because they do not fix data collection problems, only improve data delivery after collection.
Problem 1: GTM server-side still blocked
Google Tag Manager server-side receives data from client GTM.
Client-side GTM blocked by ad blockers (30% of users).
No data collected client-side, nothing to send to server.
Server container receives zero data for blocked users.
Pinterest CAPI gets incomplete data (garbage in, garbage out).
Problem 2: Missing enhanced match parameters
Pinterest CAPI needs customer data for matching:
Hashed email
Hashed phone
First name, last name
Order ID
If tag blocked, customer data never captured.
Server sends conversion without enhanced match parameters.
Low Event Match Quality (Fair or Poor rating).
Pinterest cannot attribute conversion to specific ad click.
Problem 3: Event deduplication failures
Pinterest tag fires from browser (when not blocked).
Pinterest CAPI fires from server.
Both send same conversion event.
Need identical event_id to prevent double-counting.
Timing mismatches cause deduplication failures.
Pinterest counts conversion twice (inflated metrics).
Problem 4: Bot traffic pollution
Pinterest CAPI reliably sends all conversions.
Includes bot fake orders and fraudulent activity.
Pinterest algorithm learns from fake patterns.
Optimizes toward more bot traffic, not real shoppers.
Budget wasted on non-human engagement.
Event Match Quality measures how accurately Pinterest can match server-sent conversions to specific ad clicks using customer identifiers.
Event Match Quality ratings:
Poor: Missing most customer parameters.
Fair: Basic parameters only (email or name).
Good: Multiple parameters (email + phone + name).
Excellent: Complete parameters (email + phone + name + address + order ID).
Customer parameters Pinterest uses:
High value (significantly improve matching):
Hashed email (SHA-256)
Hashed phone number (SHA-256)
Order ID or external ID
Medium value:
First name + last name
City + state + zip code
Country
Additional signals:
IP address
User agent
Click ID (epik cookie value)
Match quality impact:
Poor/Fair:
Pinterest cannot reliably match conversions to campaigns.
Attribution probabilistic, often incorrect.
Algorithm optimizes on guesswork.
Campaign performance unreliable.
Good/Excellent:
Pinterest accurately matches conversions to ad clicks.
Deterministic attribution to specific Product Pins.
Algorithm optimizes on precise data.
Campaign performance predictable, scalable.
Ad blockers prevent Pinterest tag from capturing customer data and click IDs, so Pinterest CAPI cannot attribute conversions accurately even when sending from server.
Standard Pinterest tag scenario:
User clicks Product Pin with epik click ID.
Lands on e-commerce site, has uBlock Origin installed.
Ad blocker prevents Pinterest tag from loading.
Customer data (email) never captured.
epik click ID never stored in cookie.
User completes purchase.
Server CAPI send:
Your server detects order completion.
Sends CAPI event to Pinterest:
{
"event_name": "checkout",
"action_source": "website"
}
Missing customer data (was never captured by blocked tag).
Missing epik click ID for attribution.
Pinterest receives conversion but cannot match to campaign.
Low Event Match Quality (Poor rating).
Attribution failure:
Spent $40 on Pinterest ad for this user.
User converted but Pinterest cannot credit specific campaign.
Conversion appears as unattributed or Direct.
Cannot optimize based on incomplete data.
Method Data Collection Customer Data Capture Event Match Quality Bot Filtering Setup Complexity
Tag only Third-party (30-40% blocked) Fails when blocked N/A (tag only) None Low
GTM server-side Third-party client → server Fails when client blocked Fair (email only if captured) None High
Manual backend Standard tag for data Fails when blocked Fair-Good (fragile) None Very high
First-party + CAPI First-party (95%+ capture) Reliable capture Good-Excellent (complete) Active filtering Medium (managed)
First-party tracking via CNAME captures customer data and click IDs for 95%+ of users, enabling high Event Match Quality for Pinterest CAPI.
Standard tracking (fails):
Pinterest tag from s.pinimg.com (third-party).
Ad blocker prevents loading.
Customer email never captured.
epik click ID never stored.
First-party tracking (succeeds):
Script from analytics.yourstore.com (your subdomain via CNAME).
Ad blockers do not block your own domain.
Script captures customer data at checkout.
Stores epik click ID from Pinterest ad click.
Hashes email with SHA-256 for privacy.
Pinterest CAPI flow with first-party:
User clicks Product Pin with epik click ID.
First-party script captures and stores epik value.
User adds to cart, proceeds to checkout.
First-party script captures email at checkout.
Order completes, triggers server event.
Server sends Pinterest CAPI:
{
"event_name": "checkout",
"action_source": "website",
"event_id": "order_12345",
"user_data": {
"em": "SHA256_hashed_email",
"ph": "SHA256_hashed_phone",
"fn": "SHA256_first_name",
"ln": "SHA256_last_name",
"external_id": "order_12345"
},
"custom_data": {
"value": "89.99",
"currency": "USD",
"content_ids": ["prod_456"]
}
}
Pinterest receives complete parameter set.
Event Match Quality: Excellent.
Accurate attribution to original Product Pin.
Algorithm optimizes on complete conversion data.
Week 1: Implement first-party tracking
Create CNAME subdomain: analytics.yourstore.com
Install first-party script on e-commerce site.
Verify epik click ID capture (click your own Pinterest ad).
Test with ad blocker active (should still capture).
Week 2: Configure customer data capture
Capture email at checkout form.
Hash with SHA-256 before storing.
Capture phone number if collected.
Hash additional parameters (name, address).
Week 3: Set up Pinterest CAPI credentials
Pinterest Ads Manager > Conversions.
Create new Tag.
Get Tag ID and Access Token.
Note API endpoint URL.
Week 4: Configure conversion events
Define events to track:
Page visit: PageVisit
Add to cart: AddToCart
Checkout initiate: InitiateCheckout
Purchase: Checkout
Map to Pinterest event names.
Week 5: Implement CAPI event sending
When conversion occurs, server sends:
{
"event_name": "checkout",
"event_time": unix_timestamp,
"event_id": "unique_order_id",
"event_source_url": "https://yourstore.com/checkout",
"action_source": "website",
"user_data": {
"em": [SHA256_hashed_email],
"ph": [SHA256_hashed_phone],
"ge": [SHA256_hashed_gender],
"db": [SHA256_hashed_birthday],
"ln": [SHA256_hashed_lastname],
"fn": [SHA256_hashed_firstname],
"ct": [SHA256_hashed_city],
"st": [SHA256_hashed_state],
"zp": [SHA256_hashed_zipcode],
"country": [SHA256_hashed_country]
},
"custom_data": {
"value": "89.99",
"currency": "USD",
"content_ids": ["product_sku_123"],
"num_items": 2,
"order_id": "ORDER_12345"
}
}
Hash all personal data with SHA-256.
Include order value and currency.
Week 6: Enable bot filtering
Detect bot traffic before CAPI send.
Check for patterns: Instant checkout, data center IPs.
Assign bot probability score.
Only send verified human conversions to Pinterest CAPI.
Week 7: Verify and monitor
Pinterest Events Manager > Test Events.
Send test conversion, verify received.
Check Event Match Quality (target Good or Excellent).
Compare attributed conversions to previous tag-only setup.
Mistake 1: Not capturing customer data
Implement CAPI from backend.
Send event to Pinterest.
Forget to capture email at checkout.
Event Match Quality: Poor (cannot attribute).
Fix: Capture email/phone with first-party script, include in CAPI payload.
Mistake 2: Incorrect hashing
Hash email with MD5 instead of SHA-256.
Forget to lowercase and trim whitespace before hashing.
Event Match Quality drops to Fair.
Fix: Always SHA-256(email.toLowerCase().trim())
Mistake 3: Missing event_id for deduplication
Tag fires from browser.
CAPI fires from server.
Both use different event IDs.
Pinterest counts conversion twice.
Fix: Generate unique event_id, send in both tag and CAPI.
Mistake 4: Not filtering bot orders
All orders trigger CAPI send.
Includes fraudulent transactions and bot spam.
Pinterest algorithm learns from fake patterns.
Fix: Filter bots and fraud before CAPI send.
Mistake 5: Missing conversion value
Send purchase event to Pinterest.
Omit order value and currency.
Pinterest knows purchase happened but not revenue.
Cannot optimize for value-based bidding.
Fix: Always include value, currency, and product IDs.
Check 1: Conversion gap measurement
[ ] Pinterest Ads Manager: Count conversions last 30 days
[ ] E-commerce platform: Count orders from Pinterest traffic
[ ] Calculate gap: (Backend - Pinterest) ÷ Backend × 100
[ ] If gap >20%, tracking significantly broken
Check 2: Event Match Quality score
[ ] Pinterest Events Manager > Event Quality
[ ] Check current rating (Poor/Fair/Good/Excellent)
[ ] If Fair or Poor, missing parameters or incorrect hashing
Check 3: Tag vs CAPI comparison
[ ] Check if both tag and CAPI active
[ ] Verify identical event_id in both
[ ] Pinterest should count once, not double
Check 4: Attribution window accuracy
[ ] Check average days from Pinterest click to purchase
[ ] If >7 days, Safari ITP breaking attribution
[ ] Need first-party cookies persisting longer
Check 5: Bot traffic percentage
[ ] Review orders for suspicious patterns
[ ] Check for instant checkouts, impossible data
[ ] Estimate bot %: typically 10-15% for Pinterest e-commerce
What is Pinterest Conversions API?
Pinterest Conversions API (CAPI) sends conversion data from your server directly to Pinterest, bypassing browser-based tag tracking blocked by ad blockers for 30-40% of shoppers. Improves conversion tracking accuracy from 70% to 95%+ and enables better campaign optimization with complete data.
Why is my Pinterest conversion tracking inaccurate?
Pinterest tag loads from third-party domain that ad blockers prevent from firing for 30-40% of users. Safari ITP limits cookies to 7 days breaking attribution for multi-day shopping journeys common on Pinterest (discovery to purchase averages 7-30 days). Creates 30-40% gap between reported and actual conversions.
What is Event Match Quality for Pinterest?
Event Match Quality rates how accurately Pinterest matches server-sent conversions to ad clicks. Ratings: Poor, Fair, Good, Excellent. Higher quality requires complete customer parameters: hashed email, hashed phone, name, address, order ID. Excellent quality enables deterministic attribution; Poor quality prevents accurate campaign optimization.
How do I improve Pinterest Event Match Quality?
Capture customer email at checkout with first-party tracking that bypasses ad blockers. Hash email with SHA-256(email.toLowerCase().trim()). Include hashed phone, name, address in Pinterest CAPI payload. Send order ID and product SKUs. Complete parameters increase quality from Fair to Excellent.
Does GTM server-side fix Pinterest tracking?
No. GTM server-side receives data from client-side GTM which gets blocked by ad blockers for 30% of users. If client GTM blocked, server receives no customer data to send. First-party data collection must capture email and click IDs at source before server-side routing becomes effective.
How long should Pinterest attribution cookies last?
Pinterest shoppers take 7-30 days from discovery to purchase. Third-party cookies expire in 7 days (Safari ITP), missing 60-70% of conversions with longer consideration. First-party cookies persist 12+ months, capturing complete attribution for multi-week shopping journeys.
DataCops provides first-party analytics platform with native Pinterest Conversions API integration, capturing customer data for 95%+ of shoppers and automatically sending clean conversion data for accurate campaign attribution.
Complete customer data capture:
First-party script from analytics.yourstore.com bypasses ad blockers.
Captures customer email at checkout for 95%+ of shoppers.
Standard Pinterest tag captures only 70% (30% blocked).
Hashes email with SHA-256 automatically for privacy compliance.
Automatic Pinterest CAPI integration:
Native Pinterest Conversions API connector.
Monitors e-commerce conversions (cart adds, checkouts, purchases).
Automatically sends to Pinterest API within minutes.
Includes complete enhanced match parameters.
High Event Match Quality:
Complete parameter set sent to Pinterest:
SHA-256 hashed email
SHA-256 hashed phone
First name, last name
Order ID and product SKUs
Order value and currency
Event Match Quality: Good to Excellent (optimal attribution).
Bot-filtered conversions:
Real-time detection filters fraudulent orders, bot spam.
Suspicious checkout patterns excluded before Pinterest CAPI send.
Pinterest algorithm optimizes on verified human shoppers only.
No wasted spend on fake conversions.
Event deduplication:
Generates unique event_id for each order.
Sends same event_id in both tag and CAPI.
Pinterest automatically deduplicates, counts once.
Accurate conversion metrics without inflation.
Multi-day attribution support:
First-party cookies persist 12+ months not 7 days.
Tracks Pinterest discovery-to-purchase journeys lasting weeks.
User clicks Pin Day 1, purchases Day 25.
Attribution maintained for full shopping cycle.
Conversion value tracking:
Includes actual order value in Pinterest CAPI events.
Pinterest optimizes for revenue, not just conversion count.
Value-based bidding enabled with accurate data.
Product-level data (SKUs, categories) for catalog optimization.
Privacy-compliant implementation:
TCF-certified Consent Management Platform included.
Captures customer data only with valid consent.
Pinterest CAPI events sent only when user consented.
Complete GDPR/CCPA compliance.
Custom event mapping:
Define shopping events:
Product view → PageVisit
Add to cart → AddToCart
Checkout start → InitiateCheckout
Purchase complete → Checkout
Map to Pinterest event types automatically.
Real-time synchronization:
Order completed, Pinterest CAPI event sent within 1-5 minutes.
Pinterest algorithm receives timely feedback for optimization.
Not delayed batch uploads (real-time learning).
Implementation timeline:
Week 1: CNAME DNS setup, first-party script installation
Week 2: Customer data capture configuration and hashing
Week 3: Pinterest CAPI credentials and connection setup
Week 4: Conversion event mapping and testing
Week 5: Bot filtering calibration, go-live monitoring
Platform handles ongoing customer data capture, hashing, bot filtering, and Pinterest CAPI sending with no manual work required.
Expected results:
Conversion visibility: 70% → 95% (25% recovery).
Event Match Quality: Fair → Good/Excellent.
True ROAS revealed: 2.5x reported → 3.5x actual.
Campaign scalability: Confident optimization on complete data.
Key Takeaways:
Pinterest Conversions API sends conversion data server-side, bypassing tag blocked by ad blockers for 30-40% of shoppers
Pinterest shoppers take 7-30 days from discovery to purchase but Safari ITP deletes cookies after 7 days, losing attribution
Event Match Quality (Poor/Fair/Good/Excellent) determines how accurately Pinterest matches conversions to ad clicks
First-party tracking via CNAME bypasses ad blockers to capture customer email for 95%+ of shoppers instead of 70%
Complete enhanced match parameters (hashed email, phone, name, order ID) improve Event Match Quality from Fair to Excellent
GTM server-side fails because client-side data collection still blocked, sends nothing to server for 30% of users
Filter bot traffic (10-15% of e-commerce) before Pinterest CAPI send to prevent algorithm learning from fake patterns
Include order value and currency in Pinterest CAPI to enable value-based bidding and revenue optimization