Skip to main content

Airbridge Device ID

Device identifier by Airbridge. (example: 82A16EC9-A273-48B6-9BB2-017EAB641109)

iOS SDK

iOS SDK (Deprecated)

Airbridge Generated ID

Random UUID assigned by Airbridge upon app install on each device. (example: 82A16EC9-A273-48B6-9BB2-017EAB641109)

iOS SDK

iOS SDK (Deprecated)

ATT (App Tracking Transparency)

On iOS 14.5 and later, apps must obtain consent through ATT (App Tracking Transparency) to track users across other companies’ apps and websites or access the IDFA. Users can choose whether to allow tracking in the system prompt. You can use the Airbridge iOS SDK to request ATT authorization and check the current authorization status. Your app must explicitly call the authorization request API.

Before you begin

  • Initialize the Airbridge SDK before calling these APIs.
  • These APIs are available in the standard iOS SDK and are not provided in the Restricted SDK.
  • Add NSUserTrackingUsageDescription to your app’s Info.plist. This value explains the tracking purpose in the ATT prompt. Replace the example text below with a description of your app’s actual data usage.

Request ATT authorization

Call requestTrackingAuthorization to forward an authorization request to Apple’s ATT API. The SDK does not wait for the app to become active, so call this API while the app is active. To request authorization at app launch, call it after SDK initialization when the app becomes active, such as in applicationDidBecomeActive or sceneDidBecomeActive. Interpret the return value separately from the completion handler:
  • A return value of true means the SDK accepted the request for processing. It does not indicate whether the prompt appeared or whether the user authorized tracking.
  • If the SDK is not initialized or is disabled, the API returns false without calling the completion handler.
  • The completion handler runs on the main queue and receives the ATT status as AirbridgeTrackingAuthorization.

Check the ATT authorization status

trackingAuthorizationStatus() synchronously returns the current ATT status. Checking the status does not display the ATT prompt or request authorization. If the SDK is not initialized or is disabled, the API returns notDetermined. In this case, first check that the SDK is initialized and enabled.

Understand ATT statuses

Both the request result and the status query use AirbridgeTrackingAuthorization. In environments that do not support ATT, such as iOS versions earlier than 14, requests and status queries return authorized when the standard SDK is initialized and enabled. This is the SDK’s return value for unsupported environments and must not be interpreted as user consent through an ATT prompt. You do not need to add an iOS version check in your app to call these APIs.

If the prompt does not appear

Whether the ATT prompt appears depends on Apple’s behavior and the user’s settings. The prompt may not appear even when the request returns true. Check the following:
  • Make sure the app is active. The prompt may not appear if you request authorization before the app becomes active or while it is in the background.
  • Check whether another permission request, such as notifications, is waiting for a response. Request ATT authorization after the previous request completes instead of making permission requests simultaneously. iOS does not retain simultaneous permission requests to display later.
  • Check the completion handler or status query result. If the status is notDetermined, check the display conditions and request authorization again from your app as needed. The SDK does not automatically retry or merge duplicate requests.
  • Check whether the user denied tracking in Settings or the system restricts tracking requests. Calling the API again after the status has been determined does not guarantee that the prompt will reappear or that authorization will change.
  • Check the NSUserTrackingUsageDescription value in Info.plist.
Users can change tracking permissions in Settings. Check the current status when needed, such as when the app becomes active again. The SDK’s status query does not subscribe to settings changes in real time. For prompt and permission request conditions, refer to Apple’s ATT request documentation.

Use with the existing ATT timeout setting

Consider the ATT authorization request API together with the SDK’s existing ATT decision timeout setting. The SDK’s existing ATT status checks and processing wait behavior remain unchanged. By default, processing for the install event, deferred deep links, and attribution waits up to 30 seconds for the ATT status to be determined. If you configured a different timeout, that value applies. requestTrackingAuthorization forwards the authorization request without restarting or extending the existing timeout. trackingAuthorizationStatus() does not change ATT decision processing or the stored processing state. If the timeout expires while ATT authorization is still undetermined, the SDK’s pending processing may proceed. Review the existing autoDetermineTrackingAuthorizationTimeout setting based on when your app requests authorization and how much time users need to respond. This setting controls the SDK’s processing wait time and does not change whether the ATT prompt appears or the user’s authorization status.

IDFA

Advertising ID issued by Apple. (example: 82A16EC9-A273-48B6-9BB2-017EAB641109)

IDFV

Unique ID that publishers can use to identify which apps a specific user has installed. (example: 82A16EC9-A273-48B6-9BB2-017EAB641109)

Limit Ad Tracking

Device’s Limit AD Tracking information. (example: true)

Device Model

Device model name. (example: iPhone)

Device Identifier

Device identifier name. (example: iPhone9,3)

Device Manufacturer

Device manufacturer information. (example: Apple)

OS Name

Device OS name. (example: iOS)

OS Version

Device OS version. (example: 13.3)

Locale

Device locale settings. (example: ko-KR)

Timezone

Device timezone settings. (example: US/Pacific)

Orientation

Device display orientation. Values will be either “portrait” or “landscape”. (example: portrait)

Screen Density

Device’s screen density. (example: 3.000)

Screen Width

Device’s actual width. (example: 375.0)

Screen Height

Device’s actual height. (example: 667.0)

Network Carrier

Device network carrier information.

Cellular Status

Device mobile data status. (example: true)

WiFi Status

Device wifi status. (example: true)

Package Name

Application package name. (example: co.ab180.ablog)

Version

Application version name. (example: 1.0.0)

Event Timestamp

Timestamp(milliseconds) of when the event was sent. (example: 1581043739682)