ATT iOS: vad det är, mekanismen för spårningsbegäran och IDFA

Författare: IT Sectr Publicerad: 2026-05-20 Lästid: 10 min

App Tracking Transparency (ATT) är en iOS-mekanism som kräver uttryckligt samtycke från användaren för att få tillgång till reklamidentifikatorn IDFA före spårning i appar och på webbplatser. Infört i iOS 14.5 ålägger ATT alla utvecklare att visa en systemdialogruta med begäran om spårningstillstånd. Enligt Apple Developer Documentation måste varje app som använder IDFA för riktad reklam eller attribuering integrera ATT-ramverket och få åtkomstbehörighet.

Huvudpunkter

  • ATT — App Tracking Transparency, ramverket för spårningsbegäran i iOS 14.5+
  • IDFA — enhetens reklamidentifikator, åtkomst till vilken är begränsad utan samtycke
  • Systemdialogruta — standard popup med apptext som inte kan ändras
  • Spårningstillstånd — obligatorisk begäran för att visa annonser och attribuera installationer
  • Avvisande — användaren kan när som helst återkalla tillståndet i Inställningar

Vad är ATT (App Tracking Transparency)?

App Tracking Transparency är ett ramverk från Apple för att skydda användarnas integritet, introducerat i iOS 14.5. Det kräver att appar får uttryckligt tillstånd för att få tillgång till enhetens reklamidentifikator (IDFA) innan de använder den för spårning.

Före ATT kunde utvecklare läsa IDFA utan tillstånd, vilket gjorde det möjligt för annonsnätverk att bygga användarprofiler och spåra deras aktivitet mellan appar och webbplatser. Apple kallade detta tillvägagångssätt för en integritetskränkning och införde den obligatoriska samtyckesdialogrutan.

Ramverket är tillgängligt från iOS 14.0, men blev obligatoriskt för alla appar som använder IDFA med lanseringen av iOS 14.5 i april 2021. Enligt Flurry Analytics gav efter införandet av ATT mindre än 25% av användarna i USA samtycke till spårning, vilket radikalt förändrade marknaden för mobil reklam.

ATT kontrollerar förekomsten av tillstånd via en särskild systemdialogruta som appen inte kan modifiera eller kringgå. Användaren ser en standard popup med text som tillhandahålls av utvecklaren och väljer “Tillåt” eller “Be appen att inte spåra”.

Hur ATT relaterar till integritet i iOS

Apple positionerar ATT som en del av en övergripande integritetsstrategi, som även inkluderar Privacy Nutrition Label i App Store och Privacy Manifest. Alla tre mekanismerna fungerar tillsammans: etiketterna visar vilka data appen samlar in, Manifestet deklarerar orsakerna till API-användning, och ATT ger användaren kontroll över spårning.

Att avvisa spårning blockerar inte själva appens funktion — användaren kan fortsätta använda alla funktioner, men annonsnätverken får inte IDFA för personalisering och attribuering. Alternativ till IDFA blev SKAdNetwork och Probabilistic Attribution från Apple.

Enligt Branch Metrics sjönk efter införandet av ATT andelen appar som får IDFA globalt från 70% till 20%. Detta ledde till en omprövning av metoder för installationsattribuering och intäktsgenerering genom annonsering.

Förändringar i iOS 15 och 16

I iOS 15 skärpte Apple inte ATT-kraven, men lade till App Privacy Report — en rapport som visar användaren hur ofta appar får åtkomst till sensorer och data. iOS 16 utökade kontrollen: användaren kan när som helst ändra spårningsinställningarna via Inställningar → Integritet → Spårning.

Viktigt: om användaren väljer “Be appen att inte spåra” i ATT-dialogrutan får appen inte IDFA-värdet, utan istället returneras en sträng med nollor — 00000000-0000-0000-0000-000000000000. Försök att läsa IDFA på annat sätt eller via kringgångsmetoder leder till att appen avvisas i App Store.

Från och med iOS 17 har Apple skärpt kontrollerna: om en app begär IDFA utan att visa ATT-systemdialogrutan får den ett avvisande på OS-nivå, inte bara en tom identifierare. Detta utesluter möjligheten till bakgrundsinsamling av IDFA utan användarens vetskap.

