Here is the retargeting setup most accounts actually run. Every campaign, from every channel, drives traffic to the same page. One audience is built from "everyone who visited in the last 30 days." One ad chases all of them. And then retargeting quietly underperforms, and the conclusion is "it just doesn't work for us."
It works. The setup is the problem, and it traces back to a mechanic most people never think about.
Same pool, opposite intent
Inside that one audience sit two completely different people. One clicked through, read your pricing page twice, and left to check with their team. The other bounced off the homepage in nine seconds and is never coming back. They are worth wildly different amounts, and they are getting the identical retargeting ad. The person who was ready to buy gets a soft brand nudge; the tire-kicker gets a hard closing offer. The ad fits neither, and the pool as a whole looks like proof that retargeting is weak.
The mechanic: the audience is keyed to the page
A website custom audience is built from three things: your pixel, the events it records, and the URL the visitor landed on. That is the whole list. The platform never receives "this person arrived from a high-intent search campaign." The campaign, and the intent behind it, are invisible to the audience. When you ask Meta for "people who visited specific web pages," you are handing it URLs, not campaign names or intent scores. Google Ads website segments work the same way, built from on-site behavior. The exception is GA4: audiences built there can use campaign and source as conditions and be shared to Google Ads, so on Google you can split by referring campaign without a separate URL. The URL-first approach below works on both platforms.
So the unit of segmentation is the URL. Two campaigns pointing at the same page produce one indistinguishable pool. The split you actually want, by intent, does not happen at the campaign level. It happens at the page level, or it does not happen at all.
The fix isn't a setting. It's architecture.
Because the URL is the unit, better retargeting is a structural decision you make before the spend starts, not a toggle you find later.
- Give each intent its own URL. A dedicated landing page per campaign is cleanest,
/demo,/pricing,/guide. If dedicated pages are too heavy, a consistentutm_campaignworks too, because an audience rule can match "URL contains." It is still URL-level segmentation. - Build one audience per page. A separate website custom audience for each page or URL pattern, so each pool means something.
- Match the ad to the intent. Pricing-page visitors get the closing offer. Cold browsers get the nurture. Suppress people who already converted with an audience exclusion so you stop paying to retarget existing customers.
One timing trap to avoid: these audiences do not backfill. They only start collecting from the day you create them, so if you launch traffic first and design audiences later, you have thrown away the first weeks of intent data. Set the pages and the rules up front. And when you seed a lookalike, seed it from the top rung, your converters, not from "all visitors," because a lookalike only copies the seed you feed it.
The takeaways
- A retargeting audience is built from the page a visitor hit, not the campaign or intent that brought them.
- One landing page for every campaign produces one blended pool of mixed intent, and one ad that fits no one.
- Segment at the URL level: a dedicated page per intent, or a "URL contains" rule on UTM parameters. Build one audience per page.
- Design it before you spend (audiences don't backfill), suppress existing customers, and seed lookalikes from converters, not all visitors.
Common questions
Can I build a separate retargeting audience for each ad campaign?
Not directly. A retargeting audience is built from the page a visitor landed on and the pixel events they fired, not from the campaign that sent them. The referring campaign is invisible to the audience. To split retargeting by campaign, you have to send each campaign to a different URL, either a dedicated landing page or a unique link with UTM parameters your audience rule can match, and then build one audience per URL.
Why does my retargeting underperform even though the audience is warm?
Usually because it is one pool of mixed intent. If every campaign lands on the same page, a high-intent pricing-page visitor and a cold homepage bouncer end up in the same audience, and both get the same ad. It fits neither. The fix is to segment at the URL level so you can serve a closing message to hot visitors and a nurture to cold ones.
How do you segment a retargeting audience by intent?
Design the pages first. Give each intent its own URL (a dedicated landing page, or a unique link with UTM parameters), build a separate website custom audience per page in Events Manager, then match the ad to the rung: closing offers to high-intent pages, nurture to top-of-funnel. Set it up before you spend, because these audiences do not backfill and only start collecting from the day you create them.