Skip to documentation content

Pinterest Tag

Consent grant and revoke for the Pinterest Tag through pintrk('setconsent').

What it does. Tells the Pinterest Tag whether the visitor consented, using Pinterest's documented consent call.

Consent category. marketing. The bridge reads the Consent Mode ad keys when a consent event carries them, and otherwise reads the stored category.

How it works

The bridge sends:

pintrk('setconsent', true);  // marketing granted
pintrk('setconsent', false); // marketing declined or withdrawn

With false, Pinterest stops sending events for the visitor and deletes the tag's first-party cookies. With true, it goes back to tracking.

The calls happen at three points:

  • At load. A returning visitor's stored choice is sent straight away.
  • On a choice. It sends a call on every cookiebeam:consentUpdate and cookiebeam:consentRestored, and on withdrawal. It only sends when the value changes.
  • Late tags. If pintrk doesn't exist yet, the bridge keeps the decision and checks for the tag every 200 ms for ten seconds, and once more on window load.

An explicit US opt-out of sale/sharing or of targeted advertising always sends setconsent(false).

What it doesn't do

Nothing before a decision. Pinterest has no "hold" call. A visitor who hasn't chosen yet gets no Pinterest call from us. To keep the tag off the page until consent, use auto-blocking. The scanner classifies s.pinimg.com/ct/… as marketing, so a scanned site blocks it until marketing is granted.

It never creates window.pintrk. Pinterest's base code only injects core.js inside if (!window.pintrk). If we created the function, your snippet would skip loading Pinterest entirely. So the bridge waits for your snippet to create it.

No Limited Data Processing flag. Pinterest's CCPA mechanism, pintrk('set', { opt_out_type: 'LDP', st, country }), needs SHA-256 hashes of the visitor's state and country. Pinterest ignores it unless all three fields are valid, so a hash in the wrong format would fail without any error. We don't emit it. If you need LDP, set it in your own tag with values you've checked against Pinterest's documentation.

Setup

Off by default. On the banner's App Integrations page, go to Vendor Consent Signals → Ad pixels and turn on Pinterest Tag. Then publish.

The toggle is stored as customFeatures.adPixelConsentBridges.pinterest: true on the banner theme.

Testing

Load the site, open the console, and wrap the tag's function so you can see the calls:

var original = window.pintrk;
window.pintrk = function () { console.log('pintrk', arguments); return original.apply(this, arguments); };

Accept or reject marketing in the banner. You should see setconsent with true or false, once per change.