πŸ•΅οΈβ€β™‚οΈApple ATT

This documentation is designed to help you implement the App Tracking Transparency (ATT) framework in your Natively app. This is required if your app collects data used for tracking or accesses the device's advertising identifier (IDFA).

Apple’s definition of "tracking" specifically refers to linking data collected from your app with third-party data for advertising or sharing that data with a data broker.

"Is it Tracking?" Checklist

Here is the breakdown of when you actually need to ask for tracking permissions:

  • Ads (AdMob, Meta, etc.): YES. If users deny, you must serve non-personalized ads (or no ads) and stop sending the IDFA.

  • Third-Party Analytics (Meta Pixel, Google Analytics): YES. If these tools track the user's behavior across other websites or apps to build a profile, you must ask.

  • First-Party Analytics: NO. If you are just tracking what the user does inside your app to improve the UI (e.g., "User clicked Button A"), and you aren't sharing that with others for ad-targeting, ATT is technically not required.

  • Authentication/Fraud: NO. You don't need ATT for strictly functional things like keeping a user logged in or preventing bot attacks.

circle-info

If AdMob or Analytics features are enabled in your Natively dashboard, the App Tracking Transparency (ATT) dialog will be triggered automatically on the first app launch to ensure compliance with Apple’s privacy guidelines.

circle-info

Web-Based Analytics: Even if you use a web-based tracking solution, you still need to implement Apple ATT if that web solution collects identifiers for tracking.

Natively Dashboard Setup

  • Navigate to Features > Apple ATT in your app's dashboard.

  • Enable Apple ATT and provide the Permission Description text. The Permission Description is a mandatory string that Apple displays to the user explaining why you are requesting tracking permission.

  • Click Save.

circle-info

Permission Description: Be honest and clear. Apple frequently rejects apps that provide vague descriptions like "We need this to improve the app." Instead, use: "We use your data to provide personalized advertisements that are relevant to your interests."

circle-exclamation

Implementation

Choose your integration method below: Bubble.io Plugin (No-Code) or JavaScript SDK (Code).

Initialization

Check Plugin

Before starting, verify if the Natively plugin is already installed in your Bubble project.

  1. Open your Bubble editor and navigate to the Plugins tab in the left sidebar.

  2. Check Installed Plugins: Look through your list of installed plugins for "Natively iOS & Android app builder".

    • If it IS installed: Check the version number. If an update is available (e.g., you see a button saying "Update"), click it to ensure you have the latest features and bug fixes.

  • If it is NOT installed: Click the + Add plugins button , search for "Natively", and click Install.

Setup logic

Drag the Natively - ATT element onto your page.

circle-exclamation

Element Logic (Events, States, & Actions)

Use the following data points to build your logic.

  • Events:

    • ATT is authorized: Fires whenever the ATT is successfully authorized.

    • ATT is not authorized: Fires whenever the ATT is denied.

  • States:

    • Status (Text): Returns the permission status: authorized | denied | notDetermined | restricted | notSupported .

    • isAuthorized (Yes/No): Returns yes if permission is authorized.

  • Actions:

    • Show ATT: Triggers the native system dialog using the "Permission description" defined in your dashboard.

    • Get ATT's Status: Manually refreshes the Status and isAuthorized states. Useful if you need to ensure the current status before a specific workflow.

Auto-Prompt vs. Manual

The behavior of the ATT popup changes depending on which other features (like Analytics or AdMob) are enabled in your app.

ATT Only

❌ No

βœ… Supported

ATT + Analytics (or AdMob)

βœ… Yes

❌ Not Supported

ATT + Analytics + AdMob

βœ… Yes

❌ Not Supported

Analytics + AdMob (No ATT)

βœ… Yes

❌ Not Supported

Last updated