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/webhooks/superwall
- Add the authorization header:
X-Instally-Api-Key
- Header value: Your Instally API key
- Select the events to send:
| Superwall event | What it tells Instally |
|---|---|
paywall_open | User saw a paywall |
free_trial_start | User started a free trial |
transaction_start | User began a purchase |
transaction_complete | Purchase completed successfully |
transaction_fail | Purchase failed |
transaction_abandon | User abandoned the purchase |
transaction_restore | User restored a previous purchase |
subscription_start | Subscription activated |
subscription_status_change | Renewal, cancellation, or expiration |
transaction_complete and subscription_start to track revenue. Add paywall_open and free_trial_start if you want to see the full funnel from paywall view to conversion.
- 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
With Superwall connected, your Instally dashboard shows a paywall funnel for each link:
Per-link paywall funnel:| Metric | Creator A | Creator B | Blog traffic |
|---|---|---|---|
| Installs | 840 | 620 | 280 |
| Paywall views | 672 (80%) | 496 (80%) | 252 (90%) |
| Trial starts | 201 (30%) | 74 (15%) | 100 (40%) |
| Paid conversions | 134 (67%) | 37 (50%) | 76 (76%) |
| Revenue | $1,339 | $369 | $759 |
| Rev/Install | $1.59 | $0.60 | $2.71 |
This tells you something important: Creator B's audience isn't just less likely to install. They're also less likely to convert at the paywall. Only 15% start a trial, and only 50% of trials convert. Creator B's audience might not be the right fit for your app.
Blog traffic, on the other hand, converts at every step. Higher paywall view rate, higher trial rate, higher paid conversion rate. These users researched your app before installing, and they're ready to pay.
Using Superwall A/B tests with acquisition data
Superwall lets you run paywall experiments: different designs, different offers, different trial lengths. When you combine Superwall's A/B tests with Instally's per-link data, you can answer questions like:
- Does a 7-day trial convert better for users from email campaigns vs. users from creator links?
- Does the "comparison" paywall design work better for blog traffic?
- Should you show a different paywall to users from different acquisition sources?
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'stransaction_complete events include the revenue amount. This is sufficient for basic 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.
Option C: Connect both. Use Superwall for paywall funnel metrics (views, trial starts, abandons) and RevenueCat for revenue (purchases, renewals, refunds). Instally deduplicates events from both sources using the transaction ID so you won't double-count.
Option C gives you the most complete picture. Superwall events tell you about the paywall experience. RevenueCat events tell you about the money.
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 paywall events 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?
Yes. Superwall's webhook events include the paywall identifier and experiment variant. Instally stores this data so you can filter by paywall design in the dashboard.
What if I use StoreKit 2 directly instead of RevenueCat?
That's fine. Superwall works with StoreKit 2 natively. The webhook events still fire the same way, and Instally will receive them. You won't get the additional RevenueCat renewal/refund events, but Superwall's transaction_complete and subscription_status_change events cover the core revenue tracking.
How does deduplication work if I connect both Superwall and RevenueCat?
Instally uses the App Store or Play Store transaction ID to deduplicate. If both Superwall and RevenueCat report the same transaction, it's counted once.
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 tells you who's walking up to it and where they came from. Connect them and see the full funnel: click, install, paywall view, trial, paid conversion, all traced back to the link that started it.
Stop guessing. Start shipping.
Track clicks, installs, and revenue from every link. Set up in five minutes.
Get started free