Hur spårningsbegäran fungerar i iOS

Processen för ATT-begäran består av tre steg: statuskontroll, visning av systemdialogrutan och bearbetning av svar. Utvecklaren kan inte hoppa över något steg — operativsystemet kontrollerar varje steg.

Kontroll av auktoriseringsstatus

Innan dialogrutan anropas måste appen kontrollera aktuell status via ATTrackingManager. Möjliga statusar är: notDetermined (ännu inte begärt), restricted (förbjudet av enhetspolicy), denied (användaren avvisade), authorized (tillåtet).

Om statusen redan är bestämd (authorized eller denied) är det inte möjligt att anropa dialogrutan igen — användaren har fattat ett slutgiltigt beslut. Det enda sättet att ändra beslutet är via iOS-systeminställningar.

För att kontrollera statusen används egenskapen ATTrackingManager.trackingAuthorizationStatus. Anropet måste ske på huvudtråden eftersom systemdialogrutan är en UI-komponent.

swift
import AppTrackingTransparency
import AdSupport

func checkTrackingStatus() {
    let status = ATTrackingManager.trackingAuthorizationStatus
    switch status {
    case .notDetermined:
        requestTrackingPermission()
    case .authorized:
        readIDFA()
    case .denied, .restricted:
        useAlternativeTracking()
    @unknown default:
        break
    }
}

Visning av systemdialogrutan

För att visa dialogrutan anropas metoden requestTrackingAuthorization med en closure som tar emot resultatet av användarens val. Viktigt: dialogrutan visas endast en gång. Om utvecklaren försöker anropa den igen ignorerar systemet begäran.

Texten i dialogrutan består av två delar: systemrubriken (kan inte ändras) och ett anpassat meddelande som utvecklaren anger i Info.plist via nyckeln NSUserTrackingUsageDescription.

Dialogrutan bör visas i ett naturligt sammanhang — inte omedelbart vid appstart, utan vid första försöket att använda funktionalitet relaterad till spårning. Apple rekommenderar att visa dialogrutan efter att användaren har förstått funktionens värde.

swift
func requestTrackingPermission() {
    ATTrackingManager.requestTrackingAuthorization { status in
        DispatchQueue.main.async {
            switch status {
            case .authorized:
                let idfa = ASIdentifierManager.shared().advertisingIdentifier
                print("IDFA: \(idfa)")
            case .denied:
                print("Användaren nekade spårning")
            default:
                break
            }
        }
    }
}

IDFA och begränsning av åtkomst

IDFA (Identifier for Advertisers) är en unik reklamidentifikator för iOS-enheter, som används för riktad reklam och installationsattribuering. Före ATT fick utvecklare den via ASIdentifierManager utan begränsningar. Efter införandet av ATT blockeras åtkomst till IDFA tills användaren ger uttryckligt samtycke.

Vad är IDFA och varför behövs det

IDFA är en UUID-sträng, unik för varje iOS-enhet. Annonsnätverk använder IDFA för: spårning av appinstallationer (attribuering), visning av relevanta annonser baserat på användarens intressen, mätning av annonskampanjers effektivitet och retargeting — att locka tillbaka användare som inte slutförde en målåtgärd.

Efter att användaren avvisat spårning returnerar ASIdentifierManager värdet 00000000-0000-0000-0000-000000000000. Appen kan dock fortfarande läsa IDFA för tekniska ändamål (t.ex. bedrägeribekämpning), men får inte vidarebefordra det till annonsnätverk.

Enligt Singular (2024) är den globala ATT-samtyckesnivån 25-35%, medan Europa (GDPR) har högre siffror (40-50%) än USA (15-25%). Detta har tvingat annonsplattformar att utveckla alternativa attribueringsmetoder.

Alternativ till IDFA: SKAdNetwork och Probabilistic Attribution

SKAdNetwork är ett ramverk från Apple för installationsattribuering utan att avslöja IDFA. Det fungerar på OS-nivå: annonsnätverket skickar en signerad postback som Apple verifierar och vidarebefordrar till utvecklaren. Attribuering sker utan identifiering av specifik användare, endast på kampanjnivå.

