Wytyczne dotyczące zarządzania zgodami w aplikacjach mobilnych

Przegląd

Niniejszy dokument zawiera kompleksowe wytyczne dotyczące wdrażania zarządzania zgodami w aplikacjach mobilnych, zapewniające zgodność z przepisami o ochronie danych, w tym z wymogami RODO, LGPD oraz ramami przejrzystości i zgody IAB (TCF). Dotyczy on właściwego postępowania z zgodami użytkowników w odniesieniu do usług stron trzecich, w tym sieci reklamowych, platform analitycznych i innych usług śledzących.

Wymagania dotyczące wdrożenia

1. Nie uruchamiaj usług stron trzecich bez weryfikacji zgody

Kroki wdrożeniowe:
  1. Sprawdź, czy użytkownik wyraził zgodę
  2. Sprawdź zgodę dla konkretnego dostawcy/usługi
  3. Uruchom usługę tylko wtedy, gdy spełnione są oba warunki
  4. Jeśli nie udzielono zgody dla danego dostawcy lub celu, musisz:

2. Dwufazowa weryfikacja zgody

Zawsze przeprowadzaj obie kontrole zgodnie z wymogami art. 7 ust. 1 RODO oraz specyfikacjami IAB TCF:

Faza 1: Czy użytkownik podjął decyzję?

  • Sprawdź, czy użytkownik wchodził w interakcję z warstwą zgody
  • Jeśli nie podjęto żadnej decyzji, nie przetwarzaj danych osobowych

Faza 2: Czy użytkownik wyraża zgodę na konkretny cel?

  • Sprawdź, czy udzielono zgody na korzystanie z konkretnej usługi strony trzeciej
  • Każdy sprzedawca/usługodawca wymaga indywidualnej weryfikacji zgody

Scenariusze przepływu pracy użytkownika

Scenariusz 1: Normalny przebieg pracy użytkownika

Przebieg: Użytkownik otwiera aplikację → SDK wyświetla warstwę zgody (w razie potrzeby) → Użytkownik dokonuje wyboru → Aplikacja kontynuuje działanie z odpowiednimi usługami

Ważne: nawigacja przyciskiem Wstecz lub gesty są wyłączone w naszych mobilnych SDK, więc użytkownik nie może zamknąć okienka zgody bez wyrażenia odpowiedniej zgody.

Kroki wdrożeniowe:
  1. Start aplikacji: Zainicjuj platformę zarządzania zgodami. W tym celu użyjesz metody checkAndOpen(). Sprawdź przykłady w naszej dokumentacji pomocy (iOS, Android)
  2. Sprawdzenie zgody: poprzedni krok automatycznie określi, czy zgoda jest potrzebna, czy nie, dzięki czemu użytkownik może podjąć świadomą decyzję w sprawie zgody. 
  3. Inicjalizacja usług: Zainicjuj usługi w oparciu o wybory użytkownika dotyczące zgody
Przykład wdrożenia:
// This hypothetical example assumes you have implemented: 
//   - OneSignal (s1448)
//   - Google Ads/AdMob (s1)
//   - Google Analytics (s26)

class yourGreatApp {

    void function onAppLaunch() {
        if shouldInitializeService("s148") {
            OneSignal.initialize("your-token")
        }
    
        if shouldInitializeService("s1") {
            AdMobService.initialize()
        }
    
        if shouldInitializeService("s26") {
            FirebaseAnalytics.initializeApp("your-token")
        }   
    }
    
    
    boolean private function shouldInitializeService(string: purposeId):
        // Phase 1: Check if user has made any decision
        consentStatus = CMPManager.getUserStatus()
        if consentStatus.status = "choiceDoesntExist"
            return false  // Consent Layer was not yet displayed to this client
        
        return CMPManager.shared.getStatusForPurpose(id: purposeId) == "granted"
    }
}

Scenariusz 2: Brak połączenia z Internetem

Przebieg: Użytkownik otwiera aplikację bez internetu → CMP nie może załadować warstwy zgody → Aplikacja musi poradzić sobie z tym w sposób elegancki

