Living audience: segment centralized leads and send them to a Meta Custom Audience
Meta’s Custom Audience accepts a list of people. The hard part is the right list: “whoever watched the video, opened checkout and did not buy within 7 days” crosses pixel and Hotmart, and changes every hour. A living audience is the rule written once and the list kept on its own — with entries and exits.

Uploading a list of e-mails to Meta is easy. Keeping the right list is the work: whoever abandoned the cart yesterday has to enter today, whoever bought today has to LEAVE today — otherwise the cart remarketing reaches people who already paid. In a case we audited, an “abandoned checkout” audience carried 1,797 people who had already bought, and the ad kept running for them.
A living audience solves that by inverting the order: instead of building the list, you write the RULE. The system recomputes who belongs, hourly, over the timeline of every lead, and sends Meta only the difference: who entered and who left.
Rules that only exist with the data together
- Opened pre-checkout at least 30 minutes ago and has not bought since (pixel + Hotmart).
- Bought product A and showed interest in product B without buying (Hotmart + pixel).
- Every student of a product, by product name, with no time window (Hotmart).
- Is delinquent according to the customer’s finance system (database source).
- Replied in the CRM and got no proposal within 3 days (CRM webhook).
None of them fits Meta’s audience builder, because Meta only sees what its pixel saw. And none fits an export, because it ages within an hour. They require centralized leads and a rule that knows ORDER — “after”, “since then” — not just “did X and did Y”.
An audience is a set that re-derives itself. It has no memory: if the rule changes, the whole list changes. That is what makes it reversible — and why it serves as an ad audience and not to fire e-mails.
What happens every hour
- 01The rule runs over the timeline, in a single pass, for every lead in the project.
- 02The result is compared with the previous list: who entered, who left.
- 03Whoever entered goes to the Custom Audience with normalized and hashed e-mail, phone and name; whoever left is removed.
- 04Meta’s match count is read back: how many of the people sent it recognized.
Step 3 has a size rule: Meta only delivers well to an audience with at least a few hundred matched people. An audience of 18 members — like one we created and deleted — makes sense as a sales list, not as an ad audience.
Cost: one pass, not one per audience
We measured the cost of recomputing 19 audiences of the same project: one pass per audience read 39 GB of timeline and took 209 seconds; a single pass evaluating all the rules at once read 682 MB and took 6 seconds. With dozens of audiences per customer, that is the difference between scaling and taking the database down — and it is the kind of decision that appears in how much a question to the data costs.
In CrazyLeads an audience is defined by a rule over measured events from every source (with order and grace period), recomputed hourly, wired to a Meta Custom Audience by list — or to e-mail, SMS and webhook by entry and exit events — and creatable from the screen or through the MCP connector with a simulation before publishing.