Probabilistic Attribution använder flera enhetssignaler — modell, iOS-version, tidszon, skärmljusstyrka — för probabilistisk matchning av installationer med annonsvisningar. Apple förbjuder dock denna metod i sina regler och dess användning kan leda till avvisande av appen.

Google, Adjust och AppsFlyer har utvecklat egna hybridlösningar som kombinerar SKAdNetwork med egna aggregerade data. Till exempel använder Google Ads Conversion Tracking SKAdNetwork-postbacks och egna maskininlärningsmodeller för attribuering utan IDFA.

Implementering av ATT i appkoden

För ATT-integration måste du lägga till nyckeln NSUserTrackingUsageDescription i Info.plist och importera ramverket AppTrackingTransparency. Nedan följer stegen för Swift och Objective-C.

Konfigurera Info.plist

Första steget — lägg till nyckeln NSUserTrackingUsageDescription i Info.plist med en text som förklarar varför appen behöver spårning. Denna text kommer att visas i systemdialogrutan. Exempel: “Din IDFA används för att visa personliga annonser och följa kampanjeffektivitet”.

Utan denna nyckel kommer anropet till requestTrackingAuthorization att orsaka en krasch — Apple kontrollerar uttryckligen förekomsten av NSUserTrackingUsageDescription innan dialogrutan visas. Texten måste vara kort, specifik och motsvara den faktiska användningen av data.

Viktigt: nyckeln läggs till manuellt via Xcodes Info-flik eller genom att redigera XML-källan för Info.plist. Efter tillägg, bygg om projektet och kontrollera att nyckeln visas i den slutliga binären.

xml
<!-- Info.plist -->
<key>NSUserTrackingUsageDescription</key>
<string>This identifier is used to deliver
personalized ads and measure campaign performance.</string>

Fullständig integration i Swift

I ett verkligt projekt är det bättre att anropa ATT-begäran före den första starten av annonsmodulen eller trackern. Det rekommenderas att förklara värdet av samtycke för användaren i förväg på en separat skärm (pre-permission prompt) — detta ökar samtyckesprocenten med 20-30%.

En pre-permission prompt är ett eget UI som visar fördelen med att aktivera spårning (“Hjälp oss att visa relevanta annonser”). Först efter att knappen “Fortsätt” trycks anropas ATT-systemdialogrutan. Adjust (2024) registrerade en ökning av samtycke med 40% vid användning av pre-permission-skärm.

swift
final class TrackingManager {
    static let shared = TrackingManager()

    func requestTrackingIfNeeded() {
        guard ATTrackingManager.trackingAuthorizationStatus
            == .notDetermined
        else { return }

        ATTrackingManager.requestTrackingAuthorization { _ in
            NotificationCenter.default.post(
                Notification(Name("trackingStatusChanged"))
            )
        }
    }
}

Misstag vid arbete med ATT

Utvecklare gör ofta typiska misstag vid ATT-integrering som leder till minskad samtyckeskonvertering eller avvisande av appen av App Store-moderatorer. Låt oss titta på de fem vanligaste problemen.

ATT-begäran direkt efter appstart

Det vanligaste misstaget — att visa ATT-systemdialogrutan på första skärmen efter att appen laddats. Användaren förstår ännu inte appens värde och trycker med stor sannolikhet på “Avvisa”. IronSource (2023) visade en minskning av samtycke med 32% vid begäran på första skärmen jämfört med begäran efter den tredje sessionen.

Rekommendation: be om spårning efter att användaren har utfört en målåtgärd (sett innehåll, påbörjat introduktion) eller efter 3-5 sessions användning av appen. Detta ökar förtroendet och medvetenheten om värdet.

Avsaknad av pre-permission-skärm

Att visa ATT-systemdialogrutan utan föregående förklaring — ett misstag som sänker konverteringen till 15-20%. Användaren ser en oväntad begäran och avvisar instinktivt. En pre-permission-skärm med förklaring av fördelen ökar samtycket till 35-45%.

