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.

  1. configure fetches remote SDK config from api.adback.app.
  2. The SDK creates or loads a first-party install_id.
  3. Install resolve sends allowed app/device match inputs and optional platform attribution signals.
  4. The backend returns adback_id, attribution params, and safe match debug fields.
  5. The SDK sends an automatic INSTALL event.
  6. 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 actionMethodURL
configureGEThttps://api.adback.app/v1/sdk/config
install resolvePOSThttps://api.adback.app/v1/sdk/installs/resolve
automatic install eventPOSThttps://api.adback.app/v1/sdk/events
manual app eventPOSThttps://api.adback.app/v1/sdk/events
link clickbrowserhttps://adback.link/...