Two common issues with Customer Match are upload problems and small reported Customer Match list sizes. Both can be traced to problematic data file formatting or incorrect hashing.
In addition to useful hashing tools, this article will walk you through the steps to ensure your files and the data within your file are in the required format for maximum matching. Additionally, we’ll explain common causes and fixes for low traffic and list processing issues.
Before you begin
There is often confusion about the difference between the number of records in the uploaded file and the list size shown in Google Ads.
When you upload a file, your customer data will first be validated to ensure that it’s in an acceptable format for upload. After validation and when the upload is complete, you’ll be provided with a percentage of your customer data that passed validation, was successfully uploaded, and will be matched to Google Accounts. Once the matching process is complete, the column that shows your customer list size will display a bucketed number of customer data that was successfully matched. Learn more about how Google uses Customer Match data
Note that it’s possible that not every customer match record you uploaded is tied to an active Google account. As such, the number of records uploaded may not be equal to your Customer Match list size.
How to troubleshoot upload issues and low list size
Customer Match data files must follow specific formatting guidelines in order to be accepted. Incorrect formatting, including incorrect hashing, can lead to an upload error or a low number of matched records.
Check all of the below items as any can cause a low list size. For additional formatting guidelines, read Create a customer list.
- Files must be in CSV format.
- All identifiers for one user record must be comma-separated. Different user records must be separated by the standard unix newline character \n or a line break. They cannot be separated with a space or semicolon.
- Headers must only be: Email, Phone, First Name, Last Name, Country, Zip, and Mobile Device ID. (If you have multiple email addresses, mailing addresses, or phone numbers for a single customer, your file may include multiple “Email”, “Zip”, or “Phone” columns).
- Include a domain name for all email addresses like gmail.com or hotmail.co.jp.
- Names cannot have a prefix (for example, Mr.).
- For mailing address matching, be sure that your data file contains all of the following 4 column headers: “First Name”, “Last Name”, “Country”, and “Zip”.
- Include the country code for phone numbers.
Additionally, if you’re hashing before you upload your file:
- Don’t hash Country or Zip columns.
- Lowercase all characters and remove all extra spaces before, after, or in between email addresses and names.
- Emails with accents won’t be matched to Google accounts (for example: è, é, ê, and ë). However, accents are okay for use in “First Name” and “Last Name” fields.
- Format phone numbers using the E.164 format.
Here’s an example of the correct file formatting using rows and columns where the first row must be headers.
|First Name||Last Name||Country||Zip||Phone|
|email@example.com||newtest||test||cn||101300||1 (234) 567-8910|
Here’s an example of the correct file formatting using a CSV file.
|Email, First Name, Last Name, Country, Zip, Phone|
|firstname.lastname@example.org,email@example.com, john,smith, us, 94016, 1(234)567-8910|
|firstname.lastname@example.org, newtest, test, cn, 101300, 101500,12354789|
In both examples, multiple email and postal code columns/values may be added and headers must be in English.
Low upload success rate
The first 1,000 rows in your data file are pre-checked before upload for issues. Error messages will explain fixes.
Rows after the first 1,000 will not be pre-checked - a percentage of successfully uploaded rows will be displayed. Please check that you are happy with the percentage. If not, review your data file using the above criteria.
If incorrect hashing was performed before the file was uploaded, or if your customer data doesn’t follow the formatting guidelines, your data file may still be accepted but Google Ads won’t match the customer data to Google Accounts resulting in a low list size.
Pre-hashed emails that technically follow our formatting requirements may successfully upload, but an incorrect hashing method would result in Google Ads inability to match the hashed output to a Google Account. For example, if your email addresses included spaces, the hashed output will not equal a recognizable email for matching to a Google Account.
If you choose to hash your data files before upload, continue to the “Hash data files” section for further troubleshooting.
Hash data files
Google Ads will hash your data file for you if you choose to upload a data file of unhashed customer data in Google Ads. The private customer data in your file (Email, Phone, First Name, and Last Name) will be automatically formatted and hashed on your computer before they are sent securely to Google's servers. The hashing is done locally on the computer that is used to upload the data files, and therefore can be done securely from within an advertiser's own corporate network.
If you choose to pre-hash your files:
- Ensure that you’ve followed the above data file upload best practices before moving on. Low list sizes can be caused by a combination of data file formatting issues and incorrect hashing.
- Use this Customer Match list formatter toolto validate that your hashing method is correct or to hash your data files.
- Note: Google is providing this information to you for your own use for hashing data that is to be used for Customer Match. This is meant for informational purposes only and you are solely responsible for how you use it.
- Once downloaded, open the file in your internet browser. There are three tools available:
- Hashing Validation - Single Input:
- Use Case: You're hashing your own data and want to verify the output via a single input. This tool will show you what conversion using the SHA256 algorithm would output. The output from this demo should match the output from your hashing method.
- Note: Data won’t be scrubbed by this tool prior to hashing (i.e. spaces won’t be removed, letters won’t be lowercase, periods before the @ sign won’t be removed). Scrub your data before you hash to ensure the highest possible match rate.
- Hashing Demo - CSV output:
- Use Case: Hash a batch of data from a CSV via upload. The output will be a CSV. Capital letters will be lowercase, spaces and periods before the @ sign will be removed prior to hashing. The output can be uploaded into Google Ads.
- Hashing Demo - text output:
- Use Case: Hash a batch of data from a CSV file using copy/paste. The output will be displayed in the right hand side box. Capital letters will be lowercase, spaces will be removed, and periods before the @ sign will be removed prior to hashing. After saving the data as a CSV, it can be uploaded to Google Ads.
- Hashing Validation - Single Input:
- Or if you use Python, use this script to hash your data files
Troubleshoot low traffic
“No or low volume” is often caused by too small of a list, too narrow of targeting, and/or low bids or budget compared to other remarketing campaigns.
For Customer Match ads to serve, they must have a minimum threshold of active users at the time the ad is served (active users are the number of users on your list that are active on Gmail, Search, YouTube, or Display). At any given time, the number of active users will likely be less than your total audience list size - not everyone is signed in all the time. We recommend audience list sizes of at least 1,000 users to prevent ads from not serving.
Any additional targeting restrictions you add on top of the Customer Match list will further narrow down the audience list of potential users your campaign can target, ultimately leading to low or no volume.
Fix lists that have a constant “In progress” status
Customer Match uploads can take up to 48 hours to process. If you upload or make changes to your audience lists each day you may see a constant “In progress” status as a result.
For example, let’s say your audience lists take 6 hours to process. You upload new audience list updates every 4 hours, everyday. Each time you upload a new audience list, it will trigger an “In progress” status so your audience list will always show as “In progress” even though previous updates were complete.
Fix errors with your list
|Error / Issue||Fix|
|There’s no data in your file||Make sure your file contains data then re-upload.|
|Formatting errors||Review your file for the following errors:
|Your file doesn’t have all the required column headers for mailing address matching||Email addresses matching only requires email addresses. Mailing address matching requires customer data for all of the following columns: “First Name”, “Last Name”, “Country”, “Zip”, and "Phone". Re-upload your file using all of the required column and column header names for your customer data type.|
|Your file has rows with too many or too few values||Make sure that the number of values per row equals the number of column headers in your file. For rows with partial data, fill in each remaining value with a null character and a comma. For example, if your customer list has the column headers “First Name“, Last Name”, “Country”, “Zip”, and "Phone", each row in your file should have 5 values, each separated by a comma. For scenarios where you have only partial data, like a customer first name but no last name, use a null character in place of the missing value.|
|The following columns in your file have incorrect data||Make sure that the values in your rows correspond with the column header. For example, all of the data in the column titled “Email” should contain valid email addresses only, not zip codes or first names.|
|Column headers in your file are labeled incorrectly||Google Ads requires specific column header names, make sure your file is using the correct column header names: “Email”, “Phone", "First Name”, “Last Name”, “Country”, “Zip”, "Phone", and "Mobile Device ID". Postal codes can be used as zip data.|