Mobile SDKs
Mobile SDK overview
The SDK bootstraps remote config, creates an install ID, resolves attribution, sends install and app events, and returns campaign params for partner SDKs.
Core flow
The Adback SDK is attribution-focused. It does not replace product analytics, billing systems, or paywall SDKs.
- configure fetches remote SDK config from api.adback.app.
- The SDK creates or loads a first-party install_id.
- Install resolve sends allowed app/device match inputs and optional platform attribution signals.
- The backend returns adback_id, attribution params, and safe match debug fields.
- The SDK sends an automatic INSTALL event.
- Manual app events and server-side revenue webhooks join back to the same attribution identity.
Public iOS API
The current public iOS SDK is distributed through Swift Package Manager from github.com/adback-app/ios-sdk.
import AdbackSDK
Adback.configure(apiKey: "adbk_pk_live_...")
Adback.enableAppleAdsAttribution()
let adbackId = Adback.getAdbackId()
let attributionParams = await Adback.getAttributionParams()
Adback.track(.signUp)
Adback.track(.startTrial, properties: ["plan": .string("annual")])
await Adback.flush()Events
Use SDK events for install, signup, checkout intent, trial start, and custom funnel/debug signals. Use server revenue integrations for purchases, subscriptions, renewals, refunds, and trial conversions.
- Standard events are enum-backed and serialize with canonical names such as INSTALL, SIGN_UP, START_TRIAL, VIEW_ITEM, SEARCH, SHARE, and CUSTOM.
- Each event carries a stable event_id so retries are idempotent.
- Customer-supplied user_match_data is optional and only used for provider event match quality.
- Do not put email, phone, or names into generic event properties. Use the dedicated user_match_data object when needed.
Attribution handoff
After configure, getAttributionParams returns flat string attributes that can be sent to RevenueCat, Superwall, or a custom paywall backend.
- Base keys include adback_id, adback_match_confidence, and adback_source.
- Paid-click matches may include network, campaign, ad group, ad, creative, keyword, click, landing, and deeplink keys.
- Missing values are omitted rather than returned as empty strings.
if let attributes = await Adback.getAttributionParams() {
Purchases.shared.setAttributes(attributes)
let superwallAttributes: [String: Any?] = attributes.mapValues { $0 }
Superwall.shared.setUserAttributes(superwallAttributes)
}SDK API call map
The SDK currently uses api.adback.app for bootstrap, install resolve, and event delivery.
| SDK action | Method | URL |
|---|---|---|
| configure | GET | https://api.adback.app/v1/sdk/config |
| install resolve | POST | https://api.adback.app/v1/sdk/installs/resolve |
| automatic install event | POST | https://api.adback.app/v1/sdk/events |
| manual app event | POST | https://api.adback.app/v1/sdk/events |
| link click | browser | https://adback.link/... |