Conversion Tracking

Conversion tracking lets the Magify SDK automatically calculate and update SKAdNetwork conversion values based on in-app events and revenue data. This improves attribution accuracy for paid acquisition campaigns on iOS.

Setting up the conversion tracker

Call setupConversionTracker(isEnabled:data:) on your MagifyClient instance, typically at app launch after initialization:

let localURLs = ConversionTrackerLocalURLs(
    revenuePerCountry: Bundle.main.url(forResource: "revenue_per_country", withExtension: "json")!,
    revenueLevels: Bundle.main.url(forResource: "revenue_levels", withExtension: "json")!,
    defaultCurrencyRates: Bundle.main.url(forResource: "default_currency_rates", withExtension: "json")!,
    subscriptionMultipliers: Bundle.main.url(forResource: "subscription_multipliers", withExtension: "json")!
)

let inputData = ConversionTrackerInputData(
    localURLs: localURLs,
    eventCoreNamesSorted: ["league", "rewarded_videos"]
)

magify.setupConversionTracker(isEnabled: true, data: inputData)

Pass data: nil only to toggle isEnabled without changing configuration — but only if the tracker was already set up with valid data in a previous call. If data is nil and the tracker has never been configured with data, the tracker remains non-functional regardless of isEnabled. Always call setupConversionTracker(isEnabled:data:) once with valid data before relying on conversion tracking.

Parameters

setupConversionTracker(isEnabled:data:)

ConversionTrackerInputData

ConversionTrackerLocalURLs

Enabling and disabling at runtime

Use the isConversionValueCalculationEnabled property to toggle the tracker without changing its configuration:

// Disable temporarily
magify.isConversionValueCalculationEnabled = false

// Re-enable
magify.isConversionValueCalculationEnabled = true

Reading this property returns the current enabled state of the conversion tracker.

Typical setup

// AppDelegate.swift or equivalent launch point
func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    magify.setup()

    let localURLs = ConversionTrackerLocalURLs(
        revenuePerCountry: ...,
        revenueLevels: ...,
        defaultCurrencyRates: ...,
        subscriptionMultipliers: ...
    )

    magify.setupConversionTracker(
        isEnabled: true,
        data: ConversionTrackerInputData(
            localURLs: localURLs,
            eventCoreNamesSorted: ["league", "rewarded_videos"]
        )
    )

    return true
}

The SDK then automatically updates the SKAdNetwork conversion value in response to tracked events and in-app purchases.

Next step

For server-driven remote feature flags, see the App Features section.

Related articles

MagifyManager․Storage

Purchases

Purchases

INetworkStatusProvider

Request config by scopes

ICampaignWithProducts