Install Meta, Google and TikTok pixels with Consent Mode v2
Connect ad platform pixels and server events to a project, choose which outcomes each platform receives, and let each visitor’s consent decide what is sent.
Updated October 14, 2026
On this page
Where pixels are set up
Pixels belong to a project, so each landing page reports to the ad accounts that pay for its traffic. Set them up on the project’s Tracking & pixels page. There is no code to edit.
Choose Meta, Google Ads or TikTok. GA4 is optional.
Paste the public ID, such as a Pixel ID or a Google tag ID.
Review which CVRLanding events the platform receives.
Optionally connect the server side with an access token or API access.
Run the pixel test panel before you send paid traffic.
Access tokens stay on the server, never in the published page or in exports. Publish validation flags broken event mappings and missing consent settings.
Meta Pixel and Conversions API
Pixel ID for the browser pixel.
Conversions API (optional): with an access token, CVRLanding also sends mapped conversions from its server, so they can reach Meta when an ad blocker stops the pixel, though never without advertising consent.
The browser and server events for one conversion share the event name and
event_id, so Meta can count it once.Diagnostics never show raw personal data such as names, phone numbers or emails.
Verify with Test events in Meta Events Manager or the Meta Pixel Helper extension.
Google Ads tag and conversions
Google tag ID, plus a conversion action ID and label for each goal you track, such as leads, bookings or purchases.
Consent Mode v2 is built in. See the consent section below.
Verify with Google Tag Assistant.
Server-side and enhanced conversions for leads need Google Ads API access for your account and the visitor’s consent. Until access is granted, the connection shows Awaiting provider access, never Connected, and browser conversions keep working.
TikTok Pixel and Events API
Pixel ID for the browser pixel.
Events API (optional): add an access token to also send mapped conversions from the server.
Both share one
event_idper conversion and use TikTok’s current standard event names, so TikTok can deduplicate them.Verify with the test events tool in TikTok Events Manager.
See TikTok’s event deduplication guide.
Optional GA4
Add a GA4 Measurement ID if your team also reports in Google Analytics. CVRLanding’s own records stay the source of truth for leads, bookings, orders and revenue. GA4 counts sessions and attribution its own way, so its numbers may differ.
Which events are sent
A conversion reaches an ad platform only when the business outcome is real, never on a button click. The default mappings:
page_view→ PageView (Meta), page view (Google), ViewContent or page event (TikTok)- Sent when
A real page view, after consent where required
lead_created→ Lead, or your Google conversion action- Sent when
The server accepted a valid, non-spam form
booking_requested→ optional Schedule or booking-request goal- Sent when
A request was submitted, not yet confirmed
booking_confirmed→ Schedule or qualified-booking goal- Sent when
You confirmed the booking
checkout_started→ InitiateCheckout- Sent when
Checkout was really entered
order_placed→ PlaceAnOrder or your order goal- Sent when
The order exists; it is not revenue
payment_confirmed→ Purchase- Sent when
Payment was verified, or you confirmed an offline sale such as cash on delivery, with an audit record
refund→ adjustment or retraction, where supported- Sent when
A refund was verified
| Event → ads signal | Sent when |
|---|---|
| A real page view, after consent where required |
| The server accepted a valid, non-spam form |
| A request was submitted, not yet confirmed |
| You confirmed the booking |
| Checkout was really entered |
| The order exists; it is not revenue |
| Payment was verified, or you confirmed an offline sale such as cash on delivery, with an audit record |
| A refund was verified |
Map each outcome once
If booking_requested and booking_confirmed both sent Schedule, one booking would count twice. Purchase is sent only on payment_confirmed: for cash on delivery, when you mark the money as received, never when the order is placed.
Consent and Consent Mode v2
Consent has four categories: essential, analytics, advertising, and personalization/replay. Essential covers what the page needs to work, such as submitting a form.
Defaults are region-aware and configurable. For example, EEA and UK visitors can start with analytics and advertising denied until they choose. You remain responsible for the rules that apply to your business, such as in Vietnam, the EEA/UK or North America.
Google Consent Mode v2
Visitors’ choices reach Google tags as four signals, described in Google’s consent mode documentation:
analytics_storage- Controls
Storage, such as cookies, for analytics
ad_storage- Controls
Storage, such as cookies, for advertising
ad_user_data- Controls
Sending user data to Google for advertising
ad_personalization- Controls
Personalized advertising, such as remarketing
| Signal | Controls |
|---|---|
| Storage, such as cookies, for analytics |
| Storage, such as cookies, for advertising |
| Sending user data to Google for advertising |
| Personalized advertising, such as remarketing |
When a category is denied, its events are not sent and no ad data for that visitor is exported.
The lead, booking or order itself still reaches your inbox, because the visitor chose to submit it.
Choices are logged with the consent version shown, and withdrawing consent stops further tracking that relied on it.
No dark patterns or forced consent: visitors who decline can still use the page and its forms.
Connection states
Each platform shows one of these states:
Not configured
- What it means
No ID added. Nothing is sent.
Browser only
- What it means
The browser tag is installed, with no active server connection.
Server connected
- What it means
The server connection works with your credentials.
Awaiting provider access
- What it means
Access is pending with the platform. Nothing is sent from the server, and it is never shown as connected.
Error
- What it means
The last attempt failed. You see the error, its time and the platform’s response. Failed server events are retried.
| State | What it means |
|---|---|
Not configured | No ID added. Nothing is sent. |
Browser only | The browser tag is installed, with no active server connection. |
Server connected | The server connection works with your credentials. |
Awaiting provider access | Access is pending with the platform. Nothing is sent from the server, and it is never shown as connected. |
Error | The last attempt failed. You see the error, its time and the platform’s response. Failed server events are retried. |
The pixel test panel
The pixel test panel runs your page in a real browser and reports, for each platform:
Tag loaded
- Meaning
The platform’s script loaded.
Blocked
- Meaning
The tag was stopped, for example by consent or a browser extension.
Event emitted
- Meaning
The page sent the event from the browser.
Provider acknowledged
- Meaning
The platform confirmed receipt, where it supports confirmations.
| Status | Meaning |
|---|---|
Tag loaded | The platform’s script loaded. |
Blocked | The tag was stopped, for example by consent or a browser extension. |
Event emitted | The page sent the event from the browser. |
Provider acknowledged | The platform confirmed receipt, where it supports confirmations. |
CVRLanding never claims a platform received an event just because the browser fired it. Confirm in Meta Events Manager, Google Tag Assistant or TikTok Events Manager too.
Custom events and optimization
Platforms optimize toward the standard events and conversion actions they support, so a custom event may be recorded yet not be usable for optimization. The mapping screen marks each mapping as eligible or not. Each platform sets these rules and can change them.