There are two relatively new options for sending first party data related to conversions via the Google Ads API: (i) Upload with Lead Form User-Provided Data and (ii) Enhanced Conversions. Both are available to Google rep allowlisted accounts only. We’ve written previously that Google is playing catch up with Facebook’s Conversions API, and these options to send first party conversions data to Google Ads via API represent progress in that effort.

Enhanced conversions allows you to supplement conversions that happen on a digital property as signaled by a Google Ads conversion action tag firing with first party data. However, being able to send first party data via API using the “Upload with Lead Form User-Provided Data” option that does not have to be paired with a key value like gclid or transaction_id is very similar to Facebook’s Conversions API, and could be a game change for Google Ads.

Upload with Lead Form User-Provided Data

Previously you could only upload Google Ads conversions by gclid (also see “Import conversions from ad clicks into Google Ads“). With this new API delivery option, instead of sending gclid, you send SHA-256 hashed user_identifiers (email address or phone number, or both). This allows you to send all conversions, not just those where you have a recorded gclid. Note that if you provide both gclid and user_identifiers for a conversion, Google Ads will ignore the user_identifiers.

Why this matters

Google is a less complete identity platform than Facebook. You have one Facebook user account and you must be logged in to use the platform, but possibly multiple Google product user accounts, each with possibly different email addresses, and anonymous use is possible (e.g., Google Maps). Google’s ability to match first party data to advertising interaction (especially with no recorded gclid or transaction_id) is likely less complete as well. But, leveraging first party data definitely helps Google combat tracking disintegration from signal loss, and lessens dependency on cookies. As always, user consent must be considered and honored – not just with signals delivered from the browser, but also from the server via API.

The more observed conversions you can expose to Google, the higher the quality of data sets to train and validate machine learning that drives conversion optimization & conversion attribution (filling in reporting gaps from signal loss), as well as increasing the size & quality of audiences based on this data.

Enhanced Conversions

With this relatively new enhanced conversions option, you can use the Google Ads API to send first-party customer data in the form of conversion adjustments. Google uses this additional data to improve the reporting of your online conversions driven by ad interactions.

After being allowlisted by your Google rep, to use this you must create a Google Ads conversion action and enable enhanced conversions via API in the conversion action settings. The alternative to using the API to send first party data with enhanced conversions is to do so with the Global site tag or Google Tag Manager.

Google Ads Conversion Action Settings where Enhanced Conversions have been allowlisted

If you use the Google Ads API, the conversion tracking tag on your website must¬†use the transaction ID¬†function tag so Google is able to match your tag conversions with your API conversions to avoid duplication. This obviously means that a tracking tag transaction_id value must be populated, as well as the API order_id value. We suspect if you send a conversion via the API including the required order_id value, and there is no matching transaction_id value delivered via a conversion tracking tag (e.g., if the conversion tag failed to fire or deliver data for some reason), Google will still process the API delivered conversion if it can make a match with first party data (as does Google with the “Upload with Lead Form User-Provided Data” option – and Facebook with their Conversions API).

To allow Google to better match the activity to a user & their ad interactions, you send SHA-256 hashed user_identifiers via the Google Ads API. With this option, you send at least one of the following: hashed_email, hashed_phone_number, and/or address_info (user_agent is optional but recommended). Note that you must upload these enhanced conversions via API within 24 hours of the original conversion for the order_id.

Assigning the transaction ID required by enhanced conversions

This requirement is akin to Facebook’s Conversions API deduplication technique. While the term “transaction” implies a purchase, you can send lead data via the Google Ads API as well. You’ll still need to populate the tracking tag transaction_id value, as well as the API order_id value. However, if you have a lead form and there is no order ID available, you can construct a unique value, for example, by concatenating a hashed email address and the current date. You would obviously mimic the same construction technique with both transaction_id and order_id values. In the conversion action settings in Google Ads you can address whether you want to honor one conversion (e.g., for a lead form) or multiple conversions (e.g., for something more like a purchase where every conversion action instance is valuable).

What about uploading store sales via the Google Ads API?

You can also upload store sales conversions via the Google Ads API. But, to be eligible you need 6,000 transactions per month and 500,000 ad clicks from search or shopping results in the last 90 days – or 750,000 clicks or views of display (clicks only) or video ads in the last 90 days. There are no such requirements for Upload with Lead Form User-Provided Data and Enhanced Conversions.

Sending first party data via the Google Ads API for conversions