Privacy & Consent

The iOS SDK provides controls for App Tracking Transparency (ATT) consent, GeoIP enrichment, and basic integration mode. There is no GDPR consent flag on iOS — consent is managed through the system ATT prompt.

App Tracking Transparency

iOS 14.5 and later require apps to request user permission before accessing the IDFA. The SDK exposes an authorizationStatus property and a setATTStatus(authorized:) method to reflect the ATT decision.

Authorization status

authorizationStatus represents the current tracking authorization state and influences campaign targeting and content delivery:

public var authorizationStatus: AuthorizationStatus

The AuthorizationStatus enum has three cases:

Set this property before calling setup() when the ATT status is already known:

magify.authorizationStatus = .authorized

Responding to status changes

The SDK fires a callback when authorizationStatus changes:

magify.onAuthorizationStatusChanged = {
    // React to the updated tracking authorization state.
}

Reporting the ATT result

After presenting the system ATT prompt, forward the user's decision to the SDK using setATTStatus(authorized:):

ATTrackingManager.requestTrackingAuthorization { status in
    DispatchQueue.main.async {
        magify.setATTStatus(authorized: status == .authorized)
    }
}

Calling this method when the status has not changed is a no-op; the SDK only resets tokens and reloads configuration when the value actually changes.

GeoIP

GeoIP allows backend services to determine the user's geographic region from their IP address. This is enabled by default.

public var isGeoIPEnabled: Bool

Disable GeoIP when your privacy policy or regional regulations require it:

magify.isGeoIPEnabled = false

When changed, the SDK discards the current authorization token and fetches a new configuration.

Basic integration mode

Basic integration mode limits the data sent to Magify servers. Use it when deep behavioral targeting is not required or when you need to reduce the integration footprint:

public var isBasicIntegration: Bool

isBasicIntegration defaults to false — full data collection is active unless you explicitly enable basic mode.

Enable basic integration mode:

magify.isBasicIntegration = true

When changed, the SDK resets its token and reloads the remote configuration.

Related articles

Integration with other SDK

BundleCreative

Validation

Integration with other SDK

LimitedTimeOfferBase

SDK Initialization