Platform Retargeting Suppression Onboarding Integrations Pricing Blog Sign in Request Access
Growth

How Growth Teams Build Retargeting Audiences Without Waiting on Data Engineers

Growth team reviewing retargeting audience criteria on laptop screen

Build this audience in Segmentloom →

Request access

The event data is already there. Somewhere in your warehouse — or streaming through your event pipeline right now — there are rows representing users who viewed the pricing page twice in a week, never triggered onboarding_complete, clicked the upgrade modal and then closed it. The behavioral signal that would make a retargeting campaign genuinely precise is sitting, unused, because turning it into an ad audience requires a data engineering ticket that takes two to three weeks to prioritize, scope, implement, and QA.

This isn't a data problem. It's a workflow problem. And it has a structural fix that doesn't involve learning SQL or convincing your data team that your Q4 retargeting campaign is more urgent than their roadmap.

Why the Retargeting Audience You're Running Is Probably Wrong

Most growth teams running retargeting today are working with one of two audience types: pixel-based website visitors (everyone who hit any page in the last 30 days) or manual CSV exports from the CRM that someone uploaded three months ago. Neither of these captures behavioral intent at the product level.

Pixel audiences conflate window shoppers with high-intent visitors. Someone who bounced off the homepage after two seconds is in the same audience as someone who spent 12 minutes on the pricing page, read the feature comparison, and visited the documentation. You're spending the same CPM on both. The CRM export is worse: by the time it's uploaded, it's already stale. Users who converted last week are still in it. Users who churned are still in it. The match rate degrades every day it sits.

The audience you actually want — users whose in-product behavior signals high purchase intent — lives in your event stream, not in either of those sources.

What Behavioral Retargeting Actually Requires

Consider a SaaS product that tracks the following events: page_viewed (with a property for page slug), trial_started, feature_activated, pricing_page_viewed, upgrade_modal_opened, and subscription_created. These events exist in the warehouse for most modern product teams. They're instrumented by engineering to support product analytics. They're not instrumented for marketing — but they contain exactly the signal marketing needs.

A high-intent retargeting audience for an upgrade campaign might look like this:

  • pricing_page_viewed count ≥ 2 in the last 14 days
  • subscription_created = false (no prior conversion)
  • trial_started = true (active or lapsed trial user)

That's a three-condition behavioral segment. It would take a data engineer approximately two to four hours of clean work to write as a warehouse query, schedule it to refresh daily, pipe the results to an API that formats them for Google Ads customer match or Meta custom audiences, handle the PII hashing requirements (SHA-256 for email, phone normalization), and set up error alerting. Two to four hours of clean work — meaning no interruptions, no context switching, and no back-and-forth about what exactly "high intent" means. In practice, that ticket takes two to three weeks.

The Reverse ETL Pattern (and Its Limits)

Reverse ETL tools solved part of this problem by establishing a category: warehouse-out pipelines that push data to operational destinations. The model is correct. The implementation often isn't accessible to growth teams because it still requires someone to write SQL to define the audience. You're still writing SELECT DISTINCT user_id FROM events WHERE event_name = 'pricing_page_viewed' AND... and knowing how to join that against a profiles table, handle duplicates, and understand what "distinct users" means in your specific schema.

We're not saying SQL is bad. We're saying that requiring SQL to define an audience is a bottleneck that doesn't need to exist. The condition logic is simple — count, equals, boolean — and it should be expressible in plain language with a rule builder, not in a query editor that requires warehouse credentials and schema knowledge.

The audience definition above (pricing_page_viewed >= 2, trial_started = true, subscription_created = false) doesn't require a JOIN. It doesn't require knowing whether your events table is partitioned by date. It requires knowing what your events are called, which growth teams typically do.

Building the Audience in an Afternoon: A Realistic Scenario

Take a growing B2B SaaS team with around 40 people — one growth manager, one marketing operations person who handles campaign execution, and a data team of two. The product tracks events via a JavaScript SDK into a warehouse, with a 15-30 minute lag before data is queryable. The growth manager wants to run a retargeting campaign before the end of the quarter targeting trial users who showed pricing intent but didn't convert.

With a behavioral audience builder connected directly to the event stream, the workflow is: open the audience builder, select pricing_page_viewed with a count condition of two or more, set the lookback window to 21 days, add a subscription_created = false condition, check the matching profile count (let's say 1,340 users in this case), and push to Google Ads via customer match. The platform handles the email hashing, the list upload API call, and the daily refresh. The growth manager did not write SQL. They did not open a data engineering ticket. They did not export a CSV.

Total calendar time from idea to live audience: under two hours, mostly waiting for Google's list processing.

Lookback Windows and Why They Matter More Than Audience Size

One underappreciated aspect of behavioral retargeting is how aggressively you should tune lookback windows. Most growth teams default to 30-day or 90-day windows because those are the defaults in pixel-based tools. For intent-based behavioral audiences, a shorter lookback often performs better — not because you're excluding signals, but because intent decays.

A user who viewed your pricing page seven times in the last three days is in a fundamentally different state than a user who viewed it twice three months ago. Treating them identically in a retargeting audience wastes budget on the latter while potentially under-serving the former. A 14-day lookback for high-frequency behavioral signals (pricing views, upgrade modal opens) and a longer 60-day lookback for lower-frequency signals (feature activation, onboarding events) is a reasonable starting point for most SaaS products.

The right answer depends on your product's natural decision cycle. If you're selling a tool people evaluate for a week and either buy or abandon, 7-14 day windows for your highest-intent events will likely outperform 30-day. If you're selling something with a 90-day evaluation cycle, compress those windows and you'll cut your audience size significantly without improving match quality.

What This Doesn't Replace

Behavioral retargeting from product events works well for users who are already in your product. It doesn't replace top-of-funnel campaigns for users who have never engaged with your product at all — those still rely on lookalike audiences, interest targeting, and third-party intent data. And it doesn't replace CRM-based suppression lists, which have their own logic that goes beyond behavioral events (customer status, account tier, opt-out flags).

The value is in the middle of the funnel: users who are already evaluating, already engaged, already leaving behavioral signals that your event tracking records faithfully. That's where the engineering queue bottleneck causes the most damage, and where removing it has the clearest impact on campaign precision.

The events are already there. The question is whether your workflow makes them usable without a two-week queue.

Build audiences from your own events →

Request access to Segmentloom