Beyond CPI: The MMP Setting Most App Marketers Haven't Turned On for CTV

On Vibe.co, app marketers configure purchase-event optimization for CTV campaigns the same way they do on Meta and Google: connect your MMP, set a purchase event as the optimization target, and let the platform route budget toward users likely to convert, not just download. Most CTV campaigns aren't built this way yet. They're still optimizing for installs, which makes the channel look like it's delivering less revenue than it actually is.

Why CPI-only optimization on CTV understates its revenue impact

The problem with CPI isn't that it's wrong. It's that it's incomplete.

Every install looks identical in a cost-per-install report. A user who opens your app once and churns on day one counts the same as a user who purchases on day three. The number is accurate for what it tracked. It just tracked the wrong thing.

Mobile UA ran into this problem on Meta and solved it. Early Facebook app campaigns optimized for installs because that was the only event the platform could act on. As MMPs matured and event postbacks became standard, teams shifted to purchase-event optimization, then to value-based bidding weighted by predicted post-install behavior. CTV is running the same progression, a few years behind.

There's a practical consequence to staying on CPI longer than you need to. When the optimization target is installs, the algorithm selects audiences and creative formats that maximize install volume, not purchase intent. The campaigns performing best in your CPI dashboard aren't necessarily the ones generating revenue. Switch to a purchase event as the target, and the algorithm reallocates toward high-value audiences. ROAS D7 and D30 often look significantly different after that shift.

This is why CPI numbers give app marketers a systematically low read on what CTV is actually contributing to revenue.

Integrate with your MMP and start measuring ROAS D7 from your first campaign.

How to pass in-app purchase events from your MMP to your CTV campaign

The setup is the same as event tracking on any other channel: connect your MMP, select the events you want to pass back, and configure an attribution window long enough to capture post-install conversions.

Vibe integrates with the leading mobile MMPs. AppsFlyer, Kochava, Gamesight, and Singular are all supported. Once the integration is active, your MMP passes postback signals to Vibe per event: install, first_open, first_purchase, subscription_started, or any custom event you've configured.

The events worth configuring depend on your app category:

  • Gaming and social apps: purchase, first_purchase, level_complete
  • Subscription apps: free_trial_started, subscription_started, purchase

Pass all of them. Then designate one as the primary optimization event in your campaign settings. More event volume compresses the algorithm's learning phase and makes optimization more accurate once it's running.

Attribution window is the configuration detail most teams get wrong. Most in-app purchases happen D3 to D7 post-install. A 24-hour post-view window misses the majority of those conversions. Set view-through attribution to at least 7 days for purchase events. Subscription apps, where conversion typically happens D14 or later, need a 14 to 30-day window.

One concept that matters more on CTV than on other channels: the equal attribution priority window. By default, the last-touch mobile click takes credit for a conversion even when a CTV impression influenced the decision. An equal attribution window gives CTV and mobile the same credit for the same action. Without it, your CTV campaigns contribute to purchases that get credited elsewhere. Full technical details are in the postback integration guide.

What changes when you optimize for purchases instead of installs

Three things shift when you move the optimization target: the bidding signal, the audience, and the creative brief. Getting all three right is what separates a purchase-optimized campaign from an install campaign with better reporting.

On the bidding side, purchase events flowing from your MMP give the platform a richer signal to work with. Instead of optimizing for install probability alone, the algorithm targets users more likely to install and then convert. The logic is the same as value-based bidding on Meta and Google. The channel is different; the mechanic is the same.

Audience composition changes too. Lookalike models built from your purchasing cohort produce a different audience than models built from all installs. The purchasing cohort is smaller and more defined, but the users it surfaces tend to convert at higher rates. If you've been building lookalikes from your full install base, uploading a cohort of purchasers or subscribers is worth testing as a separate strategy.

Creative is the third variable, and it's often the last one teams update. Install-optimized ads show the app. Purchase-optimized ads show the value a user gets from using it. For a gaming app, that means showing progression, stakes, and social moments rather than the download screen. For a subscription app, it's the outcome (better sleep, sharper focus, improved fitness) rather than the feature list. Same CTV placement, different message hierarchy. The creative best practices guide covers this in detail for mobile and gaming specifically.

Bagelcode, the studio behind Club Vegas, saw D7 and D30 ROAS consistently double their benchmarks on Vibe. Once the MMP integration was fully active and purchase events were flowing, overall ROAS tripled. The gains came after switching from install-volume optimization to purchase-event targeting and rebuilding lookalike audiences from the purchasing-user cohort rather than the full install base. "Vibe helped us understand how to better leverage our MMP dashboard and since then our performance has been really good," said Julian Bacquet, Sr. Media Buyer at Bagelcode. Read the Club Vegas case study.