Pre-permission-texten måste vara specifik: “Tillåt relevanta annonser — det hjälper oss att förbli gratis”. Undvik allmänna fraser — de minskar förtroendet. GameAnalytics visade 2023 att pre-permission med förklaring av fördelen ger 28% fler samtycken än en tom skärm.

Ignorering av status restricted och denied

Om användaren redan har avvisat spårning eller statusen är restricted (föräldrakontroll, företagspolicy) bör appen inte anropa ATT-dialogrutan igen. Upprepat anrop fungerar inte och uppfattas som en integritetskränkning. Gå istället över till SKAdNetwork och kontextuell annonsering.

I restricted-status kan appen inte avgöra om alternativet “Tillåt spårningsbegäranden” är aktiverat i inställningarna. I detta fall, använd alltid attribuering utan alternativ via SKAdNetwork och visa inte pre-permission-skärmen.

Kontroll av IDFA utan att anropa ATT

Att läsa IDFA via ASIdentifierManager.shared().advertisingIdentifier utan föregående ATT-tillstånd returnerar en nollsträng. Vissa utvecklare försöker använda gamla metoder för IDFA-åtkomst via privata API:er — detta leder garanterat till avvisning av appen vid granskning.

Apple använder statisk kodanalysator och maskininlärning för att upptäcka kringgångar. Även om appen passerar granskning kan efterföljande uppdateringar eller automatiska kontroller avslöja överträdelsen och leda till att utvecklarkontot stängs av.

Felaktig text i NSUserTrackingUsageDescription

För lång, vag eller vilseledande text i nyckeln NSUserTrackingUsageDescription — en anledning till att appen avvisas av moderatorer. Apple kontrollerar att beskrivningen motsvarar den faktiska datanvändningen. Om appen inte har annonser men anger “för reklamändamål” kommer moderatorn att avvisa bygget.

Rekommenderat format: en specifik beskrivning av syftet med IDFA-användning på 2-3 meningar. Exempel för en app utan annonser: “Identifieraren används för analys och bedrägeriförebyggande. Data överförs inte till tredje part och används inte för profilering”.

Vanliga frågor

Vad händer om jag inte lägger till ATT i appen?

Om appen använder IDFA eller spårning utan ATT kommer Apple att avvisa den under granskningsprocessen. Även utan spårning rekommenderas att lägga till ATT för transparens, annars ökar risken för avvisning vid nästa uppdatering.

Fungerar appen utan samtycke till spårning?

Ja, appen fungerar fullt ut, men annonsnätverken får inte IDFA för personalisering och attribuering. Alla funktioner i appen, förutom personliga annonser, förblir tillgängliga.

Kan ATT-status återställas i iOS?

Ja, användaren kan när som helst ändra beslutet via Inställningar → Integritet → Spårning. Appen kan inte programmatiskt återställa statusen — endast via systeminställningar.

Hur ökar man ATT-samtyckesprocenten?

Använd en pre-permission-skärm med förklaring av fördelen, be om spårning inte vid första starten utan efter att en målåtgärd utförts. Meta (2024) visade en ökning av samtycke med 35% vid fördröjd begäran.

Påverkar ATT appar för barn?

Appar i kategorin “För barn” får inte använda IDFA och ATT för spårning enligt Apples regler. De har också förbjudet att överföra data till tredje part för analys eller reklam.

Sammanfattning

  • ATT — App Tracking Transparency, obligatoriskt ramverk för IDFA-åtkomstbegäran i iOS 14.5+
  • IDFA — enhetens reklamidentifikator, skyddad av ATT mot obehörig åtkomst
  • Systemdialogruta — användaren ser alltid en dialog som appen inte kan ändra eller kringgå
  • Pre-permission — egen skärm med förklaring av fördel, ökar samtycke med 20-40%
  • SKAdNetwork — attribuering utan alternativ från Apple för appar utan IDFA-åtkomst
  • Konvertering — global samtyckesnivå är 25-35%, i Europa upp till 50% tack vare GDPR
  • Integrera ATT före anrop av någon tracker och lägg obligatoriskt till nyckeln NSUserTrackingUsageDescription i Info.plist

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också