Ad platforms optimize on the conversions you send them. In Settings > Tracking you add each platform's IDs once per domain, and granvl loads the tags and sends conversion events on every funnel served from that domain. granvl's own analytics work without any of this; see Understand first-party analytics and attribution.
Before you begin
Add and verify the domain under Settings > Domains. A domain that is still verifying shows Pending domain and can't be set up yet. See Connect a custom domain.
Only workspace owners and admins can change tracking.
Check the funnel's Conversion type in its Settings under Conversion. It decides the event each platform receives (for example Lead sends Meta a
Leadevent). Agents set it to Lead when they build a form. With Not specified, no conversion events go to ad platforms.Have the IDs ready from each platform. The help text under each field says where to find them.
Open a domain's tracking
Go to Settings > Tracking. Each domain shows how many funnels use it and what's set up, for example "Meta Pixel + CAPI" or "Google Ads via GTM".
Click Set up (or Manage) on the domain.
In Manage tracking, pick a tab: Meta, Google Ads, TikTok, Microsoft, GTM or Fire log.
Fill in the fields and click Save changes. Settings apply to every funnel on the domain.
Saved tokens are never shown again. To replace one, enter a new value; to delete it, tick Remove the saved token. Your agent can set IDs with update_domain_tracking, but access tokens and API secrets are only entered here, by a person.
Meta pixel and Conversions API
Field | Where to find it |
Pixel ID | Events Manager, under Data Sources, your pixel |
CAPI access token | The same pixel's Settings, Generate access token |
With both saved, the pixel loads on your pages and records page views for audiences, and each lead is sent twice: from the browser pixel and from granvl's servers through the Conversions API. Both carry the same event ID, so Meta counts the lead once.
To test, copy the test event code from Meta's Test events tab, paste it under Send a test event and click Send test. Then check Meta's Test events view.
If you track leads with a custom conversion in Meta, choose it under Conversions counted on the Meta Ads page so it shows in granvl's platform conversion columns. See Connect ad accounts and read performance.
Google Ads and GA4
Pick how Google Ads gets its conversions under Method:
Method | Fields | How conversions reach Google Ads |
Tag Manager (recommended) | Conversion ID, Conversion label, Tag Manager container ID | granvl loads your container and sends it a |
GA4 import | GA4 Measurement ID, GA4 API secret | granvl sends each lead to GA4 from its servers. Import that GA4 conversion into Google Ads |
On-page gtag | Conversion ID, Conversion label | granvl fires the Google Ads conversion tag on the page |
Google Tag ID (only if needed) is for accounts where GA4 runs under a master Google tag (GT-). It isn't your Tag Manager container ID (GTM-).
Use one method per conversion action. Running two paths that record the same conversion counts it twice.
Send test on this tab sends a test conversion to GA4 through the Measurement Protocol with the saved GA4 credentials.
Other tabs
TikTok and Microsoft take those platforms' pixel or tag IDs; each tab explains what it needs.
GTM loads a Tag Manager container on every page of the domain, on top of the platforms above. Use it for tools granvl doesn't support directly, such as LinkedIn, Reddit or heatmaps. It's the same container field the Google Ads Tag Manager method uses.
Fire log lists the last 20 server-side events sent for the domain, with any error. Browser pixel fires don't appear there; check those in each platform's own tools.
Don't paste platform pixel code into your pages; granvl injects and wires the tags above. For other scripts, use the domain's Scripts section under Settings > Domains.
When tags load
Landing pages: tags load on the visitor's first interaction (a scroll, tap, key press or mouse move), or half a second after the page is ready, whichever comes first. The timer starts only once the page is visible, so a page an app preloads in the background doesn't record a page view until someone is looking at it.
Thank-you pages, and any page a visitor reaches after a form: tags load immediately, so the conversion is sent before they leave.
granvl's own analytics don't wait for either.
When the conversion fires
The browser Lead (or the event for your conversion type) fires when the visitor reaches the funnel's thank-you page after a form, or clicks a link marked as a conversion. Moving from one funnel page to the next, such as landing page to quiz, doesn't fire it.
Server-side events (Conversions API, GA4, TikTok's Events API and Microsoft's server-side event) are sent for each lead granvl records.
Unqualified leads are skipped if the funnel's qualification settings don't send unqualified conversions to ad platforms. See Qualify leads and track what happens next.
Test-drive visits never send events to ad platforms.
Identity matching and consent
To help platforms match a lead to the person who clicked the ad, the page hashes the email, phone and name a visitor enters (SHA-256, in the browser) and sends only those hashes, with ad click IDs. Plain-text contact details never reach granvl. Each platform gets the hash in its own format:
Platform | Phone | |
Meta | Trimmed and lowercased | Country code and number, digits only |
Same, with dots before the @ removed for Gmail addresses | International format with the + | |
TikTok | Trimmed and lowercased | International format with the + |
Microsoft | Dots and any +tag before the @ removed | International format with the + |
A phone number typed without a country code is treated as North American, unless the funnel uses the international phone format with a Default phone country (in the funnel's Settings, under Conversion). Meta also receives a random browser ID that ties the pixel and Conversions API events together.
Hashes are only created and sent for visitors who haven't opted out. Every form shows how to opt out; visitors in the EU, EEA, UK, Switzerland and Quebec are asked to opt in first; browsers sending Global Privacy Control or Do Not Track are treated as opted out. Without consent, conversions still reach the platforms, without identity. To hold every tag until visitors agree, turn on Cookie consent banner in the funnel's Settings under Validation. See Understand how granvl handles lead data.