Wytyczne dotyczące zarządzania zgodami w aplikacjach mobilnych
Omówienie
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 RODO, LGPD oraz wymogami IAB Transparency & Consent Framework (TCF). Dokument dotyczy prawidłowego przetwarzania zgód użytkowników w przypadku usług stron trzecich, w tym sieci reklamowych, platform analitycznych i innych usług śledzenia.
Wymagania wdrożeniowe
1. Nie inicjuj usług stron trzecich bez weryfikacji zgody
Kroki wdrożenia:
- Sprawdź, czy użytkownik podjął decyzję o wyrażeniu zgody
- Zweryfikuj zgodę na konkretnego dostawcę/usługę
- Zainicjuj usługę tylko wtedy, gdy spełnione są oba warunki
- Jeżeli nie udzielono zgody na rzecz danego sprzedawcy lub celu, należy:
- Pomiń inicjalizację tej usługi (na przykład Google AdMob);
- Jeżeli są dostępne, korzystaj z alternatyw przyjaznych dla prywatności;
- Ogranicz dostępne funkcjonalności zgodnie ze strategią przychodów z produktu. Przykład: w przypadku całkowicie bezpłatnej aplikacji, której jedynym źródłem dochodu są reklamy, możesz wyświetlić przyjazny komunikat informujący, że aplikacja nie będzie działać lub będzie dostępna tylko częściowo, jeśli nie zostanie wyrażona zgoda na jej wykorzystanie w celach marketingowych;
2. Dwuetapowa kontrola zgody
Zawsze wdrażaj obie kontrole zgodnie z wymogami artykułu 7(1) RODO i specyfikacjami IAB TCF:
Faza 1: Czy użytkownik podjął decyzję?
- Sprawdź, czy użytkownik wszedł w interakcję z warstwą zgody
- Jeżeli nie podjęto żadnej decyzji, nie przetwarzaj danych osobowych
Faza 2: Czy użytkownik wyraża zgodę na określony cel?
- Sprawdź, czy zgoda została wyrażona na konkretną usługę świadczoną przez osobę trzecią
- Każdy dostawca/usługa wymaga indywidualnej weryfikacji zgody
Scenariusze przepływu pracy użytkownika
Scenariusz 1: Normalny przepływ pracy użytkownika
Przepływ: Użytkownik otwiera aplikację → SDK wyświetla warstwę zgody (jeśli jest to konieczne) → Użytkownik dokonuje wyboru → Aplikacja kontynuuje działanie z odpowiednimi usługami
Ważne: nawigacja za pomocą przycisku Wstecz oraz gesty są wyłączone w naszych mobilnych zestawach SDK, więc użytkownik nie może odrzucić warstwy zgody bez uzyskania odpowiedniej zgody.
Kroki wdrożenia:
- Uruchomienie aplikacji: Zainicjuj platformę zarządzania zgodami. W tym celu użyj metody checkAndOpen(). Sprawdź przykłady w naszej dokumentacji pomocy (iOS, Android)
- Weryfikacja zgody: poprzedni krok pozwoli ustalić, czy zgoda jest potrzebna automatycznie, czy nie, dzięki czemu użytkownik może podjąć decyzję o wyrażeniu zgody.
- Inicjalizacja usługi: Inicjalizacja usług na podstawie wyborów wyrażonych przez użytkownika
Przykład implementacji:
// 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
Przepływ: Użytkownik otwiera aplikację bez dostępu do Internetu → CMP nie może załadować warstwy zgody → Aplikacja musi obsługiwać ją prawidłowo
Krytyczne uwagi:
- Nasz mobilny zestaw SDK nie może pobrać konfiguracji z serwerów
- Poprzednie decyzje o wyrażeniu zgody mogą być nadal ważne (zgodnie z artykułem 7(3) RODO w sprawie wycofania zgody)
- Aplikacja musi działać w trybie obniżonym, bez przetwarzania danych osobowych, jeśli nie wyrażono jeszcze zgody
Strategia wdrażania:
- Sprawdź możliwe trwałe dane dotyczące zgody z poprzednich sesji (będziesz ich używać
getUserStatus()jak w poprzednim przykładzie) - Jeżeli istnieje wcześniejsza zgoda, postępuj normalnie
- Jeśli nie ma trwałej zgody i nie ma Internetu:
-
- Zablokuj wszystkie nieistotne usługi stron trzecich
- Pokaż przyjazną użytkownikowi wiadomość wyjaśniającą sytuację
- Skonfiguruj odbiornik łączności, aby ponawiał próbę po przywróceniu połączenia i wyświetlał warstwę zgody, gdy tak się stanie
- Zezwól na podstawową funkcjonalność aplikacji, która nie wymaga przetwarzania danych osobowych
Zagadnienia dotyczące doświadczenia użytkownika:
- Wyświetl wyraźny komunikat o ograniczonej funkcjonalności
- Wprowadź opcję ponawiania próby, gdy połączenie będzie dostępne
- Wyjaśnij, że żadne dane osobowe nie zostaną udostępnione do momentu podjęcia decyzji o ochronie prywatności
- Udostępnij opcję kontynuowania w trybie ograniczonym
Scenariusz 3: Zgoda nie jest wymagana
Sytuacja: Użytkownik znajduje się poza UE, a CMP jest skonfigurowany tak, aby wyświetlać się tylko w UE → Brak wyświetlonej warstwy zgody
Strategia wdrażania:
- Zainicjuj konfigurację CMP jak zwykle
- Zezwól CMP na określenie, czy warstwa zgody powinna zostać wyświetlona za pomocą
checkAndOpen() - Jeśli zgoda nie jest wymagana, status użytkownika zwróci „choiceExists”, a dostawcy i cele zostaną ustawione na „przyznano”
- Zainicjuj wszystkie usługi normalnie
Reaguj na zmiany zgody
Zmiany 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 „Prawne” na pulpicie CMP)
- Zmiany w wymogach prawnych wymuszające przypomnienie zgody
- Użytkownik żąda usunięcia danych
checkAndOpen() Metoda będzie reagować na wszystkie te sytuacje. Zaimplementuj nasłuchiwacz, który będzie śledził zmiany w zgody. Możesz użyć didReceiveConsent wywołanie zwrotne dla tego (iOS oraz Android). Jeśli w dowolnym momencie dany dostawca lub cel zostanie odrzucony, należy natychmiast podjąć działania i zablokować usługi.
Lista kontrolna testowania
Testy funkcjonalne
Testowanie przepływu normalnego:
- Aplikacja uruchamia się poprawnie i wyświetla warstwę zgody, gdy jest to potrzebne
- Wybory wyrażane przez użytkownika są prawidłowo rejestrowane i respektowane
- Usługi są inicjowane tylko po uzyskaniu odpowiedniej zgody
- Aplikacja działa poprawnie po wyrażeniu zgody
Testowanie przepływu odrzutowego:
- Odrzucenie użytkownika prawidłowo blokuje usługi stron trzecich
- Aplikacja pozostaje funkcjonalna lub przechodzi w tryb obniżonej wydajności w zależności od Twojej strategii przychodowej
Testowanie offline:
- Aplikacja bez problemu radzi sobie z brakiem połączenia internetowego
- Dane dotyczące zgody przechowywane w pamięci podręcznej są wykorzystywane prawidłowo
- Tryb prywatności aktywuje się w razie potrzeby
- Przywrócenie połączenia uruchamia odpowiednią logikę ponawiania prób
Testowanie przekroczenia limitu czasu:
- Przekroczenie limitu czasu warstwy zgody powoduje uruchomienie odpowiedniego rozwiązania awaryjnego
- 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
Testy zgodności
Weryfikacja przetwarzania danych:
- Dane śledzące nie są wysyłane przed podjęciem przez użytkownika decyzji o wyrażeniu zgody
- Identyfikatory dostawców są poprawnie mapowane na rzeczywiste usługi
- Blokowanie poszczególnych usług działa zgodnie z przeznaczeniem
- Prawidłowo wdrożona szczegółowość zgody
Weryfikacja wymogów prawnych:
- Cofnięcie zgody powoduje natychmiastowe zaprzestanie przetwarzania danych
- Prawa osoby, której dane dotyczą, można realizować za pośrednictwem aplikacji
- Prawidłowy ślad audytu utrzymywany w celu podejmowania decyzji o zgodzie
- Udokumentowana podstawa prawna dla każdego przetwarzania danych
Rozwiązywanie problemów
Typowe problemy i rozwiązania
Problem: Usługi są inicjowane nawet po odmowie zgody
Podstawowe przyczyny:
- Brak kontroli zgody przed zainicjowaniem usługi
- Nieprawidłowe mapowanie identyfikatora dostawcy
Solutions:
- Dodaj wyraźną kontrolę zgody przed inicjalizacją WSZYSTKICH usług stron trzecich
- Sprawdź, czy identyfikatory dostawców są zgodne z identyfikatorami na globalnej liście dostawców
- Wdrożenie prawidłowej synchronizacji między zgodą a inicjalizacją usługi
- Wyraźne przypadki świadczenia usług, w których zgoda zostanie odwołana
Problem: Warstwa zgody nigdy się nie pojawia
Możliwe przyczyny:
- Nieprawidłowa konfiguracja CMP (błędny identyfikator, domena itp.)
- Problemy z połączeniem sieciowym
- Użytkownik znajduje się poza docelowym regionem geograficznym
- Problemy z integracją aplikacji
Kroki debugowania:
- Sprawdź, czy konfiguracja CMP jest zgodna z ustawieniami konta
- Przetestuj łączność sieciową i dostępność serwera CMP
- Sprawdź logi konsoli pod kątem komunikatów o błędach
- Przetestuj warstwę zgody z wymuszonym otwarciem w celu weryfikacji integracji
- Potwierdź ustawienia kierowania geograficznego w panelu CMP
Lista kontrolna priorytetów wdrożenia
Wysoki priorytet (należy ukończyć przed uruchomieniem):
- Weryfikacja zgody wdrożona przed inicjalizacją WSZYSTKICH usług stron trzecich
- Prawidłowa obsługa błędów w przypadku problemów z przekroczeniem limitu czasu, siecią i konfiguracją
- Podstawowa funkcjonalność aplikacji jest zachowana, gdy nie można określić zgody
- Wszystkie identyfikatory dostawców zostały zweryfikowane i poprawnie przypisane do rzeczywistych usług
Ciągłe ulepszenia:
- Przeprowadź analizę następczą na pulpicie CMP, aby sprawdzić wskaźniki powodzenia zgód
- Testowanie A/B w celu optymalizacji warstwy zgody
- Integracja z dodatkowymi ramami zgodności
- Lepsza edukacja użytkowników na temat wyborów dotyczących prywatności
Pamiętaj: W obliczu niepewności co do wymogów dotyczących zgody zawsze wybieraj podejście bardziej chroniące prywatność. Lepiej zachować nadmierną ostrożność niż naruszać prywatność użytkownika lub wymogi regulacyjne.







