plugin-icon

Customer Match List for Google Ads

投稿者: Eduard Doloc·
WooCommerce to Google Ads Customer Match CSV exporter. Per-country lists, scheduled/WP-CLI backfills, secure URLs. Files also work for Meta Ads.
バージョン
1.1.1
最終更新日時
Jul 14, 2026

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.

How it works

  1. A one-time backfill walks every completed WooCommerce order, splits them by billing country, hashes the customer fields and writes one CSV per country.
  2. A scheduled job (1, 6, 12, or 24 hours) picks up new completed orders since the last run and appends them to the right country file.
  3. Each country file is downloadable from a secret URL that you hand to your marketing team. They can paste it into Google Ads Data Manager HTTPS connector and Google fetches the latest list on its schedule OR do one-time manual upload.

Features

  • Per-country splitting — one CSV per ISO billing country, never mixed.
  • Background backfill from the admin (no CLI needed) — runs via Action Scheduler.
  • One-time backfill via WP-CLI with status filter, date filter (--days=N, --since, --until), dry-run, and batch-size control.
  • Scheduled incremental appends every 1, 6, 12, or 24 hours.
  • Per-(email, country) deduplication via a dedicated indexed database table — no full-file scans, single indexed insert per row.
  • CSV exported columns headers: Email, Phone, First Name, Last Name, Country, Zip.
  • Hashed per Google spec: SHA-256 of trimmed/lowercased values, phone normalized to E.164 with the leading + — the same hashing Meta Ads Custom Audiences accept.
  • Secret tokenized URLs — one per country, all resettable from the admin or via CLI.
  • Storage hardening — files live under wp-content/uploads/customer-match-list-google-ads/ with filenames containing a 64-bit hash derived from the token.
  • REST endpoint stream — the CSV is sent chunked with nocache_headers().
  • HPOS-first SQL — direct JOIN on wc_orders + wc_order_addresses (or posts+postmeta on classic). Designed for stores with tens of millions of orders.

Admin Dashboard Settings

WooCommerce Marketing Customer Match List.

From there you can:

  • Pick the cron interval (1/6/12/24 h).
  • See the access token; reset it (regenerates every URL, renames every file).
  • See per-country status: row count, file size, and the tokenized URL ready to copy.
  • Start a background backfill with a date-range preset.
  • Watch backfill progress live (orders processed, rows written, rows skipped, watermark).
  • Delete every country file and reset the dedup table.
  • Do an automated check that confirms the webserver does not expose the CSV directory via a public file listing.

WP-CLI

  • 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.
無料有料プラン
インストールすることで、WordPress.com の利用規約サードパーティプラグイン利用規約に同意したことになります。
最大テスト回数
WordPress 7.0.1
このプラグインをダウンロードして、 サイトに使用できます。