Issue
When syncing customer data to a Google Ads Customer Match destination via Segment Engage, events fail with a PAYLOAD_VALIDATION_FAILED error stating "Invalid phone number or country code." This often leads users to troubleshoot their phone number formatting, even when the phone numbers are valid and properly hashed.
Product
Segment Destinations
Environment
Segment Console
Cause
Because this is a shared error message for two different fields, users often assume their phone numbers are malformed or being processed incorrectly. However, this error frequently occurs when the countryCode field is mapped but receives an exact empty string ("") from the source data or a Liquid filter. Segment's validation requires the country code to either be a valid 2-letter ISO code or be completely omitted (passed as null). Passing an empty string for the country code triggers the validation rejection, even if the phone number itself is perfectly valid and hashed.
Resolution
- Navigate to your Google Ads Conversions destination in the Segment Console and open the mappings tab.
- Review the mapping configuration for the Country or Country Code field.
- If your source data or current Liquid filters occasionally pass empty strings ("") for the country, you must update the mapping logic.
- Apply or edit a Liquid filter on the country code field to explicitly output null or conditionally drop the key entirely when the country code value is blank.
- Save the updated mapping and monitor the next batch sync to confirm the errors have resolved.
Additional Information
Partial success is enabled by default for Google Ads list uploads. If a batch contains records with an empty country code, Google Ads will reject those specific malformed records, but the valid records within the same batch will still be successfully processed.