. Kluczowe uwagi:
  • Nasz mobilny SDK nie może pobrać konfiguracji z serwerów
  • Poprzednie decyzje dotyczące zgody mogą nadal obowiązywać (zgodnie z art. 7 ust. 3 RODO dotyczącym wycofania zgody)
  • Aplikacja musi działać w trybie awaryjnym bez przetwarzania danych osobowych w przypadku, gdy nie udzielono jeszcze zgody
Strategia wdrożenia:
  1. Sprawdź, czy istnieją dane dotyczące zgody z poprzednich sesji (użyjesz getUserStatus() jak w poprzednim przykładzie).
  2. Jeśli istnieje wcześniejsza zgoda, postępuj jak zwykle
  3. Jeśli nie ma trwałej zgody i nie ma internetu:
    • Zablokuj wszystkie zbędne usługi stron trzecich
    • Wyświetl przyjazny dla użytkownika komunikat wyjaśniający sytuację
    • Skonfiguruj moduł monitorujący łączność, aby ponowił próbę po przywróceniu połączenia, i wyświetl okno zgody, gdy to nastąpi
    • Zezwól na podstawową funkcjonalność aplikacji, która nie wymaga przetwarzania danych osobowych
Kwestie związane z doświadczeniem użytkownika:
  • Wyświetl jasny komunikat o ograniczonej funkcjonalności
  • Wprowadź opcję ponownej próby, gdy połączenie będzie dostępne
  • Wyjaśnij, że żadne dane osobowe nie będą udostępniane, dopóki nie zostaną dokonane wybory dotyczące prywatności
  • Zapewnij opcję kontynuowania w trybie ograniczonym

Scenariusz 3: Zgoda nie jest wymagana

Sytuacja: Użytkownik znajduje się poza UE, a CMP jest skonfigurowane tak, aby wyświetlać się tylko w UE → Nie wyświetla

się warstwa zgody Strategia wdrożenia:

  1. Skonfiguruj CMP w zwykły sposób
  2. Pozwól CMP określić, czy należy wyświetlić warstwę zgody, używając checkAndOpen()
  3. Jeśli zgoda nie jest wymagana, status użytkownika zwróci „choiceExists”, a dostawcy i cele zostaną ustawione na „granted”
  4. Zainicjuj wszystkie usługi w normalny sposób

Reaguj na zmiany w zakresie zgody

Zmiany dotyczące zgody mogą mieć miejsce w kilku scenariuszach:

  • Użytkownik otwiera ustawienia zgody i zmienia preferencje
  • Zgoda wygasa i wymaga odnowienia (to ustawienie można znaleźć w sekcji „Legal” na pulpicie nawigacyjnym CMP)
  • Zmiany wymogów prawnych, które wymuszają ponowne uzyskanie zgody
  • Użytkownik żąda usunięcia danych

Ta checkAndOpen() metoda zareaguje na wszystkie te sytuacje. Zaimplementuj słuchacz, który będzie śledził zmiany zgody. Możesz użyć didReceiveConsent callback (iOS i Android). Jeśli w dowolnym momencie dany dostawca lub cel zostanie odrzucony, należy natychmiast podjąć działania i odpowiednio zablokować usługi.

Lista kontrolna do testowania

Testy funkcjonalne

Testowanie normalnego przebiegu:

  • Aplikacja uruchamia się poprawnie i wyświetla okienko zgody w razie potrzeby
  • Wybory użytkownika dotyczące zgody są prawidłowo rejestrowane i respektowane
  • Usługi uruchamiają się wyłącznie po uzyskaniu odpowiedniej zgody
  • Aplikacja działa poprawnie po podjęciu decyzji dotyczących zgody

Testowanie ścieżek odrzucenia:

  • Odrzucenie przez użytkownika skutecznie blokuje usługi stron trzecich
  • Aplikacja pozostaje funkcjonalna lub przechodzi w tryb ograniczonej funkcjonalności w zależności od Twojej strategii przychodowej

Testowanie offline:

  • Aplikacja płynnie radzi sobie z brakiem połączenia internetowego
  • Dane dotyczące zgody zapisane w pamięci podręcznej są wykorzystywane w odpowiedni sposób
  • Tryb przyjazny dla prywatności włącza się w razie potrzeby
  • Przywrócenie połączenia uruchamia odpowiednią logikę ponownej próby

