This plugin builds and maintains one CSV file per billing country in the Google Ads Customer Match Lists format from your WooCommerce orders billing data. Each country file is downloadable via a private and secure (tokenized) URL — ideal for marketing teams that run per-country campaigns and want clean, single-market audience lists.
The values are hashed with the same SHA-256 normalization used by both Google Ads Customer Match and Meta Ads Custom Audiences, so the same file can also be uploaded manually to Meta Ads Manager (see FAQ).
Why this export?
Not all purchases are captured by Google Ads tracking; periodic uploads of Customer Match Lists help targeting and campaign performance.
Why per-country files?
Marketing teams optimize Google Ads campaigns per country. Mixing a German audience into a Romanian campaign’s match list pollutes the targeting. This plugin keeps each market in its own file.
--days=N, --since, --until), dry-run, and batch-size control.Email, Phone, First Name, Last Name, Country, Zip.+ — the same hashing Meta Ads Custom Audiences accept.wp-content/uploads/customer-match-list-google-ads/ with filenames containing a 64-bit hash derived from the token.nocache_headers().JOIN on wc_orders + wc_order_addresses (or posts+postmeta on classic). Designed for stores with tens of millions of orders.WooCommerce Marketing Customer Match List.
From there you can:
wp cmls backfill — one-time backfill of historical orders, split by country. Flags: --statuses=completed (default), --all-statuses, --days=N, --since=YYYY-MM-DD, --until=YYYY-MM-DD, --dry-run, --batch-size=5000, --force.wp cmls run-now — runs the incremental writer immediately (same code path as the scheduled cron).wp cmls status — prints a table with one row per country: row count, file size, URL.wp cmls reset-token — regenerates the token and renames every country file to match.wp cmls delete-file — deletes every country CSV and truncates the dedup table.