Integration · Superwall

Superwall converts.
Adback tells you which ad paid.

Superwall keeps owning your paywalls and experiments. Adback adds attribution around them: campaign context flows into your user attributes, subscription outcomes flow back by webhook, and eligible conversions are forwarded to the ad network.

One setUserAttributes call in-app · One webhook in Superwall

How the join works

From paywall to campaign report

The app hands off attribution once. Everything after that is server-to-server.

Attribution flows into Superwall

After the SDK resolves the install, your app passes Adback's attribution parameters into Superwall user attributes. Your paywall logic can now segment by campaign, creative, or source, and the identity for the revenue join is in place.

Adback.getAttributionParams() → Superwall.shared.setUserAttributes(...)

Superwall sends lifecycle events by webhook

Subscription starts, renewals, refunds, and expirations arrive at Adback's webhook endpoint for your app. The webhook secret is verified before any processing happens.

webhook secret verified first · no polling

Adback joins outcomes to the paid click

Events join to the attributed install through adback_id, with transaction-level deduplication, so campaign and creative reports show real subscription revenue rather than paywall impressions.

joined on adback_id / install_id

Mapped conversions reach the network

Events that pass your mapping rules are forwarded server-side to the connected ad network (TikTok Events API today) with stable event IDs so the network never double-counts.

mapped events only · event_id dedupe

Swift — attribution handoff
if let attributes = await Adback.getAttributionParams() {
  let superwallAttributes: [String: Any?] = attributes.mapValues { $0 }
  Superwall.shared.setUserAttributes(superwallAttributes)
}

Setup

Four steps, about fifteen minutes

The webhook URL, the secret, and the trace view to verify all live in the Adback console.

  1. Connect Superwall in the Adback console

    Open your app's integrations screen and add Superwall. The console generates the webhook URL and secret for this app.

  2. Add the webhook in Superwall

    In your Superwall dashboard's settings, create a webhook, paste the Adback webhook URL, and configure the secret from the console.

  3. Set user attributes in your app

    After Adback.configure, pass the attribution parameters into Superwall user attributes so revenue events can join back to the paid click.

  4. Verify with a test subscription

    Run a sandbox flow and confirm the lifecycle events appear in the Adback trace view, joined to the expected install and campaign.

Data boundaries

What Adback does with Superwall data

The integration is scoped to attribution and revenue joining. Your paywall configuration stays entirely in Superwall.

What happens

  • The webhook secret is verified before any event is processed
  • Lifecycle events join to installs via adback_id with transaction-level dedupe
  • Revenue outcomes feed campaign, ad group, and creative reporting
  • Only mapped, eligible events are forwarded to ad networks
  • Every webhook and postback attempt is visible as a trace row

What never happens

  • No SDK-side purchase tracking. Billing truth stays server-side
  • No reads or writes against your Superwall paywall configuration
  • Raw webhook payloads are not echoed into logs or error responses
  • Subscriber PII is not forwarded to networks unhashed
  • No events reach a network without passing your mapping rules

Close the loop between
paywall and ad account.

Connect Superwall and see revenue by campaign. Free to start, no credit card.