Build the Sync: A Reverse-ETL Audience Activation Plan for Five-Star Business Finance
Objective: Design a complete reverse-ETL activation plan, audience definition, consent filter, sync cadence, and destination, for a realistic MSME lending audience, using the lesson's activation framework.
You're the growth marketer at Five-Star Business Finance, the Chennai-based MSME lender that IPO'd in November 2022. Your CRO wants to stop showing loan top-up ads to customers who already closed their loan last month.
Define the audience query in plain English, choose the collection and destination tools, write the consent filter, and set the sync cadence, then package it as a one-page brief a data engineer could implement without follow-up questions.
Before you start
What you'll need
Free path (everything below is enough to finish)
Free tier tracks up to 1,000 monthly visitors, enough to document a tracking plan
Free and already deployed on most sites; Explorations approximates a warehouse-query result
No new tool access needed to produce and hand off the spec
The process
2 steps
Step 01 of 02
The lesson explains reverse ETL reads a SQL query result from the warehouse and writes it to a destination tool, replacing custom per-API scripts, using the example of syncing users who spent over $1,000 but haven't purchased in 30 days straight to Meta Ads.
Five-Star's CRO wants an audience of MSME customers who repaid their current loan in full in the last 60 days but haven't started a new application, a strong top-up candidate. Before you can write that as a warehouse query, what event data does Segment need to be reliably collecting for this audience to even be definable?
Procedure
- List the exact events needed: loan_disbursed, loan_closed (full repayment), application_started
- For each event, confirm it fires with a shared customer id (loan_account_id), not a session or device id
- Check for gaps: if 'loan_closed' isn't currently tracked as its own event, this audience can't be built yet
- Write the tracking-plan gap as a one-line dev requirement if any event is missing
TRACKING PLAN CHECK, Five-Star Business Finance Event | Tracked today? | Has loan_account_id? loan_disbursed | yes | yes loan_closed | NO, only a generic 'account_status_changed' with no reason code | n/a application_started | yes | yes Gap: loan_closed doesn't exist as its own event. Add a reason code to account_status_changed, or fire a dedicated loan_closed event, before this audience can be built.
Healthy
Every event the audience needs already fires with a shared id.
Unhealthy
The audience depends on an event that doesn't exist yet, disguised as 'we probably have that data somewhere.'
What this means
A reverse-ETL audience is only as good as the events feeding the warehouse; fix the collection gap before writing the sync.
So what do I do about it?
| Symptom | Action | Effort |
|---|---|---|
| Audience defined but 0 rows sync | Ship the missing event before building the sync, not after | dev ticket |
Step 02 of 02
The lesson's Callout warns that reverse-ETL syncs must always enable consent filters, excluding any user who opted out of marketing cookies or data sharing, before the data reaches an ad network.
You have the audience defined and the missing event shipped. Now design the actual sync: what's the query logic in plain English, which destination, what cadence, and what consent filter goes on top?
Procedure
- In GA4 Explorations, build a rough proxy segment (users who completed a loan-closed-equivalent event in the last 60 days, no application event since) to estimate size
- If the estimated audience is too small (under 500) to be worth ad spend, stop here and note it
- Write the final plain-English query logic for the real warehouse implementation
- Add the consent filter: exclude any customer with marketing_consent = false or do_not_contact = true
- Set the sync cadence (daily, since loan closures aren't high-frequency) and destination (Meta Ads Custom Audience)
SYNC BRIEF, Five-Star Business Finance top-up audience Query logic: loan_closed in last 60 days AND no application_started since AND marketing_consent = true Estimated size (GA4 proxy): ~1,200 users/month Destination: Meta Ads Custom Audience Cadence: daily, 2am IST Consent filter: excludes do_not_contact=true and marketing_consent=false (est. 8% of the pool)
Healthy
The brief names a query, a destination, a cadence, and a consent filter with an estimated excluded percentage.
Unhealthy
A sync that sends 100% of the matched rows because 'we'll add consent filtering later.'
What this means
Consent filtering isn't a compliance afterthought, it's a line in the same query. Skip it and you've built a privacy-law violation, not an audience.
So what do I do about it?
| Symptom | Action | Effort |
|---|---|---|
| Legal flags the campaign after launch | Add the consent filter to the query itself, not as a downstream exclusion list | 30 min |
Final deliverable
A one-page reverse-ETL sync brief: query logic, destination, cadence, and consent filter, ready for a data engineer to implement.
See a reference example
SYNC BRIEF, Utkarsh Small Finance Bank FD-maturity cross-sell audience Query logic: fd_matured in last 14 days AND no fd_renewed AND marketing_consent = true Estimated size: ~3,400 customers/month Destination: Google Ads Customer Match Cadence: daily, 6am IST Consent filter: excludes marketing_consent=false (est. 5% of the pool)
Success criteria
You're done when you can:
- Identifies at least one event-collection gap before defining the audience
- Query logic includes a consent filter as part of the query, not a separate step
- Names a specific destination and sync cadence, not just 'sync to ads'