This article is the second in a series about Enhanced Conversions for Google Ads.

This article is about Enhanced conversions for leads, which allows Google to match offline conversions to Google Ads clicks.

If you are looking for information on Enhanced conversions for web, which allows Google to match more website conversions to Google Ads clicks, see Part 1 of this series.

When to use enhanced conversions for leads

Enhanced conversions for leads is used in a specific situation – when you are using Google Ads to bring people to your website, then some of these people fill out a form on the website and become a lead, and then that lead is followed up and closed offline (it could be on the phone or in a physical location).

Attributing an offline conversion to an ad click has always required sending offline data back to Google Ads.  For a long time, you have been able to import a file of offline conversions to Google Ads. The difference with Enhanced Conversions for Leads is that user-provided data is used to supplement cookie-based matching. Previously the gclid was sent with the offline conversion data (when available). With Enhanced Conversions for Leads, email address or phone number are additional ways to find data matches for users who were logged on to their Google account when they clicked a Google Ad.

This is a benefit when traditional cookie-based attribution is becoming less reliable, as some users choose to block cookies and some browsers limit cookie lifespan.

Enhanced conversions for leads has online and offline components

Enhanced Conversions for Leads has similarities to Enhanced Conversions for Web, in that a conversion is set up in Google Ads, and user data is sent to Google Ads through Google Tag Manager (you can also use gtag, but I prefer Google Tag Manager). The user data is sent when the lead is captured, and this lead may later become a conversion offline. The lead data is like the glue in the middle, linking a specific ad click with an email address.

However, there is an extra component – because the conversion  happens off  the website, conversions are sent to Google Ads as a spreadsheet or an online feed. Often, a Customer Relationship Management system (CRM) is involved – the web leads are recorded in the CRM and subsequently updated when a sale happens – and the CRM will be the source of the spreadsheet or feed. In this guide, I will describe the steps for sending the offline conversions from a Google Sheet.

I recommend you also read Google’s general information about enhanced conversions and their guide on setting up enhanced conversions for leads with Google Tag Manager.

Setting up enhanced conversions for leads

 Step 1 – Set up the conversion in Google Ads

Note that this process differs quite a bit from setting up a conversion that happens on the website!

  • Choose the Goals menu item and select ‘New conversion action’ or ‘Create conversion action’. Choose to ‘Import’ and then choose ‘CRM, files or other data sources’ then ‘Track conversions from clicks’.
  • The next step is ‘Data source’. To  make this guide easier to follow, let’s choose ‘Skip this step and set up a data source later’. We will do this in Step 2 from Tools > Data Manager > Connected products.
  • Click ‘Continue’.
  • Next you will create the conversion action. First choose a category. We will choose ‘Converted lead’ since, in this scenario, our conversion is a sale. Name the conversion, e.g. Sale from lead.  Click ‘Add’.
Create conversion actions to connect later
  • On the next screen, you could proceed to set up the data source or you could leave this for now and click ‘Done’. To make this guide easy to follow, I am going to click ‘Done’ and set up the data source in Step 2.
  • I can  now see my new conversion in the Goals Summary. From here you can edit the conversion’s settings by clicking on the name. There is also an option to set up the import, which is another way of saying connect the data source.
  • There are 3 further settings to check in Google Ads.
    • Go to Goals > Settings. If the row ‘Enhanced conversions for leads’ is ‘Not configured yet’, expand the section and tick the box ‘Turn on enhanced conversions for leads’ and select the option ‘Google Tag Manager’.
    • In Goals > Settings, make sure ‘Customer Data Terms’ is ‘Accepted’.
    • Go to admin > Account settings and make sure Auto-tagging is set to ‘Yes’.

 Step 2 – Connect the data source

Pre-requisite: I am using a Google Sheet to store my converted leads data, so this already exists and has columns including:

    • Date-time – the format must be one of the following: (Sourced from Google Ads help)
    • Email address OR phone number (email address is preferable) OR gclid.
  • In Google Ads, go to Tools > Data Manager and click ‘Connect product’. Search for and choose ‘Google Sheets’, then ‘Direct’ then ‘Conversions’.
  • Because you will be sharing customer data with Google, you will need to confirm that you are complying with Google’s policies. Click ‘Continue’.
  • You will need to give permission for the data connector to access the Google account that has access to the Google Sheet.
  • Click ‘Next’
  • Browse to find the  file containing the converted lead data.
    • If the Google Sheet contains rows other than converted leads, you can specify conditions for the rows to want to import.
    • Next you will need to map the fields in your Google Sheet to the fields expected by Google Ads. You will need to map:
      • Date-time
      • Email address and/or phone number and/or gclid. Email address and phone number will need to be hashed at the step. You can do this from within the workflow:
        • Click the 3 dots to the right of the field and choose ‘Transform’
        • Click ‘Add transformation’ and select ‘Compute hash (Hex)’.
      •  Click Save.
    • Optionally, you can map fields for conversion value, currency code and order id.
  • Once you have mapped the fields, click Next.
  • Review your set-up and click Finish. During this step you will be able to edit settings, including the schedule for uploading  the data (most frequent is daily). After you have set up the import, you will be able to see it and edit it in Tools > Data manager >  Connected products.
  • To connect this data source to the conversion you set up in Step 1, go back to the Goals summary, click on the conversion and click on ‘Connect source’.

