CMLS - Customer Match List for Google Ads & Meta Ads
by Eduard Doloc 1 (0 reviews)

CMLS - Customer Match List for Google Ads & Meta Ads

Build Google Ads customer lists (Customer Match) from WooCommerce orders: one auto-updated CSV per country on a secure URL. Works with Meta Ads.

CMLS ranks #25,352 among WordPress.org plugins with 30+ active installations, is #3,751 of 14,124 in the E-commerce category, a 1/5 rating from 0 reviews, and was last updated Oct 20, 2026. Data from WordPress.org, refreshed twice daily — see methodology.

Compatible with WP 7.1
v2.1.1 Current Version v2.1.1
Updated 2 weeks ago Last Update on 20 Oct, 2026
Refreshed 1 week ago Last Refreshed on
#3,751 of 14,124 in E-commerce Top 50% by installs Downloads +69.6% this week Actively maintained
View on WordPress.org
Rank
#25,352
— No change
Active Installs
30+
-25%
KW Avg Position
61
15.7 better
Downloads
762
+4 today
Support Resolved
0%
— No change
Rating
20%
Review 1 out of 5
1 (0 reviews)

Next Milestone 40

Total Progress 40%
30+ 40+
4,489
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 6 more installs to reach 40+

Rank Changes

24,084 24,718 25,352 25,986 26,620 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
23,547 24,794 26,042 27,289 28,536 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Current #25,352
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 10 20 30 40 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
0 10 20 30 40 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

1.0
0 reviews
Overall 20%
5
0 (0%)
4
0 (0%)
3
0 (0%)
2
0 (0%)
1
0 (0%)

Frequently Asked Questions

Common questions about CMLS - Customer Match List for Google Ads & Meta Ads

Marketing teams optimize Google Ads campaigns per country. Mixing audiences degrades match-rate signals and wastes budget on irrelevant impressions. Each country file is independent and can be wired into its own Customer Match list. Google's Data Manager pulls each URL on its own schedule, so you can refresh some markets without affecting others.
Yes. On the Settings tab, tick Also offer one file with every country. The Feeds tab then lists an extra URL ending in /all.csv, after the country URLs. It holds the rows of every country file together, under one header, so it's always in step with them. A customer who ordered from two countries appears once per country, as in the country files.
In Google Ads → Tools → Shared library → Audience manager, click + Create remarketing list → + Customer list and connect the HTTPS data source (step by step under "How do I add value segment URLs in Google Ads?" below; country URLs work the same way). Paste the country-specific URL from the plugin's admin page. Google Ads fetches the file on its own cadence; our plugin keeps the file fresh per the schedule you picked.
Yes — they complement each other. In 2026 Google began automatically enrolling accounts that use both Enhanced Conversions and Customer Match into conversion-based customer lists (enrollment emails went out from June 2026; data processing starts August 18, 2026). Those lists are built solely from what the Google Ads tag captures on your site from that point on: customers using ad blockers or declining your consent banner never enter them, and neither do phone, imported, or historical orders. This plugin builds Customer Match lists from the WooCommerce order database instead — every completed order, including full order history via backfill, split into one file per country, with a mailing-address fallback when an order has no email or phone. Keep both: attach the automatic conversion-based lists and the per-country lists this plugin feeds, and Google deduplicates matched customers on its side.
Yes. Meta Ads Custom Audiences use the same SHA-256 hashing of normalized (trimmed, lowercased) values, so a country CSV can be uploaded to Meta Ads Manager as a customer list — map the columns in Meta's upload screen. Note that Meta does not pull files from URLs; the pull-from-URL workflow is Google-specific, so on Meta use manual upload.
Roughly 10 seconds per 150,000–200,000 orders on typical hardware. The query path is direct SQL against wc_orders + wc_order_addresses (HPOS). For 1M+ orders the CLI is still the most reliable option because no PHP/web timeout applies; the admin Action-Scheduler-backed runner also handles 1M+ but each batch must complete within the host's PHP limit and if it does not then it won't finish.
It shouldn't happen, since WooCommerce billing and shipping addresses are country-based, but if it does, the order is skipped. There is no correct file to route them to, and Google's per-country Customer Match campaigns can't use them anyway. The same applies to orders with an invalid country code.
They get written. Google Customer Match accepts a row with any one of: email, phone, or full mailing address (first name + last name + zip). The plugin includes a row as long as one of those identifiers is present alongside a valid country. Deduplication is still single-column: it uses email when available, otherwise phone, otherwise the mailing address. Google handles cross-identifier deduplication on its side after matching to a Google account — so a customer who orders once with email + phone and again with only their phone will appear as two rows in the CSV but as one user in your Customer Match audience.
Yes — but only if they actually ordered from multiple countries!
This is by design, as every (email, country) pair is recorded the first time it's seen and never re-written. To regenerate everything from scratch (for example after toggling debug mode), click Tools → Rebuild now or run wp cmls rebuild. The rebuild starts from empty files and swaps them in when it's done; the URLs stay the same. The feed URL contains "?rest_route=" Your site uses plain permalinks (Settings → Permalinks → Plain), so WordPress builds REST URLs with a query string. Google Ads rejects feed URLs with a query string, and the plugin shows a warning at the top of its page and on the Health tab. Pick any other permalink structure; the URLs then end in .csv. Update the URLs in Google Ads afterwards. I get a 401 "REST API has been restricted to authenticated users" when I open the URL Some security plugins ("Admin and Site Enhancements" / ASE has this option, Disable REST API, etc.) block all unauthenticated REST traffic. This plugin does not attempt to override those policies — that would be hostile to the security setting you deliberately chose. If you hit this error, whitelist the plugin's feed prefix in your security plugin's exclusion list: /wp-json/cmls/v1/feed/. Google Ads (and any other configured consumer) needs unauthenticated GET access to that prefix — the tokenized URL is the sole authentication mechanism.

Sign In / Register

You need to sign in or register to use this feature.