playbookS

How to set up enhanced conversion tracking in Google Ads with RevenueHero

Send hashed booker emails to Google Ads when meetings are booked through RevenueHero. Covers the two-tag architecture Google now requires, step-by-step GTM setup, testing, and troubleshooting.

author
Charanyan
April 19, 2024
Table of Contents
Increase your pipeline conversions
Let's Talk

How Enhanced Conversions Work (30-Second Version)

When someone clicks your Google Ad, fills your form, and books a meeting through RevenueHero, Google Ads records a "conversion." But Google can only match that conversion to the original ad click if it has enough signal.

Enhanced conversions send a hashed (SHA-256) version of the booker's email alongside the conversion event. Google matches this hashed email against signed-in Google users to improve attribution accuracy. The hashing happens automatically in the browser before any data leaves the page.

Without enhanced conversions: Google relies solely on cookies and click IDs, which break with cross-device journeys, Safari ITP, and ad blockers.

With enhanced conversions: Google matches the hashed email to its user graph, recovering conversions that would otherwise be "unattributed."
‍

Pipeline: RevenueHero fires MEETING_BOOKED β†’ GTM captures and hashes email β†’ Google Ads matches to user graph

‍

What you're building: A pipeline where RevenueHero fires a MEETING_BOOKED event containing the booker's email, Google Tag Manager captures it, and pushes the hashed email + conversion event to Google Ads.

‍

What you'll set up

Table of contents: Pre-flight, Steps 1-9, Checklist, Troubleshooting, Bonus

‍

Pre-flight: Confirm RevenueHero Events Fire on Your Page

Before touching Google Ads or GTM, verify that RevenueHero's JavaScript events actually work on your page. If this step fails, nothing downstream will work.

  1. Open your page with the RevenueHero-connected form in Chrome
  2. Open DevTools (F12 or Cmd+Option+I)
  3. Go to the Console tab
  4. Paste this snippet and press Enter:
JavaScript console snippet to verify RevenueHero events fire

‍

  1. Fill out your form and book a test meeting
  2. You should see RevenueHero Event: PAGE_LOADED when the scheduler appears, and RevenueHero Event: MEETING_BOOKED with the email when the meeting books

‍

If you don't see these events: Your RevenueHero integration isn't firing JavaScript events. Check that your form is connected to an Inbound Router and that the scheduler loads as an embedded widget (not a redirect). Contact RevenueHero support before proceeding.

‍

Step 1: Enable Enhanced Conversions in Google Ads

This step is required. If you skip it, everything you set up in GTM will be silently ignored.
‍

1a. Account-Level Setting

  1. Log into Google Ads
  2. Click Goals in the left sidebar
  3. Click Conversions β†’ Settings (the gear icon at the top, NOT an individual conversion action)
  4. Expand "Enhanced conversions for web"
  5. Toggle it ON
  6. Accept the customer data terms when prompted
  7. For "How do you want to set up enhanced conversions?", select "Google Tag Manager"
  8. Click Save
Important: If you select "Google Tag Manager" here, data sent via any other method (Google tag, API) will be ignored. You can only use one data collection channel.

‍