Step 3 – Create a tag in Google Tag Manager to send user-provided data when a lead form is filled

  • Create a Conversion Linker tag, using the Conversion Linker tag type and ‘all pages’ trigger.
  • Create a ‘Google Ads User-provided Data Event’ tag.  This has fields for ‘Conversion ID’ and ‘User-provided data’.
    • For the Conversion ID, provide your Google Ads customer ID (this is different from what is used in a conversion tag)
    • User-provided Data is the variable that you will create in the next step.
    • Use a trigger that will fire this tag when the user data is available (usually the form submit event).
  • Create a ‘User-Provided Data variable’, which is a variable type in GTM. Choose ‘Manual configuration’; this prompts you to specify further variables for your user-provided data.
  • I prefer the manual method because you manually set up GTM variables to extract the data you need, and therefore you can test it in GTM Debug and Preview mode and see what data is being extracted from the page.
  • When you use this variable, the data will be hashed with the SHA256 algorithm before it is sent. In this scenario (enhanced conversions for leads), you need to send either the email address or phone number supplied in the lead form. Email  address is preferred.
    • You will need a variable to pull that data from the input of the form field on the web page. This might be done with a DOM Element variable that includes a CSS selector, or a custom javascript variable.
    • Email address: the DOM Element variable might look something like this, but it will depend on your form:
    • Phone number: this needs to start with a plus sign and country code, followed by the number, with no dashes, parentheses or spaces.
    • This is an example of a custom java script variable that extracts a mobile phone number and formats it.  It first trims any leading or following spaces and removes all brackets and spaces from the number. If the number starts with ’00’, it assumes this is an international prefix and replaces it with ‘+’ (if the number already had ‘+’ at the start, it would leave this alone).  If the number starts with ‘0’, it removes this and replaces it with the country code ‘+61’.  In this case, I was safe to assume that all numbers without country codes were Australian numbers. Your variable will differ, depending on the inputs you expect in the form.
  • Test this tag in Google Tag Manager’s Preview and Debug mode. You should be able to see the user-provided data in 2 places:
    • In the Tags tab, double-click on the tag and you will see the parameters sent (note that hashing occurs  when the data is sent to Google servers, so you will still see it unhashed here).
    • In the Variables tab, you will see the values of individual variables.

Checklist – do you have all this in place?

  1. You have created an ‘Import’ conversion in Google Ads to ‘track conversions from clicks’
  2. You have set up a Google Sheet data source, with columns for Date/time and at least one of hashed email address, hashed phone number or gclid.
  3. In Google Ads, you have created a data source to access data in this Google Sheet, and made this the data source for the Import conversion.
  4. You have created a Google Ads User-provided Data Event tag, triggered when a lead form is submitted. This tag has the Google Ads customer ID as the conversion ID.
  5. You have set up a variable to pick up the user-provided data you want to send (email address is the preferred one).
  6. You have set up a User-Provided Data variable and, in it, referenced the variable from the previous step.
  7. You have added the User-Provided Data variable to the Google Ads User-provided Data Event tag.
  8. You have a Conversion Linker tag.

What is the SHA256 algorithm?

User-provided data is encrypted using SHA-256, a popular hashing algorithm that irreversibly converts an input into a 256-bit value that is not readable.

Google uses the same algorithm to encrypt email addresses, phone numbers, etc ,belonging to Google accounts. Google can look for matches between the 2 sets of hashed data, and identify a set of Google accounts that can be associated with your conversion data.

Google promotes enhanced conversions with the term ‘privacy safe’. This policy  explains how they use this data . The sections on Limited data use, Limited data access, Limited data sharing and Data Security are clear that the data is used only for the purpose it was provided for. However, I don’t believe that enhanced conversions are right for every advertiser. I think every advertiser needs to consider whether their clients would expect them to send their hashed email addresses to Google for the purpose of improving the effectiveness of advertising. I think the answer will be different for different businesses.

How can you see in the Google Ads account whether enhanced conversions are successful?

Check the Conversions summary table in Google Ads, where problems will be indicated in the Status column. If it says ‘Needs attention’, go to the Diagnostics tab where you will be able to drill down to further details.

Your responsibilities as an advertiser

In setting up enhanced conversions, you are required to accept the Customer data terms (that was one of the steps when you set up the data source).

You are agreeing to the following terms:

  • Ensure that you disclose to customers (for example, in your privacy policy) that you share their information with third parties to perform ad measurement services on your behalf, and that you obtain customer consent for such sharing and use where legally required.
  • Comply with all applicable laws and regulations including any data protection or privacy laws, as well as self-regulatory or industry codes that may apply. Data that you upload to Processor Services will be subject to Google Ads Data Processing Terms.
  • Comply with Google’s EU User Consent Policy to the extent applicable.
  • You may not upload information that is prohibited by law, including information about minors. Don’t upload any data (1) that you know relates to individuals under the age of 13 or (2) that was collected from any site or app directed to children under the age of 13.
  • You may not upload conversion information related to the sensitive categories, described below. You may only use Google’s approved API or interface to upload customer information.
  • If you instruct Google to automatically generate Customer Match lists using the data you upload, you must also comply with Customer Match policies.
  • Conversions related to sensitive categories can’t be used for measurement in enhanced conversions, or store sales (uploads).
  • Sensitive categories include: Interest or participation in adult activities such as gambling, sexual encounter dating, sexualized theme dating, sexual entertainment, pornography etc.

Conclusion

Conversion tracking usually refers to online conversions, but sometimes this is not the ‘ultimate’  conversion. In situations where potential customers complete a lead form online but then only some go on to purchase offline, the sale is the ultimate conversion. Enhanced conversions for leads allows Google to understand which ad clicks led to actual sales, and optimise the ad delivery for that ‘ultimate conversion’.

Enhanced conversions make use of user-provided data and therefore is a leap from traditional cookie-based tracking. It might not be for every advertiser, so please take the time to understand it before using it, and make sure you are aware of and comply with your responsibilities regarding data privacy.