Testowanie limitu czasu:

  • Wygasanie warstwy zgody uruchamia odpowiedni mechanizm awaryjny
  • Aplikacja nie zawiesza się ani nie ulega awarii podczas przekroczenia limitu czasu
  • Tryb awaryjny prawidłowo blokuje przetwarzanie danych
  • Użytkownik otrzymuje jasną informację o statusie

Testowanie zgodności

Weryfikacja przetwarzania danych:

  • Żadne dane śledzące nie są wysyłane, zanim użytkownik wyrazi zgodę
  • Identyfikatory dostawców poprawnie przypisane do rzeczywistych usług
  • Indywidualne blokowanie usług działa zgodnie z zamierzeniami
  • Właściwie wdrożona szczegółowość zgody

Weryfikacja wymogów prawnych:

  • Cofnięcie zgody powoduje natychmiastowe zaprzestanie przetwarzania danych
  • Prawa osób, których dane dotyczą, można wykonywać za pośrednictwem aplikacji
  • Prowadzenie odpowiedniej ścieżki audytu dla decyzji dotyczących zgody
  • Udokumentowana podstawa prawna dla wszystkich operacji przetwarzania danych

Rozwiązywanie problemów

Typowe problemy i rozwiązania

Problem: Usługi uruchamiają się nawet w przypadku odmowy

zgody. Przyczyny źródłowe:
  • Brak weryfikacji zgody przed uruchomieniem usługi
  • Nieprawidłowe mapowanie identyfikatorów dostawców
Rozwiązania:
  • Dodaj wyraźne potwierdzenie zgody przed uruchomieniem KAŻDEJ usługi zewnętrznej
  • Sprawdź, czy identyfikatory dostawców są zgodne z tymi z globalnej listy dostawców
  • Zapewnij odpowiednią synchronizację między wyrażeniem zgody a uruchomieniem usługi
  • Jasno określ sytuacje, w których zgoda zostaje cofnięta
Problem: Warstwa zgody nigdy się nie pojawia
. Możliwe przyczyny:
  • Nieprawidłowa konfiguracja CMP (błędny identyfikator, domena itp.)
  • Problemy z łącznością sieciową
  • Użytkownik znajduje się poza docelowym regionem geograficznym
  • Problemy z integracją aplikacji
Kroki debugowania:
  • Sprawdź, czy konfiguracja CMP jest zgodna z ustawieniami konta
  • Sprawdź połączenie sieciowe i dostępność serwera CMP
  • Sprawdź logi konsoli pod kątem komunikatów o błędach
  • Przetestuj z warstwą zgody otwieraną automatycznie, aby zweryfikować integrację
  • Sprawdź ustawienia kierowania geograficznego w panelu CMP

Lista kontrolna priorytetów wdrożeniowych

Wysoki priorytet (należy wykonać przed uruchomieniem):
  • Weryfikacja zgody wdrożona przed uruchomieniem WSZYSTKICH usług stron trzecich
  • Prawidłowe obsługiwanie błędów związanych z przekroczeniem limitu czasu, siecią i konfiguracją
  • Zachowanie podstawowej funkcjonalności aplikacji w przypadku braku możliwości ustalenia zgody
  • Wszystkie identyfikatory dostawców zostały zweryfikowane i poprawnie przypisane do rzeczywistych usług
Bieżące ulepszenia:
  • Śledź statystyki na pulpicie nawigacyjnym CMP, aby sprawdzić wskaźniki skuteczności uzyskiwania zgód
  • Testy A/B w celu optymalizacji warstwy zgody
  • Integracja z dodatkowymi ramami zgodności
  • Lepsze informowanie użytkowników o opcjach dotyczących prywatności

Pamiętaj: w razie wątpliwości dotyczących wymogów dotyczących zgody zawsze wybieraj podejście zapewniające większą ochronę prywatności. Lepiej być nadmiernie ostrożnym niż naruszyć prywatność użytkownika lub wymogi regulacyjne.

 

We do our best to keep this purely informative documentation up to date. However, if you notice that any of these guides need a little touch-up, let us know!