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.