

Feeds: the status (audience window, last and next run, storage folder) and one feed URL per country for your Google Ads customer lists, plus the optional all-countries URL.
Build Google Ads customer lists (Customer Match) from your WooCommerce orders: one CSV file per billing country, updated automatically on a schedule. Each country file has its own private, tokenized URL that Google Ads fetches straight from your WordPress site, with no third-party connector or API key — 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. Even Google’s automatic conversion-based customer lists (auto-enabled for eligible accounts from August 2026) only contain tag-tracked conversions — this plugin exports from the order database itself, so ad-blocked, phone, offline and historical orders are included too (see FAQ). The export reflects your order database as-is — applying your store’s consent choices and legal requirements to it is your responsibility as the merchant (see the GDPR / privacy FAQ).
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, behind a deny-all .htaccess on Apache.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 rebuild (or wp cmls rebuild-now) — rebuilds every file from the orders inside the audience window and swaps them in, in the same process (no PHP time limit). Same result as the nightly rebuild and Tools Rebuild now.wp cmls backfill — one-time backfill of historical orders, split by country. Flags: --statuses=processing,completed (defaults to the statuses saved in the settings), --all-statuses, --days=N, --since=YYYY-MM-DD, --until=YYYY-MM-DD, --dry-run, --batch-size=5000, --force. The next rebuild goes back to the saved window and statuses.wp cmls update-now (or wp cmls run-now) — appends orders placed since the last run, right away. Same code path as the scheduled cron and Tools Update now.wp cmls status — prints a table with one row per country (row count, file size, URL) and the all-countries URL when it’s on, then the audience window, statuses and rebuild times.wp cmls reset-token — regenerates the token and renames every file to match. If a file can’t be renamed, nothing changes and the command fails.wp cmls delete-file — deletes every country CSV and truncates the dedup table.