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.