Riktlinjer för hantering av samtycke för mobilappar

Översikt

Detta dokument innehåller omfattande riktlinjer för implementering av samtyckeshantering i mobilapplikationer, vilket säkerställer efterlevnad av dataskyddsförordningar, inklusive GDPR, LGPD och kraven i IAB Transparency & Consent Framework (TCF). Det behandlar korrekt hantering av användarsamtycke för tjänster från tredje part, inklusive annonsnätverk, analysplattformar och andra spårningstjänster.

Krav för implementering

1. Initiera inte tjänster från tredje part utan verifiering av samtycke

Implementeringssteg:
  1. Kontrollera om användaren har gett sitt samtycke
  2. Kontrollera samtycke för den specifika leverantören/tjänsten
  3. Starta endast tjänsten om båda villkoren är uppfyllda
  4. Om inget samtycke har givits för en viss leverantör eller ett visst syfte måste du:

2. Tvåfasig samtyckeskontroll

Genomför alltid båda kontrollerna enligt kraven i GDPR artikel 7.1 och IAB TCF-specifikationerna:

Fas 1: Har användaren fattat ett beslut?

  • Kontrollera om användaren har interagerat med samtyckeslagret
  • Om inget beslut har fattats, behandla inte personuppgifter

Fas 2: Samtycker användaren till ett specifikt syfte?

  • Kontrollera om samtycke har givits för den specifika tjänsten från tredje part
  • Varje leverantör/tjänst kräver individuell verifiering av samtycke

Scenarier för användarflöden

Scenario 1: Normalt användarflöde

Flöde: Användaren öppnar appen → SDK visar samtyckeslager (vid behov) → Användaren gör ett val → Appen fortsätter med lämpliga tjänster

Viktigt: navigering med bakåtknappen eller gester är inaktiverade i våra mobila SDK:er, så användaren kan inte stänga samtyckeslagret utan korrekt samtycke.

Implementeringssteg:
  1. App-start: Initiera plattformen för samtyckeshantering. Du använder metoden checkAndOpen() för detta. Se exemplen i våra hjälpdokument (iOS, Android)
  2. Samtyckeskontroll: det föregående steget avgör automatiskt om samtycke behövs eller inte, så att användaren kan fatta ett informerat beslut om samtycke. 
  3. Initialisering av tjänster: Initialisera tjänster baserat på användarens samtycke
Exempel på implementering:
// 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"
    }
}

Scenario 2: Ingen internetanslutning

Flöde: Användaren öppnar appen utan internet → CMP kan inte ladda samtyckeslagret → Appen måste hantera detta på ett smidigt sätt

Kritiska observationer:
  • Vårt mobila SDK kan inte hämta konfigurationen från servrarna
  • Tidigare samtyckesbeslut kan fortfarande vara giltiga (enligt artikel 7.3 i GDPR om återkallande av samtycke).
  • Appen måste fungera i nedgraderat läge utan att behandla personuppgifter om inget samtycke ännu har givits
Implementeringsstrategi:
  1. Kontrollera om det finns eventuella kvarvarande samtyckesdata från tidigare sessioner (du använder getUserStatus() som i föregående exempel för det)
  2. Om ett tidigare samtycke finns, fortsätt som vanligt
  3. Om inget bestående samtycke och ingen internetanslutning:
    • Blockera alla icke-nödvändiga tjänster från tredje part
    • Visa ett användarvänligt meddelande som förklarar situationen
    • Ställ in en anslutningslyssnare för att försöka igen när anslutningen återställs, och visa samtyckeslagret när detta sker
    • Tillåt grundläggande appfunktioner som inte kräver behandling av personuppgifter
Överväganden kring användarupplevelsen:
  • Visa ett tydligt meddelande om begränsad funktionalitet
  • Implementera alternativet för att försöka igen när anslutning finns tillgänglig
  • Förklara att inga personuppgifter kommer att delas förrän val av sekretessinställningar har gjorts
  • Ge möjlighet att fortsätta i begränsat läge

Scenario 3: Inget samtycke krävs

Situation: Användaren befinner sig utanför EU och CMP är konfigurerat för att endast visas inom EU → Inget samtyckeslager visas

Implementeringsstrategi:

  1. Initiera CMP-konfigurationen som vanligt
  2. Låt CMP avgöra om samtyckeslagret ska visas med hjälp av checkAndOpen()
  3. Om samtycke inte krävs kommer användarstatusen att returnera ”choiceExists” och leverantörer och syften kommer att ställas in på ”beviljat”.
  4. Starta alla tjänster som vanligt

Reagera på ändringar i samtyckesvillkoren

