No user-provided data matches
Google Ads says No user-provided data matches when the leads you upload match no data the form captured. The likely cause is hashing that does not follow Google's format, or a CRM that holds different details from the form. Hash email, phone, first name, last name and street address after trimming and lowercasing. Leave country, state, city and ZIP unhashed.
At a glance
- Where it shows
- The lead conversion's diagnostics under Goals, Summary, then Diagnostics.
- What stops
- No ad stops. Uploaded leads count only where they match an ad click, so unmatched ones add nothing.
- How serious
- No policy risk. The cost is qualified and won leads that never reach Google as a match.
- How long
- Diagnostics read the past day of data, or the past seven days when there is less.
What it means
The status says the uploaded leads do not match the data the tag captured on the form. Google's page points at two causes: data that was not normalized or hashed correctly, and data that does not line up with what the form captures.
An upload can be accepted and still match no one. Google does not report which uploads matched, so an accepted upload is not proof of a recorded one.
What actually triggers it
Hashing that skips the normalizing steps
Google's page lists trim, lowercase, E.164 phone format and the gmail dot rule before SHA-256. A value hashed without one of those steps matches nothing, and no error says so.
Country, state, city or ZIP hashed
Google's page says not to hash country, state, city or zip code. A hashed location value sits beside the hashed identity fields and makes the row look complete while it matches nothing.
The CRM holds a different address or number than the form
An office line added later, or a personal address replaced by a work one, leaves the CRM with a value the form never captured. The match fails with no alert.
Uploads with no click to match
Not on Google's help page
In real accounts, uploads sent by email or phone alone count only where Google matches the person to an ad click, and Google never reports which ones matched. Leads that never clicked an ad stay unmatched by design.
Fix it in this order
- Open the lead conversion's diagnostics and confirm the message. Note the upload date it covers.
- Pick one lead from the upload and find the same person's form submission. Compare each field with the value the upload sends.
- Normalize before hashing: trim spaces, lowercase, phone in E.164, and remove periods before the domain for gmail.com and googlemail.com.
- Hash email, phone, first name, last name and street address with SHA-256. Do not hash country, state, city or ZIP.
- Send the corrected leads again, then read the diagnostics after a day of new uploads.
Reading an accepted upload is not enough. Check the conversion action's own totals in Google Ads, since an accepted row can still be recorded nowhere.
Often confused with
Match rate: NO_MATCHES or LOW
The match rate reports how many sends matched. This message names the failure on the leads report that produced the zero.
User-provided data not hashed
A formatting error that the upload summary reports directly. Here the upload runs, and the match is what fails.
No attempted imports
Nothing has been sent. Here uploads are sent and none match.