Informacia
Treść

[iOS] 4. Praca z ATT (przejrzystość śledzenia aplikacji / iOS)

Zakładka Podgląd

Wszystkie nowe aplikacje przesyłane do App Store muszą być zgodne z wytycznymi firmy Apple Przejrzystość śledzenia aplikacji (ATT) wytyczne dla iOS 14.0+. Te wytyczne zwiększają prywatność użytkownika, wymagając wyraźnej zgody przed śledzeniem. Ten dokument przedstawia niezbędne kroki w celu wdrożenia ATT podczas korzystania z naszego zestawu SDK CMP. Wszystkie metody związane z ATT zostały usunięte z naszego zestawu SDK CMP v3 ze względu na ograniczenia związane z cyklem życia aplikacji. W związku z tym wszystkimi metodami ATT należy zarządzać w samej aplikacji mobilnej, a nie za pośrednictwem naszego zestawu SDK, gdyż nasz zestaw SDK nie jest świadomy cyklu życia aplikacji mobilnej, z którą jest integrowany. Zgodnie z Oficjalna dokumentacja firmy Apple:

Wywołania interfejsu API są wyświetlane tylko wtedy, gdy stan aplikacji jest UIApplicationStateActive

1. Dodaj ATT Framework w Xcode

Integrować Framework Transparency śledzenia aplikacji, przejdź do:

<PROJECT_NAME>.xcproject / <PROJECT_NAME>.xcworkspace -> General -> Frameworks, Libraries, and Embedded Content.

Upewnij się, że struktura jest prawidłowo osadzona, aby umożliwić działanie funkcji ATT.


2. Dodaj NSUserTrackingUsageDescription

Dołącz następujący klucz do swojego Info.plist file:

<key>NSUserTrackingUsageDescription</key>
<string>Your app description explaining why tracking permission is requested.</string>

Ta wiadomość zostanie wyświetlona użytkownikom w monicie o zgodę ATT.


3. Poproś o autoryzację śledzenia

Aby zapewnić prawidłowe przetwarzanie zgody, poproś Pozwolenie ATT przy pierwszym uruchomieniu aplikacji. Powinno to nastąpić tylko wtedy, gdy status zgody użytkownika jest nieznany.

Przykładowa implementacja:

import AppTrackingTransparency

class AppDelegate: UIApplicationDelegate {
    // IMPORTANT: this is the proper lifecycle event where the request needs to be done
    func applicationDidBecomeActive(_ application: UIApplication) {
        if #available(iOS 14, *) {
            ATTrackingManager.requestTrackingAuthorization { status in
                switch status {
                    case .authorized:
                        print("Tracking enabled")
                    case .denied, .notDetermined, .restricted:
                        print("Tracking disabled")
                }
            }
        }
    }
}

Uwaga: Upewnij się, że logika związana z interfejsem użytkownika jest wykonywana na DispatchQueue.main kolejki, ponieważ domyślnie program do obsługi ukończenia działa w kolejce współbieżnej.


4. Monitoruj status autoryzacji śledzenia

Zastosowanie ATTrackingManager.trackingAuthorizationStatus aby śledzić zmiany statusu zgody. Możliwe są następujące stany:

  • .authorized - Użytkownik wyraził zgodę.
  • .denied - Użytkownikowi odmówiono zezwolenia na śledzenie.
  • .notDetermined - Użytkownik nie dokonał jeszcze wyboru.
  • .restricted - Śledzenie jest ograniczone (np. poprzez MDM).

Aby zachować spójność, potraktuj ograniczony as odmówiono chyba że sprzedawca wyrazi wyraźną zgodę.


Jeśli Twoja aplikacja korzysta z narzędzi analitycznych stron trzecich, zaktualizuj ich konfigurację na podstawie statusu ATT użytkownika:

  • Wyłącz śledzenie analiz dla użytkowników, którzy odmawiają lub ograniczają śledzenie.
  • Użyj anonimowego śledzenia jeśli dostawca usług analitycznych oferuje ustawienie rezygnacji (np. mParticle Wypisz się tryb).
  • Przejrzyj zasady SDK regularnie, aby zachować zgodność z wymogami ochrony prywatności firmy Apple.

Przykład dla Firebase:

  • Jeśli nie połączono żadnych struktur reklamowych, Firebase Analytics nie uzyska dostępu do identyfikatora reklamy.
  • Jeśli korzystasz z narzędzi analitycznych w reklamach, przed przesłaniem wniosku upewnij się, że są one zgodne z wytycznymi ATT.

W przypadku aplikacji, które nie wymagają zaawansowanej analizy, Analityka sklepu z aplikacjami (dostępne za pośrednictwem App Store Connect) może zapewnić wystarczające informacje przy jednoczesnym zapewnieniu zgodności.


6. Dodatkowe uwagi

  • Zawijaj połączenia ATT w sprawdzaniu wersji systemu iOS aby uniknąć awarii w starszych wersjach:

    if #available(iOS 14.0, *) {
        ATTrackingManager.requestTrackingAuthorization { _ in }
    }
    
  • Śledź zgodę w przypadku starszych wersji systemu iOS używając flag zaplecza lub lokalnego magazynu.

  • Niezwłocznie dostosuj się do ATT, ponieważ brak zgodności może zablokować aktualizacje aplikacji, nawet w przypadku poprawek krytycznych błędów.

Aby uzyskać więcej informacji na temat zarządzania zgodą użytkownika w aplikacji, zapoznaj się z Dokumentacja ATT firmy Apple.

Powrót do góry