Ändringar av samtycke kan ske i flera olika scenarier:

  • Användaren öppnar inställningarna för samtycke och ändrar sina preferenser
  • Samtycket löper ut och måste förnyas (denna inställning finns under Juridiskt på din CMP-instrumentpanel)
  • Ändringar i lagkrav som tvingar fram en ny inhämtning av samtycke
  • Användare begär radering av data

Denna checkAndOpen() metoden reagerar på alla dessa situationer. Implementera en lyssnare som spårar ändringar i samtycke. Du kan använda didReceiveConsent callback för det (iOS och Android). Om en viss leverantör eller ett visst syfte avvisas vid något tillfälle, vidta åtgärder omedelbart och blockera tjänsterna i enlighet därmed.

Checklista för testning

Funktionstestning

Testning av normalt flöde:

  • Appen startar korrekt och visar samtyckeslagret när det behövs
  • Användarnas samtycke registreras och respekteras på rätt sätt
  • Tjänsterna startas endast med lämpligt samtycke
  • Appen fungerar korrekt efter beslut om samtycke

Testning av avvisningsflödet:

  • Om användaren avvisar blockeras tjänster från tredje part på rätt sätt
  • Appen förblir funktionell eller går in i nedgraderat läge beroende på din intäktsstrategi

Offline-testning:

  • Appen hanterar avbrott i internetanslutningen på ett smidigt sätt
  • Cachade samtyckesdata används på rätt sätt
  • Sekretessvänligt läge aktiveras vid behov
  • Återställning av anslutningen utlöser korrekt logik för omförsök

Timeout-testning:

  • Tidsgränsen för samtyckeslagret utlöser lämplig reservlösning
  • Appen fryser inte och kraschar inte vid timeout
  • Fallback-läget blockerar databehandlingen på rätt sätt
  • Användaren får tydlig information om status

Kompatibilitetstestning

Verifiering av databehandling:

  • Inga spårningsdata skickas innan användaren har gett sitt samtycke
  • Leverantörs-ID:n korrekt kopplade till faktiska tjänster
  • Blockering av enskilda tjänster fungerar som avsett
  • Samtyckets detaljnivå korrekt implementerad

Verifiering av juridiska krav:

  • Återkallande av samtycke stoppar databehandlingen omedelbart
  • Den registrerades rättigheter kan utövas via appen
  • Korrekt revisionsspår upprätthålls för samtyckesbeslut
  • Rättslig grund dokumenterad för all databehandling

Felsökning

Vanliga problem och lösningar

Problem: Tjänsterna startas även när samtycke nekas

. Grundorsaker:
  • Saknad samtyckeskontroll före tjänstens start
  • Felaktig mappning av leverantörs-ID
Lösningar:
  • Lägg till en explicit samtyckeskontroll innan ALLA tjänster från tredje part startas
  • Kontrollera att leverantörs-ID:n stämmer överens med dem i den globala leverantörslistan
  • Se till att samtycket och tjänstens start är korrekt synkroniserade
  • Tydliga exempel på tjänster när samtycket återkallas
Problem: Samtyckeslagret visas
aldrig Möjliga orsaker:
  • Felaktig CMP-konfiguration (felaktigt ID, domän etc.)
  • Problem med nätverksanslutningen
  • Användaren befinner sig utanför det geografiska målområdet
  • Problem med appintegration
Felsökningssteg:
  • Kontrollera att CMP-konfigurationen stämmer överens med kontoinställningarna
  • Testa nätverksanslutningen och tillgängligheten till CMP-servern
  • Kontrollera konsolloggarna för felmeddelanden
  • Testa med ett samtyckeslager som öppnas automatiskt för att verifiera integrationen
  • Bekräfta inställningarna för geografisk inriktning i CMP-instrumentpanelen

Checklista för implementeringsprioriteringar

Hög prioritet (måste slutföras före lansering):
  • Verifiering av samtycke genomförs innan ALLA tjänster från tredje part startas
  • Korrekt felhantering vid timeout, nätverks- och konfigurationsproblem
  • Appens grundläggande funktionalitet bevaras när samtycke inte kan fastställas
  • Alla leverantörs-ID:n har verifierats och kopplats korrekt till faktiska tjänster
Pågående förbättringar:
  • Följ upp analyserna på din CMP-instrumentpanel för att se hur stor andel av besökarna som ger sitt samtycke.
  • A/B-testning för optimering av samtyckeslagret
  • Integration med ytterligare ramverk för regelefterlevnad
  • Förbättrad användarinformation om integritetsval

Kom ihåg: När du är osäker på kraven för samtycke ska du alltid välja den metod som bäst skyddar integriteten. Det är bättre att vara överdrivet försiktig än att kränka användarnas integritet eller bryta mot lagkrav.

 

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!