Advanced Conversions (Enhanced Conversions) Diagnosis Report

Unlock precise conversion tracking with Enhanced Conversions to understand customer journeys and boost ad performance. Learn more

Ceyhun Enki Aksan
Ceyhun Enki Aksan Entrepreneur, Maker

An advanced feature introduced to improve the accuracy of conversion measurement—the Enhanced Conversion tag—has enabled me to gather numerous theoretical and practical observations regarding this feature, following my earlier article titled Google Ads - Advanced Conversions.

The Enhanced Conversions (Advanced Conversions) feature provided by Google Ads is a tag that improves the accuracy of conversion tracking and enables more powerful conversion attribution capabilities. As noted in the article titled Google Ads - Advanced Conversions, to enable this feature, the “Enhanced conversions” option must be activated under the conversion tag settings (details)1.

Play

Enhanced Conversions (Advanced Conversions) Diagnostic Report

Conversion data can be collected by selecting the relevant HTML element either through the GTAG GTAG and GTM GTM code snippets or directly via the Ads panel2 3. When using GTAG, the allow_enhanced_conversions parameter must be set to true.

gtag('config','AW-123456', {'allow_enhanced_conversions':true});
Enhanced Conversions
Enhanced Conversions

After enabling the feature, a validation and learning period of approximately 72 hours begins, based on daily conversion volume. This process is then shared via the diagnostic report specific to the conversion2 4.

Enhanced Conversions - Diagnostics Report
Enhanced Conversions - Diagnostics Report

In particular, when using GTM or GTAG, discrepancies may occur in dynamic data. For example, in the case of email and phone field usage, the likelihood of receiving empty phone numbers is quite high. In such cases, errors (Not enough matches for your conversions) may arise due to missing data, preventing conversion data from matching properly.

Enhanced Conversions - Diagnostics Report
Enhanced Conversions - Diagnostics Report

Another common error (Setup is missing required address fields) occurs when previously sent field data (field) is not consistently passed in subsequent conversions, thereby interrupting the learning process.

Enhanced Conversions - Diagnostics Report
Enhanced Conversions - Diagnostics Report

To avoid these commonly encountered errors, it is essential to base the configuration on frequently filled customer fields and ensure consistent transmission of relevant fields from the moment the corresponding feature is enabled. Each null value in the required fields will result in an average 24-hour error notification and subsequent suspension of the feature4.

Especially if you are using the Code option instead of Manual configuration for data type validation or modifications, or if you are passing Manual configuration data after verification, it is crucial to identify the specific fields that trigger error notifications in Google Ads’ enhanced conversions error reporting process.

For example, consider the following code snippets.

The first code snippet is prepared for use in Shopify stores within the Order Status Page field, transforming relevant customer information into a data layer format for advanced tracking, as described in the data layer. In addition to customer, you can also access relevant customer details via checkout or order5.

{% if first_time_accessed %}
{% unless post_purchase_page_accessed %}
post_purchase_page_accessed
{% endunless %}
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
    event: 'get_more_info',
    getCustomerInfo: {
    {% unless customer.email == blank %}"email": "{{ customer.email }}",{% endunless %}
    {% unless customer.phone == blank %}"phone_number": "{{ customer.phone }}",{% endunless %}
    {% unless customer.first_name == blank %}"first_name": "{{ customer.first_name }}",{% endunless %}
    {% unless customer.last_name == blank %}"last_name": "{{ customer.last_name }}",{% endunless %}
    "address": [{
        {% unless customer.addresses[0].street == blank %}"street": "{{ customer.addresses[0].street }}",{% endunless %}
        {% unless customer.addresses[0].city == blank %}"city": "{{ customer.addresses[0].city }}",{% endunless %}
        {% unless customer.addresses[0].province_code == blank %}"region": "{{ customer.addresses[0].province_code }}",{% endunless %}
        {% unless customer.addresses[0].zip == blank %}"postal_code": "{{ customer.addresses[0].zip }}",{% endunless %}
        {% unless customer.addresses[0].country_code == blank %}"country": "{{ customer.addresses[0].country_code }}"{% endunless %}
    }],
    }
});
</script>
{% endif %}

The relevant tracking can also be implemented by creating a Custom JavaScript variable in Google Tag Manager. The data layer may be empty or undefined. Therefore, it is advisable to implement the relevant checks while taking all these factors into account.

function(){
    var obj_customer = {}
    var obj_address = {}

    if (window.hasOwnProperty('Shopify')){
        if(Shopify.checkout.email) obj_customer['email'] = Shopify.checkout.email;
        if(Shopify.checkout.billing_address.phone) obj_customer['phone'] = Shopify.checkout.billing_address.phone;
        if(Shopify.checkout.billing_address.first_name) obj_address['first_name'] = Shopify.checkout.billing_address.first_name;
        if(Shopify.checkout.billing_address.last_name) obj_address['last_name'] = Shopify.checkout.billing_address.last_name;
        if(Shopify.checkout.billing_address.address1) obj_address['street'] = Shopify.checkout.billing_address.address1;
        if(Shopify.checkout.billing_address.city) obj_address['city'] = Shopify.checkout.billing_address.city;
        if(Shopify.checkout.billing_address.province_code) obj_address['country'] = Shopify.checkout.billing_address.province_code;
        if(Shopify.checkout.billing_address.zip) obj_address['postal_code'] = Shopify.checkout.billing_address.zip;      
        obj_customer['address'] = obj_address;
    }
    return obj_customer;
}

Google Ads diagnosis report may soon provide much more detailed explanations, and announce new features related to the conversion tag. I will continue to share the situations I’ve encountered along with potential solutions in the context of these developments.

Footnotes

  1. About advanced conversions. Google Ads Help
  2. Manually configure advanced conversions for websites using the global site tag. Google Ads Help 2
  3. Setting up Google Ads Conversion Tracking on Shopify. Analyzify Resources
  4. About the advanced conversion tag detection report. Google Ads Help 2
  5. Objects. Shopify.dev