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:
- Sprawdź, czy użytkownik wyraził zgodę
- Sprawdź zgodę dla konkretnego dostawcy/usługi
- Uruchom usługę tylko wtedy, gdy spełnione są oba warunki
- 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:
- Start aplikacji: Zainicjuj platformę zarządzania zgodami. W tym celu użyjesz metody checkAndOpen(). Sprawdź przykłady w naszej dokumentacji pomocy (iOS, Android)
- 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.
- 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:
- Sprawdź, czy istnieją dane dotyczące zgody z poprzednich sesji (użyjesz
getUserStatus()jak w poprzednim przykładzie). - Jeśli istnieje wcześniejsza zgoda, postępuj jak zwykle
- 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:
- Skonfiguruj CMP w zwykły sposób
- Pozwól CMP określić, czy należy wyświetlić warstwę zgody, używając
checkAndOpen() - Jeśli zgoda nie jest wymagana, status użytkownika zwróci „choiceExists”, a dostawcy i cele zostaną ustawione na „granted”
- 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.