Back to the RevenueCat homepage

Chapter 6: Paid user acquisition and web-to-app funnels

Building an effective web-to-app funnel requires more than sending traffic to a landing page. The ad, funnel, checkout, customer identity, attribution, and app handoff all need to function as one connected journey.

We’ve covered the foundation of setting up your campaign, so now it’s time to break down the specifics of paid user acquisition web funnels: connecting a funnel to paid UA, measuring it with or without an MMP, carrying the customer's purchase into the app, validating the setup, and improving performance with real data.

Matching the ad to the funnel

Your funnel should feel like the next natural step after an advert. It shouldn’t feel forced or out of space. So before launching a campaign, you need to create a clear match between the ad and funnel.

Compare the ad and funnel entry screen side by side:

✅ The first headline continues the same outcome or problem
✅ The visual treatment does not introduce a different product or audience
✅ Any price, discount, trial, guarantee, or claim in the ad appears consistently throughout the funnel
✅ The funnel moves the visitor toward the web purchase without introducing competing exits

When should you create a new funnel?

There’s a precarious balance between creating new funnels and repurposing existing ones. It’s tempting to use the same landing page for multiple campaigns, but if two campaigns make materially different promises, you don’t want to send both audiences to the same generic introduction. Equally, maintaining dozens of funnels creates unnecessary QA and reporting overhead.

It’s generally advisable to only use separate funnels when the complete journey or offer differs. If most of the experience is shared, use URL-based personalization or branching to change only the relevant elements. Focus on building campaign-specific experiences where the difference is genuinely meaningful, not by default. A reusable base funnel with controlled parameters is usually much easier to operate.

REPLUG, a mobile growth agency, also recommends taking advantage of funnels for experiments: “We often use web-to-app funnels as a standalone, additional acquisition channel, with its own user flow and its own room to test product information and positioning directly inside the funnel.“

One practical advantage worth calling out here is that changes to the funnel — like new creatives, audiences, or copy — can go live in hours instead of days, without an app update or app store review. So if you do suddenly need to whip up a whole new funnel, it’s quickly achievable.

We explained how URL parameters and funnel settings work in the core setup section — this section picks up where that left off: defining the naming rules applied to those parameters for paid campaigns, so RevenueCat data stays comparable across every campaign you run.

UTMs provide readable labels; custom parameters and platform-generated IDs provide stable identifiers that still work if a campaign or ad set is renamed. The table below defines the values to standardize. For each field, agree on an owner, allowed format, naming convention, and registry location before launch:

Parameter

Purpose

Example

utm_source

Platform or traffic source

facebook

utm_medium

Acquisition motion

paid_social

utm_campaign

Business initiative

sleep_launch_ca

utm_term

Audience or ad set

broad_25_44

utm_content

Creative or placement

video_hook_03

campaign_id

Immutable campaign ID

Platform-generated ID

adset_id

Immutable ad-set ID

Platform-generated ID

ad_id

Immutable ad ID

Platform-generated ID

placement

Delivery placement

instagram_reels

Use lowercase controlled values where you supply the value yourself. Don't put customer names, emails, phone numbers, or sensitive answers in URLs.