Qualified Trials

Defer trial forwarding to ad networks until user intent is proven, improving ROAS.

The Problem#

Ad networks optimize toward the events you send them. If you forward every trial start, the network optimizes for users who start trials -- but most of those users cancel before converting to paid. This leads to wasted ad spend and inflated trial metrics that don't reflect real revenue.

The Solution#

Qualified Trials defers trial forwarding by a configurable delay (default: 2 hours). Only trials where the user is still subscribed after the delay period are forwarded to ad networks. This teaches the ad network to find users with genuine purchase intent.

How It Works#

The qualified trial system operates as a state machine:

StepWhat Happens
1. Trial startsRevenueCat sends INITIAL_PURCHASE webhook with trial period. AppRefer holds the event instead of forwarding immediately.
2. Hold periodThe event sits in the qualified_trials queue for the configured delay (default 2 hours).
3a. Still subscribedCron job checks the trial status. If user is still subscribed, the event is forwarded as qualified_trial.
3b. CancelledIf a CANCELLATION webhook arrives during the hold period, the trial is marked as disqualified and never forwarded.

Forwarded Event#

When a trial qualifies, it is forwarded as qualified_trial to the configured ad networks:

Ad NetworkMapped Event
Meta (CAPI)StartTrial
Google Adsqualified_trial
TikTokSubscribe

Setup#

  1. Go to Settings → Qualified Trials in the AppRefer dashboard.
  2. Enable qualified trial forwarding.
  3. Set the delay hours (default: 2 hours). Choose a window that balances signal quality with timeliness.

Impact on ROAS

By filtering out low-intent trial signups, qualified trials teach ad networks to optimize toward users who actually convert. Customers typically see meaningful ROAS improvements after enabling this feature.

Cron Processing

Qualified trials are processed by the /api/cron/qualified-trials endpoint, which runs on a schedule. Trials that pass the delay window are forwarded in batch.