1b. Conversion Action-Level Setting

  1. Go to Goals β†’ Conversions β†’ Summary
  2. Click on the specific conversion action you're tracking (e.g., "Demo Booked" or "Meeting Scheduled"). If you haven't created one yet: click the + button β†’ Website β†’ name it "Meeting Booked" β†’ category "Submit lead form" β†’ set a value if desired β†’ Save
  3. Click the conversion action name to open its settings
  4. Scroll to "Enhanced conversions" and confirm it shows as ON
  5. Note down these three values (you'll need all three in Step 7). Find them under the conversion action β†’ "Tag setup" β†’ "Use Google Tag Manager":
  • Conversion ID (looks like: 123456789)
  • Conversion Label (looks like: AbCdEfGhIjKlMn)
  • Conversion Tracking ID = AW- + your Conversion ID (e.g., AW-123456789)

‍

Step 2: GTM β€” Conversion Linker Tag

The Conversion Linker preserves the GCLID (Google Click ID) across pages. Without it, Google can't connect the conversion back to the ad click.

Check first: In GTM, go to Tags and search for "Conversion Linker." If one already exists firing on All Pages, skip this step.

‍

If you don't have one:

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Conversion Linker"
  3. Leave all settings as default
  4. Triggering: Select "All Pages"
  5. Name it: Conversion Linker
  6. Save

‍

Step 3: GTM β€” RevenueHero Event Listener Tag

This tag listens for RevenueHero's MEETING_BOOKED postMessage event and pushes the booker's email into GTM's dataLayer.

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Custom HTML"
  3. Paste this code:
Custom HTML tag: event listener for RevenueHero MEETING_BOOKED event

‍

  1. Triggering: Select "All Pages"
  2. Name it: RevenueHero - Meeting Booked Listener
  3. Save

‍

What this does: When RevenueHero's scheduler fires the MEETING_BOOKED event via window.postMessage, this script catches it and pushes a meeting_booked event with the booker's email into GTM's dataLayer.

Why "All Pages"? The listener must be active before the meeting books. Since the scheduler can appear on any page with your form, this needs to run everywhere. It's dormant until a MEETING_BOOKED message arrives β€” zero performance impact.

‍

Step 4: GTM β€” Data Layer Variable for Email

This variable reads the booker_email value from the dataLayer push in Step 3.

  1. Go to Variables β†’ User-Defined Variables β†’ New
  2. Variable Configuration: Select "Data Layer Variable"
  3. Set Data Layer Variable Name to: booker_email
  4. Leave Data Layer Version as "Version 2"
  5. Name it: DLV - Booker Email
  6. Save

‍

Step 5: GTM β€” User-Provided Data Variable

This variable tells GTM which data is personally identifiable information that should be hashed and sent to Google.

  1. Go to Variables β†’ User-Defined Variables β†’ New
  2. Variable Configuration: Select "User-Provided Data". If you don't see this option, you need the "Google Ads User-Provided Data" template from the Community Template Gallery.
  3. Set Type to: "Manual Configuration"
  4. Under Email: Click the variable picker (the brick icon) and select DLV - Booker Email
  5. Leave all other fields (Phone, First Name, Last Name, Address) empty
  6. Name it: UPD - RevenueHero
  7. Save

‍

Why only email? Email has the highest match rate for enhanced conversions. RevenueHero provides booker_name as a single string (not split into first/last), which would require parsing and adds failure points. Email alone is sufficient.

‍

Step 6: GTM β€” Custom Event Trigger

This trigger fires when the meeting_booked event appears in the dataLayer.

  1. Go to Triggers β†’ New
  2. Trigger Configuration: Select "Custom Event"
  3. Set Event name to: meeting_booked
  4. Select "This trigger fires on: All Custom Events"
  5. Name it: CE - Meeting Booked
  6. Save

‍

Step 7: GTM β€” Google Ads Tags (Two-Tag Setup)

You need TWO tags: one records the conversion, one sends the hashed email. Both fire on the same trigger.

Why two tags? Google removed the "Include user-provided data from your website" checkbox from the Conversion Tracking tag in early 2025. Enhanced conversions now require a separate User-Provided Data Event tag alongside your Conversion Tracking tag. If you only create one tag, you'll get conversions without enhanced data (or enhanced data without conversions).

‍

7a. Conversion Tracking Tag

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Google Ads Conversion Tracking"
  3. Enter your Conversion ID (from Step 1b)
  4. Enter your Conversion Label (from Step 1b)
  5. Triggering: Select CE - Meeting Booked
  6. Name it: Google Ads - Meeting Booked Conversion
  7. Save

‍

7b. User-Provided Data Event Tag

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Google Ads User-Provided Data Event"
  3. Enter your Conversion Tracking ID in AW-XXXXXXX format (from Step 1b: AW- + your Conversion ID)
  4. Under User-Provided Data: select UPD - RevenueHero from the variable picker
  5. Triggering: Select CE - Meeting Booked (same trigger as 7a)
  6. Name it: Google Ads - Meeting Booked UPD
  7. Save

‍

Both tags must fire on the same event. The Conversion Tracking tag records the conversion. The User-Provided Data Event tag sends the hashed email. If only one fires, you get either a conversion without enhanced data or enhanced data without a conversion.

‍

Step 8: Test in GTM Preview Mode

Do NOT skip this step. This catches 90% of setup errors before publishing.

8a. Start Preview Mode

  1. In GTM, click the "Preview" button (top right)
  2. Enter the URL of your page with the RevenueHero-connected form
  3. Click "Connect" β€” a new tab opens with your page + the Tag Assistant panel

8b. Trigger a Test Conversion

  1. Fill out your form with a real email address (use your own work email)
  2. Complete the booking through the RevenueHero scheduler
  3. After the meeting books, switch to the Tag Assistant panel
    ‍

8c. Verify in Tag Assistant

  1. In the left sidebar, look for the "meeting_booked" event in the event timeline. If you don't see it: the event listener (Step 3) isn't capturing the RevenueHero event.
  2. Click on the "meeting_booked" event
  3. Under "Tags Fired", verify you see BOTH: Google Ads - Meeting Booked Conversion AND Google Ads - Meeting Booked UPD
  4. Click on the conversion tag, check the "Values" section
  5. Verify the Conversion ID and Conversion Label are correct
  6. Under the Variables tab, check that DLV - Booker Email shows the email address you entered
    ‍

8d. Verify Enhanced Data in Network Tab

This is the definitive check that the hashed email is being sent.

  1. Open Chrome DevTools (F12) β†’ Network tab
  2. In the filter bar, type: googleadservices.com/pagead/conversion
  3. Submit another test form and book a meeting
  4. Look for the network request that appears
  5. Click on it β†’ Payload tab
  6. Look for the em parameter
  • If you see em=tv.1~em. followed by a long hash string: Enhanced conversions are working. The email was hashed and sent.
  • If you see em=tv.1~em. with nothing after it (or no em parameter): The email variable was empty. Go back and check Steps 3-5.

‍

Step 9: Publish and Monitor

9a. Publish

  1. In GTM, click "Submit" (top right)
  2. Name your version (e.g., "RevenueHero Enhanced Conversions")
  3. Click "Publish"
    ‍

9b. Monitor (after 72 hours)

Enhanced conversion diagnostics take up to 72 hours to populate. Don't panic if you see nothing immediately.

  1. In Google Ads: Goals β†’ Conversions β†’ Summary
  2. Click your "Meeting Booked" conversion action β†’ "Diagnostics" tab
  3. Check for:
  • "Tag status: Active" β€” your tag is firing
  • "Enhanced conversions status: Recording" β€” hashed data is being received
  • Match rate β€” typical range: 30-60%
GTM Checklist: Conversion Linker, Event Listener, DLV Booker Email, UPD RevenueHero, CE Meeting Booked, Conversion Tracking tag, User-Provided Data Event tag
Troubleshooting: 5 common issues with causes and debug steps

‍

Bonus: Track Qualified Leads

RevenueHero fires a PAGE_LOADED event when the scheduler is displayed. Since the scheduler only appears for qualified leads, this event means "lead qualified." You can create a second, lower-value conversion for Smart Bidding.

  1. Create a new conversion action in Google Ads (e.g., "Qualified Lead" with a lower value)
  2. Replace the Custom HTML tag from Step 3 with this expanded version:
    ‍
Expanded Custom HTML tag capturing both PAGE_LOADED and MEETING_BOOKED events

‍

  1. Create a new Custom Event trigger for revenuehero_qualified
  2. Create a new Google Ads Conversion Tracking tag with the new conversion's ID/Label, triggered by revenuehero_qualified

This gives Google Ads two conversion signals: one for reaching the scheduler (high volume, lower value) and one for actually booking (lower volume, higher value). Smart Bidding benefits from both.

Reference: booker_email, booker_name, meeting_time, duration, status, booking_participants, conference_link, time_zone, reschedule_count, booking_guests

You can push any of these fields into the dataLayer for use in other GTM tags (analytics, CRM, ad platforms).

How Enhanced Conversions Work (30-Second Version)

When someone clicks your Google Ad, fills your form, and books a meeting through RevenueHero, Google Ads records a "conversion." But Google can only match that conversion to the original ad click if it has enough signal.

Enhanced conversions send a hashed (SHA-256) version of the booker's email alongside the conversion event. Google matches this hashed email against signed-in Google users to improve attribution accuracy. The hashing happens automatically in the browser before any data leaves the page.

Without enhanced conversions: Google relies solely on cookies and click IDs, which break with cross-device journeys, Safari ITP, and ad blockers.

With enhanced conversions: Google matches the hashed email to its user graph, recovering conversions that would otherwise be "unattributed."
‍

Pipeline: RevenueHero fires MEETING_BOOKED β†’ GTM captures and hashes email β†’ Google Ads matches to user graph

‍

What you're building: A pipeline where RevenueHero fires a MEETING_BOOKED event containing the booker's email, Google Tag Manager captures it, and pushes the hashed email + conversion event to Google Ads.

‍

What you'll set up

Table of contents: Pre-flight, Steps 1-9, Checklist, Troubleshooting, Bonus

‍

Pre-flight: Confirm RevenueHero Events Fire on Your Page

Before touching Google Ads or GTM, verify that RevenueHero's JavaScript events actually work on your page. If this step fails, nothing downstream will work.

  1. Open your page with the RevenueHero-connected form in Chrome
  2. Open DevTools (F12 or Cmd+Option+I)
  3. Go to the Console tab
  4. Paste this snippet and press Enter:
JavaScript console snippet to verify RevenueHero events fire

‍

  1. Fill out your form and book a test meeting
  2. You should see RevenueHero Event: PAGE_LOADED when the scheduler appears, and RevenueHero Event: MEETING_BOOKED with the email when the meeting books

‍

If you don't see these events: Your RevenueHero integration isn't firing JavaScript events. Check that your form is connected to an Inbound Router and that the scheduler loads as an embedded widget (not a redirect). Contact RevenueHero support before proceeding.

‍

Step 1: Enable Enhanced Conversions in Google Ads

This step is required. If you skip it, everything you set up in GTM will be silently ignored.
‍

1a. Account-Level Setting

  1. Log into Google Ads
  2. Click Goals in the left sidebar
  3. Click Conversions β†’ Settings (the gear icon at the top, NOT an individual conversion action)
  4. Expand "Enhanced conversions for web"
  5. Toggle it ON
  6. Accept the customer data terms when prompted
  7. For "How do you want to set up enhanced conversions?", select "Google Tag Manager"
  8. Click Save
Important: If you select "Google Tag Manager" here, data sent via any other method (Google tag, API) will be ignored. You can only use one data collection channel.

‍

1b. Conversion Action-Level Setting

  1. Go to Goals β†’ Conversions β†’ Summary
  2. Click on the specific conversion action you're tracking (e.g., "Demo Booked" or "Meeting Scheduled"). If you haven't created one yet: click the + button β†’ Website β†’ name it "Meeting Booked" β†’ category "Submit lead form" β†’ set a value if desired β†’ Save
  3. Click the conversion action name to open its settings
  4. Scroll to "Enhanced conversions" and confirm it shows as ON
  5. Note down these three values (you'll need all three in Step 7). Find them under the conversion action β†’ "Tag setup" β†’ "Use Google Tag Manager":
  • Conversion ID (looks like: 123456789)
  • Conversion Label (looks like: AbCdEfGhIjKlMn)
  • Conversion Tracking ID = AW- + your Conversion ID (e.g., AW-123456789)

‍

Step 2: GTM β€” Conversion Linker Tag

The Conversion Linker preserves the GCLID (Google Click ID) across pages. Without it, Google can't connect the conversion back to the ad click.

Check first: In GTM, go to Tags and search for "Conversion Linker." If one already exists firing on All Pages, skip this step.

‍

If you don't have one:

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Conversion Linker"
  3. Leave all settings as default
  4. Triggering: Select "All Pages"
  5. Name it: Conversion Linker
  6. Save

‍

Step 3: GTM β€” RevenueHero Event Listener Tag

This tag listens for RevenueHero's MEETING_BOOKED postMessage event and pushes the booker's email into GTM's dataLayer.

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Custom HTML"
  3. Paste this code:
Custom HTML tag: event listener for RevenueHero MEETING_BOOKED event

‍

  1. Triggering: Select "All Pages"
  2. Name it: RevenueHero - Meeting Booked Listener
  3. Save

‍

What this does: When RevenueHero's scheduler fires the MEETING_BOOKED event via window.postMessage, this script catches it and pushes a meeting_booked event with the booker's email into GTM's dataLayer.

Why "All Pages"? The listener must be active before the meeting books. Since the scheduler can appear on any page with your form, this needs to run everywhere. It's dormant until a MEETING_BOOKED message arrives β€” zero performance impact.

‍

Step 4: GTM β€” Data Layer Variable for Email

This variable reads the booker_email value from the dataLayer push in Step 3.

  1. Go to Variables β†’ User-Defined Variables β†’ New
  2. Variable Configuration: Select "Data Layer Variable"
  3. Set Data Layer Variable Name to: booker_email
  4. Leave Data Layer Version as "Version 2"
  5. Name it: DLV - Booker Email
  6. Save

‍

Step 5: GTM β€” User-Provided Data Variable

This variable tells GTM which data is personally identifiable information that should be hashed and sent to Google.

  1. Go to Variables β†’ User-Defined Variables β†’ New
  2. Variable Configuration: Select "User-Provided Data". If you don't see this option, you need the "Google Ads User-Provided Data" template from the Community Template Gallery.
  3. Set Type to: "Manual Configuration"
  4. Under Email: Click the variable picker (the brick icon) and select DLV - Booker Email
  5. Leave all other fields (Phone, First Name, Last Name, Address) empty
  6. Name it: UPD - RevenueHero
  7. Save

‍

Why only email? Email has the highest match rate for enhanced conversions. RevenueHero provides booker_name as a single string (not split into first/last), which would require parsing and adds failure points. Email alone is sufficient.

‍

Step 6: GTM β€” Custom Event Trigger

This trigger fires when the meeting_booked event appears in the dataLayer.

  1. Go to Triggers β†’ New
  2. Trigger Configuration: Select "Custom Event"
  3. Set Event name to: meeting_booked
  4. Select "This trigger fires on: All Custom Events"
  5. Name it: CE - Meeting Booked
  6. Save

‍

Step 7: GTM β€” Google Ads Tags (Two-Tag Setup)

You need TWO tags: one records the conversion, one sends the hashed email. Both fire on the same trigger.

Why two tags? Google removed the "Include user-provided data from your website" checkbox from the Conversion Tracking tag in early 2025. Enhanced conversions now require a separate User-Provided Data Event tag alongside your Conversion Tracking tag. If you only create one tag, you'll get conversions without enhanced data (or enhanced data without conversions).

‍

7a. Conversion Tracking Tag

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Google Ads Conversion Tracking"
  3. Enter your Conversion ID (from Step 1b)
  4. Enter your Conversion Label (from Step 1b)
  5. Triggering: Select CE - Meeting Booked
  6. Name it: Google Ads - Meeting Booked Conversion
  7. Save

‍

7b. User-Provided Data Event Tag

  1. Go to Tags β†’ New
  2. Tag Configuration: Select "Google Ads User-Provided Data Event"
  3. Enter your Conversion Tracking ID in AW-XXXXXXX format (from Step 1b: AW- + your Conversion ID)
  4. Under User-Provided Data: select UPD - RevenueHero from the variable picker
  5. Triggering: Select CE - Meeting Booked (same trigger as 7a)
  6. Name it: Google Ads - Meeting Booked UPD
  7. Save

‍

Both tags must fire on the same event. The Conversion Tracking tag records the conversion. The User-Provided Data Event tag sends the hashed email. If only one fires, you get either a conversion without enhanced data or enhanced data without a conversion.

‍

Step 8: Test in GTM Preview Mode

Do NOT skip this step. This catches 90% of setup errors before publishing.

8a. Start Preview Mode

  1. In GTM, click the "Preview" button (top right)
  2. Enter the URL of your page with the RevenueHero-connected form
  3. Click "Connect" β€” a new tab opens with your page + the Tag Assistant panel

8b. Trigger a Test Conversion

  1. Fill out your form with a real email address (use your own work email)
  2. Complete the booking through the RevenueHero scheduler
  3. After the meeting books, switch to the Tag Assistant panel
    ‍

8c. Verify in Tag Assistant

  1. In the left sidebar, look for the "meeting_booked" event in the event timeline. If you don't see it: the event listener (Step 3) isn't capturing the RevenueHero event.
  2. Click on the "meeting_booked" event
  3. Under "Tags Fired", verify you see BOTH: Google Ads - Meeting Booked Conversion AND Google Ads - Meeting Booked UPD
  4. Click on the conversion tag, check the "Values" section
  5. Verify the Conversion ID and Conversion Label are correct
  6. Under the Variables tab, check that DLV - Booker Email shows the email address you entered
    ‍

8d. Verify Enhanced Data in Network Tab

This is the definitive check that the hashed email is being sent.

  1. Open Chrome DevTools (F12) β†’ Network tab
  2. In the filter bar, type: googleadservices.com/pagead/conversion
  3. Submit another test form and book a meeting
  4. Look for the network request that appears
  5. Click on it β†’ Payload tab
  6. Look for the em parameter
  • If you see em=tv.1~em. followed by a long hash string: Enhanced conversions are working. The email was hashed and sent.
  • If you see em=tv.1~em. with nothing after it (or no em parameter): The email variable was empty. Go back and check Steps 3-5.

‍

Step 9: Publish and Monitor

9a. Publish

  1. In GTM, click "Submit" (top right)
  2. Name your version (e.g., "RevenueHero Enhanced Conversions")
  3. Click "Publish"
    ‍

9b. Monitor (after 72 hours)

Enhanced conversion diagnostics take up to 72 hours to populate. Don't panic if you see nothing immediately.

  1. In Google Ads: Goals β†’ Conversions β†’ Summary
  2. Click your "Meeting Booked" conversion action β†’ "Diagnostics" tab
  3. Check for:
  • "Tag status: Active" β€” your tag is firing
  • "Enhanced conversions status: Recording" β€” hashed data is being received
  • Match rate β€” typical range: 30-60%
GTM Checklist: Conversion Linker, Event Listener, DLV Booker Email, UPD RevenueHero, CE Meeting Booked, Conversion Tracking tag, User-Provided Data Event tag
Troubleshooting: 5 common issues with causes and debug steps

‍

Bonus: Track Qualified Leads

RevenueHero fires a PAGE_LOADED event when the scheduler is displayed. Since the scheduler only appears for qualified leads, this event means "lead qualified." You can create a second, lower-value conversion for Smart Bidding.

  1. Create a new conversion action in Google Ads (e.g., "Qualified Lead" with a lower value)
  2. Replace the Custom HTML tag from Step 3 with this expanded version:
    ‍
Expanded Custom HTML tag capturing both PAGE_LOADED and MEETING_BOOKED events

‍

  1. Create a new Custom Event trigger for revenuehero_qualified
  2. Create a new Google Ads Conversion Tracking tag with the new conversion's ID/Label, triggered by revenuehero_qualified

This gives Google Ads two conversion signals: one for reaching the scheduler (high volume, lower value) and one for actually booking (lower volume, higher value). Smart Bidding benefits from both.

Reference: booker_email, booker_name, meeting_time, duration, status, booking_participants, conference_link, time_zone, reschedule_count, booking_guests

You can push any of these fields into the dataLayer for use in other GTM tags (analytics, CRM, ad platforms).

FAQ

Frequently asked questions

Will this affect my existing conversion tracking or historical data?
No. Enhanced conversions are additive. Your existing conversion tracking continues to work exactly as before. The User-Provided Data Event tag sends additional hashed data alongside (not instead of) the standard conversion tag. Google uses the enhanced data to improve matching on conversions that would otherwise be unattributed. Your historical data remains unchanged; improvements only apply going forward.
Will this help with Safari ITP, ad blockers, or cross-device tracking?
Partially. Enhanced conversions recover conversions lost when cookies are blocked (Safari ITP, Brave, Firefox ETP) by matching the hashed email to Google's signed-in user graph. This significantly improves cross-device attribution: if someone clicks your ad on mobile but books on desktop, the email match can connect the two sessions. However, if a prospect uses a strict ad blocker that blocks googleadservices.com entirely, the conversion pixel never fires at all, and enhanced conversions can't help. For those cases, consider adding server-side conversion tracking via the Google Ads API as a backup (requires backend engineering).
Can I also send the booker's phone number or name for better matching?
The User-Provided Data variable (Step 5) supports phone, first name, last name, and address fields. However, RevenueHero's MEETING_BOOKED event provides booker_name as a single string (e.g., "Jane Smith"), not split into first/last name. You'd need JavaScript to split it, which introduces edge cases (middle names, suffixes, single names). Email alone provides a strong match signal with no parsing risk. If you want to add phone, you'd need to capture it from the form submission separately and push it into the dataLayer alongside the email.
Does this work with Performance Max, Demand Gen, and other campaign types?
Yes. Enhanced conversions improve attribution for all Google Ads campaign types that use the same conversion action. Performance Max and Demand Gen campaigns especially benefit because they rely heavily on Smart Bidding signals. Once your conversion action has enhanced data flowing, every campaign type using that conversion action benefits automatically.
Who hashes the email? Do I need to hash it myself?
No. GTM handles the SHA-256 hashing automatically. You pass the plain-text email into the User-Provided Data variable (Step 5), and Google's tag infrastructure hashes it before it leaves the browser. The email is never sent to Google in plain text. You can verify this in the Network tab: the em parameter contains only the hash, not the actual email address.
Can I use gtag.js (Google tag) instead of Google Tag Manager?
Yes, but this guide is GTM-specific. For gtag.js, you'd listen for the MEETING_BOOKED postMessage event the same way (Step 3), then call gtag('set', 'user_data', {email: bookerEmail}) followed by gtag('event', 'conversion', {send_to: 'AW-XXXXX/label'}). The gtag approach requires editing your website code directly rather than using GTM's UI. If you already use GTM, stick with this guide.
What match rate should I expect for enhanced conversions?
Typical match rates range from 30% to 60%. This depends on how many of your prospects use the same email for your form and their Google account. B2B tends to be lower than B2C because work emails often differ from personal Google accounts. Even a 30% match rate meaningfully improves Smart Bidding accuracy. You can check your match rate in Google Ads under Goals > Conversions > your conversion action > Diagnostics tab.
What does em=tv.1~em. mean in the network request? Is it broken if there's nothing after it?
tv.1 is just the tag version prefix. The hashed email appears after ~em. as a long alphanumeric string (the SHA-256 hash). If you see em=tv.1~em. with nothing after the period, the email variable was empty when the tag fired. Go back to Step 5 and confirm UPD - RevenueHero is linked to DLV - Booker Email. A working request looks like: em=tv.1~em.a1b2c3d4e5f6...
Do I need to click a real Google Ad to test enhanced conversions?
For GTM Preview testing: No. GTM Preview mode verifies that your tags fire, variables populate, and the hashed email is sent. You can test by visiting your page directly. For actual Google Ads attribution: Yes. Google Ads will only report a conversion if it can tie the event back to an ad click (via GCLID). To verify end-to-end in your Google Ads reports, you need a real ad click within the attribution window (default 30 days). A common approach: click one of your own ads, fill the form, book a meeting, then check the conversion in Google Ads after 24-48 hours.