Tag Manager is the recommended way to send Google Ads conversions from granvl. granvl loads your web container on every page of the domain and sends a pages_conversion event to its data layer when a lead converts. Your container's Google Ads tag records the conversion. In this mode granvl doesn't load or fire a Google Ads tag of its own, so the conversion isn't counted twice.
Before you begin
A Google Ads website conversion action for your leads.
A Google Tag Manager account where you can create or edit a web container.
A verified domain in granvl with a published funnel on it, and owner or admin access to the workspace.
A funnel whose form sends visitors to a thank-you page. The
pages_conversionevent fires when a visitor arrives there after the form (or clicks a link marked as a conversion), so a form with no thank-you page never triggers the Google Ads tag.
Important: The method saves as soon as you pick it. If the domain used On-page gtag, granvl stops firing that tag right away, so do steps 3 to 6 in one sitting to avoid a gap in conversions. If it used GA4 import, granvl keeps sending leads to GA4; once your container is live, make sure Google Ads doesn't count both.
1. Copy the conversion details
In Google Ads, open your website conversion action and its tag setup. Choose the Google Tag Manager option and copy the Conversion ID and Conversion label.
The label identifies the conversion action. It isn't your account ID or your container ID.
2. Create or open a web container
In Google Tag Manager, create or open a container with Web as its target platform and copy its GTM- ID.
Skip the installation snippet Tag Manager offers. granvl loads the container for you, so don't paste it into your pages.
3. Save the method in granvl
Open Settings > Tracking and click Set up or Manage on the domain.
Open the Google Ads tab.
Under Method, choose Tag Manager (recommended). It saves right away.
Enter the Conversion ID, Conversion label and Tag Manager container ID.
Click Save changes.
Three IDs look alike, so check each one: AW- is the Google Ads conversion ID, GTM- is the container, and GT- is a Google tag ID, which you only need under Google Tag ID (only if needed) if your GA4 runs on one.
4. Add the tags to your container
Your container needs three tags, one trigger and five variables. You can import them all from granvl's container template, or build them by hand.
Option A: import the template
The template is a container file filled in with the Conversion ID and label you saved in step 3.
In granvl, open Settings > Domains and click Manage on the domain. The address bar now ends in
?manage=followed by the domain's ID.While signed in to granvl, open
https://app.granvl.com/api/domains/DOMAIN_ID/gtm-template, with that ID in place ofDOMAIN_ID. Your browser downloads a.jsonfile.In Tag Manager, open Admin > Import Container and choose the file.
Pick your workspace and choose Merge. If Tag Manager reports conflicts, review each one before you confirm. Merging adds the granvl items; it doesn't replace the rest of your container.
For the import controls, see Google's container import guide.
Option B: build them by hand
Item | Type | Settings |
| Data Layer Variable | Data layer variable names |
| User-Provided Data | Type Code, set to the |
| Custom Event trigger | Event name equals |
| Google tag | Tag ID |
| Google Ads Conversion Tracking | Your Conversion ID and label. Conversion value from |
| Conversion Linker | Firing on All Pages |
Use type Code for the user-provided data. granvl's user_data is already hashed in Google's format, and Google's manual setup would hash it a second time.
5. Turn on enhanced conversions
In Google Ads, turn on enhanced conversions and accept the terms. If Google asks how you'll set them up, choose Google Tag Manager. Google's controls change over time, so follow Google's enhanced conversions guide for the current steps.
6. Preview, then publish
In Tag Manager, click Preview and enter your funnel's published URL.
Complete the form with test details and let it send you to the thank-you page.
In Preview, find the
pages_conversionevent and confirm Google Ads - granvl lead conversion fired once.Check that value, currency and transaction ID came through.
Click Submit, name the version and Publish.
Changes you import or preview don't reach ordinary visitors until you publish.
A test like this is a real lead: it goes to your CRM and to Google. Coordinate it, and delete the test record afterward. A granvl test-drive link won't work here, because test-drive visits never send events to Tag Manager or ad platforms.
What granvl sends to the data layer
Field | Value |
|
|
| One ID per lead, so Google can drop duplicates |
| The funnel's conversion value and currency |
|
|
| Hashed email, phone and name, only when the visitor has consented |
| The funnel's conversion type and where the lead came from |
user_data has this shape, with every value already SHA-256 hashed:
user_data: {
sha256_email_address,
sha256_phone_number,
address: {
sha256_first_name,
sha256_last_name
}
}
The container loads on the same schedule as granvl's other tags: on first interaction or half a second after a landing page is ready, and immediately on the thank-you page. For a visitor who hasn't consented to ad measurement, granvl sets Google's consent mode to denied before the container loads. See Configure pixels and conversion APIs.
Troubleshooting
The conversion tag doesn't fire. Check that the method is Tag Manager (recommended), the container ID is right and the container is published. Confirm the form sends visitors to the thank-you page, and that you're not testing through a test-drive link.
Unqualified leads don't fire. That's expected when the funnel doesn't send unqualified conversions to ad platforms: those leads arrive as pages_conversion_unqualified, which the trigger ignores. See Qualify leads and track what happens next.
Value or transaction ID is empty. Check the data layer variable names are exactly value, currency, transaction_id and user_data, in lowercase.
Conversions are counted twice. Look for another container, a hard-coded Google Ads tag in the domain's custom scripts, or a second conversion action recording the same lead. If you used GA4 import before, granvl still sends leads to GA4; make sure Google Ads isn't also counting that imported GA4 conversion for the same action.
Some conversions are missing. Allow for consent choices, ad blockers and Google's reporting delay before comparing numbers.