How to measure CTV's contribution to in-app revenue

ROAS D7 and ROAS D30 are the right frameworks. They're the same metrics you use on every other UA channel. Once your MMP is connected and purchase events are flowing, CTV appears as a channel in your MMP dashboard alongside mobile, paid social, and search. The numbers are directly comparable.

Two things are specific to how CTV attribution works:

View-through windows matter. Mobile app installs often convert within hours of a click. CTV is a view-through channel: users see the ad, don't tap anything, and may install two to four days later through a search or organic path. Your MMP needs view-through attribution enabled, and the window needs to cover at least 7 days for purchase events (14 to 30 days for subscription apps) to capture those conversions correctly.

Attributed conversions and incremental conversions aren't the same number, and the gap on CTV can be significant. Some users who saw your CTV ad and later installed would have installed anyway. The only way to identify the true causal lift is a holdout test. Vibe has incrementality testing built into the platform. A holdout exposing 80 to 90% of the audience while keeping 10 to 20% unexposed gives you the causal figure. The Incrementality Playbook covers setup and how to interpret the results.

Vibe earned the G2 Best Estimated ROI award in the Mid-Market category, an evaluation based specifically on customer-reported return on investment rather than feature ratings.

IMVU, the social avatar and gaming platform, used Vibe to drive incremental lift in in-app purchases, verified through an incrementality holdout that separated causal conversions from ones attributed by coincidence. Read the IMVU case study.

See how ROAS D7 from CTV compares to your existing channels. No contracts.

What a purchase-optimized CTV campaign looks like in practice

Once the pieces are in place, the setup is straightforward: MMP connected and passing purchase events to Vibe, campaign running in the Apps and Gaming category with a purchase or subscription event as the primary optimization target, audience built as a lookalike from your purchasing or subscribing user cohort, view-through attribution window at least 7 days, and creative leading with the user outcome rather than the product features.

In the first 7 to 10 days, the algorithm builds signal. Early ROAS numbers during this phase may look lower than your benchmarks. That's expected. Wait until after day 10 to pull your first meaningful ROAS D7 analysis.

At 30 to 45 days, run the incrementality test. A meaningful lift in purchase rate among the exposed group confirms the causal contribution. If the lift is smaller than the attributed number, that's useful information too: it quantifies how much of the attributed conversion was organic, which matters for budget allocation decisions across your full channel mix.

The Promote Your App goal page has more on how app marketers set up campaigns on Vibe end to end. The CTV Attribution Playbook covers the measurement side in depth, including how to frame the results for stakeholders who are new to view-through attribution.

Frequently asked questions

How to optimize for in-app purchases not just installs on streaming TV?

Connect your MMP to your CTV platform, configure a purchase or subscription event as the optimization target, and set a view-through attribution window of at least 7 days. The platform then uses post-install purchase signals to route budget toward audiences more likely to convert, not just install. Bagelcode (Club Vegas) and IMVU both used this approach on Vibe to improve purchase-level performance significantly.

Which MMPs work with CTV platforms for purchase event optimization?

AppsFlyer, Kochava, Gamesight, and Singular all integrate directly with Vibe for mobile app campaigns. Once connected, your MMP passes postback signals per event (install, purchase, subscription_started, and any custom events you've configured) back to the CTV platform. Those signals become the optimization target for the campaign.

What attribution window should I use for in-app purchase events on CTV?

A minimum of 7 days post-view for most app categories. Most in-app purchases happen D3 to D7 after install, so a shorter window misses the majority of your conversions. Subscription apps that convert on D14 or later typically need a 14 to 30-day window to capture those events accurately.

How is CTV ROAS D7 different from mobile channel ROAS D7?

The calculation is the same, but the attribution mechanism differs. Mobile ROAS D7 is typically last-click. CTV ROAS D7 is view-through: the user saw the ad, didn't tap, and later installed through another path. You need view-through attribution enabled in your MMP to surface CTV's contribution. Running an incrementality holdout is the most reliable way to confirm the causal number behind the attributed result.

What in-app events should I pass back to my CTV platform to optimize for purchases?

Pass all purchase-related events your MMP has: first_purchase, purchase, subscription_started, free_trial_started, and level_complete for gaming apps. Configure all of them, then designate one as the primary optimization event. More event volume speeds the learning phase and improves the precision of optimization over time.

Run your first purchase-optimized CTV campaign with MMP integration built in from day one.

Jul 13, 2026

Get started with Vibe in minutes.