How to Connect Superwall to Instally for Revenue Tracking
Connect Superwall to Instally to see which links drive paying users through your paywall. Step-by-step webhook setup and dashboard walkthrough.
Why connect Superwall to Instally?
Superwall manages your paywall. Instally tracks which links drive installs. Connect them and you can see which links drive users who actually pay when they hit your paywall.
This is more specific than general revenue tracking. Superwall gives you granular paywall event data: which paywall was shown, whether the user started a free trial, whether they converted to paid, and how much they spent. When that data flows into Instally, you can see paywall performance broken down by acquisition source.
A quick example of what becomes possible:
| Source | Installs | Paywall shown | Trial started | Converted to paid | Revenue |
|---|---|---|---|---|---|
| Creator A | 840 | 672 | 201 | 134 | $1,339 |
| Creator B | 620 | 496 | 74 | 37 | $369 |
| Blog traffic | 280 | 252 | 100 | 76 | $759 |
| Email campaign | 600 | 480 | 192 | 144 | $1,439 |
This is the kind of insight you get when paywall events are tied back to the link that brought the user in.
What you'll need
| Requirement | Details |
|---|---|
| Instally account | Revenue tracking requires Growth ($40/mo) or Scale ($79/mo) |
| Superwall account | Any plan with webhook support |
| Instally SDK integrated | See our iOS or Android guide |
| RevenueCat or StoreKit 2 | Superwall works with your existing purchase infrastructure |
| 15 minutes | Setup time |
How the integration works
Superwall tracks paywall interactions. When a user views a paywall, starts a trial, or converts to paid, Superwall can send a webhook event. Instally receives the event, matches the user to an install record using a shared user ID, and credits the paywall event to the link that drove the install.
The flow:
- User clicks a tracking link → Instally records the click
- User installs the app → Instally SDK matches the install and returns an Instally user ID
- You set the Instally user ID as a Superwall user attribute
- User encounters your paywall → Superwall tracks the interaction
- User converts → Superwall sends a webhook event to Instally
- Instally matches the event to the install and link
Step 1: Set up the Instally SDK
If the SDK is already in your app, skip to Step 2. Otherwise, here's the basic setup.
Swift example:
import Instally
import SuperwallKit
@main
struct YourApp: App {
init() {
Instally.configure(appId: "YOUR_APP_ID", apiKey: "ik_live_your_key")
Superwall.configure(apiKey: "your_superwall_key")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Kotlin example:
import io.instally.sdk.Instally
import com.superwall.sdk.Superwall
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
Instally.configure(this, "ik_live_your_key")
Superwall.configure(this, "your_superwall_key")
}
}
Step 2: Sync the Instally user ID with Superwall
After calling trackInstall, pass the same Superwall app user ID to Instally with setUserId. This is how Instally matches paywall events back to the install.
Swift example:
struct ContentView: View {
var body: some View {
Text("Hello")
.task {
do {
Instally.trackInstall()
Instally.setUserId(Superwall.shared.userId)
} catch {
print("Tracking error: \(error)")
}
}
}
}
Kotlin example:
lifecycleScope.launch {
try {
Instally.trackInstall(this@MainActivity)
Instally.setUserId(this@MainActivity, Superwall.instance.userId)
} catch (e: Exception) {
Log.e("App", "Tracking error: $e")
}
}
The same Superwall user ID is included in Superwall's webhook payloads, allowing Instally to match the event to the correct install.
Step 3: Configure the Superwall webhook
- Log in to the Superwall dashboard
- Navigate to Settings > Webhooks
- Click Add Webhook
- Set the URL to:
https://api.instally.io/v1/webhooks/superwall/<app_id>
- Send all purchase lifecycle events. Instally records any event whose
priceis non-zero and ignores zero-value funnel events.
| Superwall event | What it tells Instally |
|---|---|
initial_purchase | First paid transaction |
renewal | Subscription renewal |
non_renewing_purchase | One-time purchase |
cancellation with a negative price | Refund |
- Click Save
Step 4: Add the Superwall signing secret to Instally
- In the Superwall dashboard, copy the webhook signing secret
- Go to the Instally dashboard
- Navigate to Settings > Integrations > Superwall
- Paste the signing secret
- Click Save
Step 5: Test the integration
- Create a test tracking link in Instally
- Click it on a test device
- Install the app (or use a development build)
- Open the app —
trackInstallshould fire and set the Superwall user attribute - Trigger a paywall and complete a sandbox purchase
- Check the Instally dashboard — you should see the paywall event and revenue on the test link
- Check Superwall's webhook delivery logs for failed requests
- Verify the signing secret matches between Superwall and Instally
- Confirm the
instally_user_iduser attribute is being set before the paywall is triggered - Make sure
trackInstallruns on app launch, not lazily
What you see in the dashboard
Instally assigns Superwall purchases, renewals, one-time purchases, and refunds to the link that drove the install. Each purchase record keeps the product, store, environment, USD price, and original local amount. Zero-value funnel events are accepted but do not create revenue rows; use Superwall's dashboard for paywall views and experiment analysis.
Superwall + RevenueCat + Instally
Many apps use Superwall for paywall management and RevenueCat for subscription management. In this setup, you have two options for revenue tracking in Instally:
Option A: Connect Superwall only. Superwall's purchase events include a USDprice; negative prices represent refunds. This is sufficient for revenue tracking.
Option B: Connect RevenueCat only. RevenueCat tracks all purchase events including renewals, which Superwall's paywall events may not cover. See our RevenueCat guide.
Connect one revenue source of truth to an Instally app. If RevenueCat manages the subscription lifecycle, use RevenueCat. If Superwall is your revenue webhook source, use Superwall. This avoids sending the same store transaction twice.
Why paywall data matters for acquisition decisions
Most developers evaluate acquisition channels by installs alone. "Creator A got us 840 installs, Creator B got us 620, so Creator A is better."
But when you add paywall data, the picture changes. A channel that drives users who bounce off your paywall is less valuable than a channel that drives users who convert. The install is the starting point, not the end goal.
With Superwall + Instally, you can calculate the true cost per paying user for each channel:
| Source | Cost | Installs | Paying users | Cost per install | Cost per paying user |
|---|---|---|---|---|---|
| Creator A | $2,000 | 840 | 134 | $2.38 | $14.93 |
| Creator B | $1,500 | 620 | 37 | $2.42 | $40.54 |
| Blog content | $500 | 280 | 76 | $1.79 | $6.58 |
This is the kind of analysis you can do when paid purchases are connected to acquisition data. For more on calculating ROI across channels, see our guide to measuring ROI on creator marketing.
FAQ
Does this work with Superwall's free plan?
Webhook support depends on your Superwall plan. Check Superwall's pricing page to confirm webhook access is available on your plan.
Can I see which specific paywall design each user saw?
Use Superwall's dashboard for paywall design and experiment reporting. Instally's webhook integration is focused on assigning non-zero purchase and refund amounts to acquisition links.
What if I use StoreKit 2 directly instead of RevenueCat?
That's fine. Superwall works with StoreKit 2 natively. Its signed webhook events still reach Instally, including purchase events with non-zero prices.
Can I connect both Superwall and RevenueCat to the same app?
Choose one revenue webhook source per Instally app. Sending the same store transaction from two providers is unnecessary and makes reconciliation harder.
Can I disconnect the integration later?
Yes. Remove the webhook in Superwall's dashboard and delete the signing secret in Instally's settings. Historical data is retained.
---
Your paywall is the gate between free users and revenue. Superwall optimizes the gate. Instally ties the money back to the link that started the install: click, install, purchase, renewal, and refund.
Stop guessing. Start shipping.
Track clicks, installs, and revenue from every link. Set up in five minutes.
Get started free