Browse help topics
Send Meta events only with consent.
Connect the Meta Pixel and Meta’s Signals Gateway Pixel to the visitor’s advertising choice, avoid counting events twice and test the result.
How Velo controls Meta tags
Meta tags do not read Google Consent Mode. They need their own consent setup, tied to Velo’s Advertising category.
When the standard Meta Pixel is on the page, Velo calls fbq('consent', 'grant') or fbq('consent', 'revoke') each time a choice takes effect. Velo does not yet send the choice to the Signals Gateway Pixel, which uses its own code. Control that pixel with GTM consent settings or by blocking its code until the visitor accepts.
| How Meta is installed | What to do |
|---|---|
| Meta Pixel in GTM | Add consent settings to the tag |
| Meta Pixel code in your website | Revoke consent before the pixel starts |
| Signals Gateway Pixel | Use GTM consent settings or block the code |
Set up the Meta Pixel in GTM
- Open the Meta Pixel tag and go to Advanced Settings → Consent Settings.
- Choose Require additional consent for tag to fire and add
ad_storage,ad_user_dataandad_personalization. - Add a Custom Event trigger for
velo_consent_updateto the page-view tag, so it fires once the visitor accepts. - In Advanced Settings → Tag firing options, choose Once per page. Velo pushes
velo_consent_updateagain when a visitor changes their choice. - Add the same consent settings to your other Meta event tags, such as Lead or Purchase. They keep their own triggers.
A tag blocked by consent settings does not send anything. It does not queue the event for later.
Set up Meta Pixel code in your website
Velo loads asynchronously, so Meta’s base code can run first. Add fbq('consent', 'revoke') before fbq('init'), so the pixel waits for a choice. Velo grants consent when the visitor allows advertising.
<script>
/* Meta’s base code loader, unchanged */
fbq('consent', 'revoke');
fbq('init', 'YOUR-PIXEL-ID');
fbq('track', 'PageView');
</script>Read Meta’s consent guide for the Meta Pixel for the full base code.
Set up the Signals Gateway Pixel in GTM
Signals Gateway sends your events through a gateway on your own subdomain, then on to Meta. Install its pixel with Meta’s Signals Gateway Pixel template for GTM, then:
- On the Signals Gateway Pixel tag, go to Advanced Settings → Consent Settings. Choose Require additional consent for tag to fire and add
ad_storage,ad_user_dataandad_personalization. - Fire the tag on a Custom Event trigger for
velo_consent_update, and set Tag firing options to Once per page. - Use the same event ID in the regular Meta Pixel and the gateway pixel, so Meta can remove duplicates. See duplicate events.
The consent settings already stop the tag until the visitor accepts. Setting the field to False stops the pixel sending events even after consent.
Read Meta’s Signals Gateway documentation for creating the gateway and connecting your domain.
Block Meta code until the visitor accepts
Without GTM, you can hold back the Signals Gateway Pixel or Meta Pixel code with Velo. Change the script’s type to text/plain and add data-velo-category="ads". Velo runs the code once the visitor allows advertising.
<script type="text/plain" data-velo-category="ads">
/* your Signals Gateway Pixel or Meta Pixel code, unchanged */
</script>Put the script in the page head. Code that has already run keeps running until the page reloads. If a visitor withdraws consent, it stops from the next page.
Avoid duplicate events
If the Meta Pixel and the Signals Gateway Pixel, or the pixel and the Conversions API, both send the same event, Meta counts it twice unless the two copies match. Meta treats events with the same event name and event ID as one.
- Create one GTM variable that returns an ID unique to each event.
- Put that variable in the Event ID field of both tags.
- Check Events Manager for deduplication warnings after publishing.
See Meta’s deduplication guide.
Test Meta tags
- Open the published website in a fresh session. Before choosing, check the Network panel: there should be no requests to
facebook.com/tror your gateway domain. - Accept advertising. Check that the page view appears in Meta Events Manager’s Test events, or in your gateway’s event activity.
- In a new fresh session, reject advertising and browse two pages. No Meta requests should appear.
- Accept, then withdraw through the privacy button, and load another page. Meta requests should stop.
- Check that each event appears once after deduplication.
If something does not look right
A Meta page view is sent before the visitor chooses.
The pixel starts before Velo. In GTM, check the tag’s consent settings. In your website code, add fbq('consent', 'revoke') before fbq('init'), or block the code as shown above.
The gateway pixel sends events after a rejection.
The Signals Gateway Pixel tag has no consent settings, or its code is installed directly in the website. Velo does not yet control that pixel by itself. Use GTM consent settings or block the code.
Events are counted twice.
The two tags do not share the same event name and event ID. Use one variable for the Event ID field in both tags.
Does Velo set Meta’s Limited Data Use option?
No. If your policy requires Limited Data Use for some US states, set Data Processing Options in the pixel tag or code.