Pinterest Ads
Datafly Signal delivers conversion events to Pinterest server-to-server, replacing the client-side Pinterest Tag with lightweight server-side delivery. This provides reliable campaign attribution and ad performance measurement without loading vendor JavaScript.
Why route Pinterest Ads through Datafly Signal
- Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions Pinterest Ads optimises against are not filtered by the browser.
- Email and phone number are hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so Pinterest Ads receives match keys rather than raw personal data.
- Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Pinterest Ads needs to attribute the event to the right session.
- Click identifiers are captured and replayed. Signal stores
click_idfirst-party at collection time and attaches them to the conversion later, so attribution survives even when the original landing cookie has expired. - Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the Pinterest Ads rate limit, and retries on 429 or transient failure rather than dropping the event.
- Presets for Retail and Automotive. The mapping starts from a working configuration for your vertical instead of a blank field map.
- One consent decision governs every destination. Pinterest Ads is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
- No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.
Prerequisites
Before configuring Pinterest Ads in Signal, you need a Pinterest Business account with a Pinterest Tag created and a conversion access token.
Create a Pinterest Business Account
- Go to business.pinterest.com and click Join as a business (or convert your personal account).
- Enter your business name, website URL, and select your business type.
- Complete the account setup wizard.
Set Up Pinterest Ads Manager
- In your Pinterest Business account, navigate to Ads in the top menu.
- If prompted, set up your billing information to activate Ads Manager.
- Note your Ad Account ID — found in Ads Manager > Account Settings (a numeric ID like
549764982399).
Create a Pinterest Tag and Get Conversion Token
- In Pinterest Ads Manager, go to Conversions in the left sidebar.
- Click Create Pinterest Tag if you don’t already have one.
- Name your tag (e.g. “Website Tag”) and click Create.
- Navigate to Conversions > Conversion Access Token.
- Click Generate Token and copy the token immediately.
Copy the conversion token immediately — it may only be shown once. Store it securely. If you lose it, you will need to generate a new one.
You do not need to install the Pinterest Tag JavaScript snippet on your website. Signal replaces the client-side tag with server-side delivery.
Configure in Signal
Now that you have your Ad Account ID and conversion token, configure the integration in Signal.
Configuration Fields
| Field | Required | Description |
|---|---|---|
ad_account_id | Yes | Your Pinterest ad account ID (numeric). Found in Pinterest Ads Manager under Account Settings. |
conversion_token | Yes | Conversion access token for server-side event delivery. Generated in Pinterest Ads Manager under Conversions. |
Vendor Click IDs
Signal automatically captures the following Pinterest click identifiers from URL parameters:
| Vendor ID | Parameter | Description |
|---|---|---|
epik | epik | Pinterest enhanced match click ID. Used for improved attribution. |
pin_unauth | pin_unauth | Pinterest unauthenticated user ID. Used when the user is not logged in to Pinterest. |
These are captured automatically by the Datafly.js collector and forwarded with conversion events.
Management UI Setup
- Go to Integrations > Add Integration > Pinterest Ads.
- Enter your
ad_account_idandconversion_token. - Select consent categories (typically
advertising). - Click Save.
Management API Setup
curl -X POST http://localhost:8084/v1/admin/integrations \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_id": "src_abc123",
"vendor": "pinterest_ads",
"name": "Pinterest Ads Production",
"enabled": true,
"config": {
"ad_account_id": "549764982399",
"conversion_token": "ct_ABC123..."
},
"consent_categories": ["advertising"]
}'API endpoint
POST https://api.pinterest.com/v5/ad_accounts/{{ad_account_id}}/eventsAllow egress to api.pinterest.com from the network your delivery workers run on.
Event Mapping
Retail preset
| Signal event | Pinterest event |
|---|---|
page | page_visit |
Product Viewed | view_category |
Product Added | add_to_cart |
Checkout Started | checkout |
Order Completed | purchase |
Automotive preset
| Signal event | Pinterest event |
|---|---|
page | page_visit |
vehicle_searched | search |
vehicle_viewed | view_category |
vehicle_saved | add_to_cart |
finance_quote_requested / test_drive_booked / dealer_contacted | lead |
service_appointment_booked | signup |
To customise, edit the integration’s Field Mappings in the Management UI.
Identity Signals
Automatic Signals
These are sent automatically by Signal — no configuration needed:
| Signal | Description |
|---|---|
epik | Pinterest enhanced match click ID, captured from URL parameters. |
pin_unauth | Pinterest unauthenticated user ID, captured from URL parameters. |
| IP address | Visitor’s IP address, forwarded from the original request. |
| User agent | Visitor’s User-Agent string, forwarded from the original request. |
| External ID | Set to the Datafly anonymous_id (hashed). |
User-Provided Signals
When a user is identified via datafly.identify(), additional signals improve attribution:
| Signal | Description |
|---|---|
| Email (hashed) | User’s email address, SHA-256 hashed before sending. |
All PII hashing is performed server-side by the Signal before the data leaves your infrastructure.
Testing Your Integration
Step 1: Send a Test Event
- Trigger a page view or conversion event on your website.
- Check the Signal event debugger in the Management UI to confirm the event was captured and delivered.
Step 2: Verify in Pinterest Ads Manager
- In Pinterest Ads Manager, go to Conversions > your tag.
- You should see events arriving within a few minutes.
- Check the Event History to inspect individual events and their match quality.
Step 3: Validate Attribution
- Create a test campaign with a small audience.
- Confirm that conversion events are attributed correctly in campaign reports.
Troubleshooting
| Problem | Solution |
|---|---|
| Events not appearing in Pinterest | Verify the ad_account_id and conversion_token are correct. Check that the token has not been revoked. |
| Authentication errors | Regenerate the conversion token in Pinterest Ads Manager and update the integration config in Signal. |
Missing epik or pin_unauth | These are captured from URL parameters when users click Pinterest ads. They will not be present for organic traffic. |
| Low match rate | Add user identity signals (email) via datafly.identify() when users log in or submit forms. Ensure epik click IDs are being captured. |
| Events delayed | Pinterest may take up to 20 minutes to display server-side events. Allow time before investigating further. |
Visit Pinterest Ads API documentation for full API documentation and credential setup instructions.