Appstack

The Appstack integration forwards Superwall webhook events directly to Appstack for analytics and attribution. As a pass-through integration, it sends the raw event payload without transformation, giving Appstack full access to your subscription lifecycle data.

In the Analytics section within Integrations, you can connect your Appstack account to Superwall:

Purpose

Appstack connects acquisition data, such as the network, campaign, ad set, and creative, with the subscription events sent by Superwall. This lets you measure subscription revenue and return on ad spend by campaign, and send conversion events to ad networks. You can also use Appstack attribution data in Superwall campaign filters to target paywalls.

The appstackId links events to the user in Appstack. Connecting the dashboard integration enables event delivery; the SDK configuration below supplies this identifier.

Required Fields

Fill out the following fields and click the Enable Appstack button at the bottom right to save your changes:

  • Access Token: Your Appstack API access token, used to authenticate requests.
  • App ID: Your Appstack application ID, used to route events to the correct app.

SDK Configuration

After both the Appstack and Superwall SDKs are initialized, pass the Appstack ID to Superwall as an integration attribute on every app start. Without this step, events can arrive in Appstack without an appstackId and cannot be attributed.

To use acquisition data in campaign filters, also set Appstack attribution parameters as Superwall user attributes before your first placement registration.

Follow the Appstack integration guide for platform-specific code and minimum SDK versions.

Features

  • Pass-Through Delivery: Raw Superwall webhook events are forwarded directly to Appstack without transformation
  • Simple Configuration: Only an access token and app ID are required
  • Credential Validation: Connection is verified before the integration goes live
  • Sandbox & Production Events: Select Production & Sandbox to forward sandbox events as well as production events

Configuration

Required Settings

FieldDescriptionExample
access_tokenYour Appstack API access token"ask_live_abc123..."
app_idYour Appstack application ID"app_456def..."

Sandbox Setting

Set include_sandbox to Production & Sandbox to test delivery with sandbox transactions. The default, Production, forwards only production events.

Example Configuration

{
  "access_token": "your_appstack_access_token",
  "app_id": "your_appstack_app_id",
  "include_sandbox": "Production & Sandbox"
}

How It Works

Appstack is a pass-through integration. Unlike analytics integrations that map and transform events into platform-specific formats, the Appstack integration forwards the raw Superwall webhook event payload directly to Appstack.

When a subscription event occurs:

  1. Superwall generates the webhook event.
  2. The integration sends the complete, unmodified event payload to Appstack.
  3. Appstack receives and processes the event on its end.

API Endpoint

Events are sent to:

POST https://api.event.appstack.tech/superwall/webhook/{app_id}

Request Headers

Content-Type: application/json
Authorization: <access_token>

The access_token is sent as the Authorization header value, and the app_id is included in the URL path.

Sandbox Handling

Sandbox events are forwarded when include_sandbox is set to Production & Sandbox. They use the same endpoint and unmodified payload as production events. With Production selected, or if the setting is omitted, sandbox events are filtered out.

Testing the Integration

1. Validate Credentials

When you save the integration, Superwall sends a test event to the Appstack validation endpoint to confirm your credentials are correct:

POST https://api.event.appstack.tech/superwall/validate

If validation fails, double-check your access token and app ID.

2. Trigger a Test Event

Select Production & Sandbox and save the integration before generating a sandbox transaction. You can then verify end-to-end delivery without a live purchase:

  • iOS: Use TestFlight with a sandbox Apple ID. StoreKit Configuration files do not generate App Store Server Notifications, so webhooks and downstream integrations will not fire.
  • Google Play: Use license test accounts to perform sandbox purchases.
  • Stripe: Use Stripe Test Mode to create sandbox transactions.

3. Verify in Appstack

Check your Appstack dashboard to confirm events arrive and carry an appstackId. Appstack notes that activation can take 30–60 minutes to appear in its dashboard.

Troubleshooting

Events Not Appearing in Appstack

Possible causes:

  • Invalid access token or app ID
  • Sandbox events are being generated while include_sandbox is set to Production
  • Network or endpoint issues on the Appstack side

Solutions:

  1. Re-save the integration to trigger credential validation
  2. For sandbox testing, confirm include_sandbox is set to Production & Sandbox
  3. Verify your access token and app ID match what is shown in your Appstack dashboard
  4. Contact Appstack support if credentials are correct but events are still not arriving

Events Arriving Without an appstackId

Confirm that your SDK version and initialization order match the Appstack integration guide. Pass the identifier on every app start, after both SDKs are initialized and the Appstack ID is available.

Appstack reports an error if fewer than 50% of events received over the last 24 hours contain an appstackId. Below that threshold, events cannot be used in its ad network integration pages. After releasing a fix, allow up to 24 hours for coverage to recover.

Credential Validation Failing

Possible causes:

  • Incorrect access token
  • Incorrect app ID
  • Appstack service is temporarily unavailable

Solutions:

  1. Copy the access token and app ID directly from your Appstack dashboard to avoid typos
  2. Ensure your Appstack account is active and in good standing
  3. Try again after a few minutes if the Appstack service may be experiencing downtime

How is this guide?

On this page