Richiedere il consenso agli utenti europei

Prerequisiti

Completa la Guida introduttiva alla versione 1.3.0 del plug-in GMA Flutter, che supporta l'SDK User Messaging Platform.

Leggi In che modo i requisiti IAB influiscono sui messaggi per il consenso degli utenti dell'UE.

Introduzione

L'SDK UMP fornisce ai publisher gli strumenti per richiedere il consenso per gli annunci personalizzati, nonché per gestire i requisiti dell'App Tracking Transparency (ATT) di Apple. I publisher possono utilizzare l'SDK UMP per gestire una o entrambe queste richieste mostrando un unico modulo, poiché l'intera configurazione avviene in Privacy e messaggi di Ad Manager.

Secondo le Norme relative al consenso degli utenti dell'UE di Google, è obbligatorio informare gli utenti nello Spazio economico europeo (SEE) e nel Regno Unito e ottenere il loro consenso all'utilizzo dei cookie o di altri tipi di archiviazione locale, laddove richiesto dalla legge, nonché per l'utilizzo dei dati personali (ad esempio l'ID pubblicità) per la pubblicazione degli annunci. Queste norme riflettono i requisiti della direttiva e-Privacy e del Regolamento generale sulla protezione dei dati (GDPR) dell'UE.

Per supportare i publisher nell'adempimento degli obblighi previsti da queste norme, Google offre l'SDK User Messaging Platform (UMP). L'SDK UMP è stato aggiornato per supportare i più recenti standard IAB. Abbiamo anche semplificato la procedura di configurazione dei moduli di consenso e dell'elenco dei partner pubblicitari. Tutte queste configurazioni ora possono essere comodamente gestite nella pagina Privacy e messaggi di Ad Manager.

Questa guida illustra come installare l'SDK, implementare le soluzioni IAB e attivare le funzionalità di test.

App Tracking Transparency (solo iOS)

Se prevedi di utilizzare l'SDK UMP per gestire i requisiti di App Tracking Transparency di Apple, assicurati di aver creato, configurato e pubblicato il tuo messaggio ATT utilizzando Privacy e messaggi di Ad Manager.

Affinché l'SDK UMP mostri un messaggio di avviso personalizzato, aggiorna Info.plist per aggiungere la chiave NSUserTrackingUsageDescription con una stringa di messaggi personalizzata che descriva il tuo utilizzo.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

La descrizione dell'utilizzo viene visualizzata all'interno della finestra di dialogo ATT quando presenti il modulo di consenso:

Dopodiché dovrai collegare il framework AppTrackingTransparency:

Durante il test, ricorda che, in base ai requisiti di Apple, la finestra di dialogo ATT IDFA verrà visualizzata una sola volta poiché requestTrackingAuthorization: è una richiesta una tantum. Per visualizzare l'avviso una seconda volta, devi disinstallare e reinstallare l'app sul dispositivo di test.

Utilizzo dell'SDK

L'SDK è progettato per essere utilizzato in modo lineare. Di seguito sono riportati i passaggi per l'utilizzo dell'SDK:

  1. Richiedi le informazioni sul consenso più recenti.
  2. Controlla se è richiesto il consenso.
  3. Controlla se un modulo è disponibile e, in tal caso, caricane uno.
  4. Presenta il modulo.
  5. Offri agli utenti un modo per modificare il proprio consenso.

Ti consigliamo di richiedere un aggiornamento delle informazioni sul consenso a ogni lancio dell'app. Questo determinerà se l'utente deve fornire o meno il consenso.

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    // The consent information state was updated.
    // You are now ready to check if a form is available.
  },
  (FormError error) {
    // Handle the error
  },
);

Carica un modulo, se disponibile

I moduli per l'ottenimento del consenso vengono creati nell' Ad Manager UI. Dopo aver stabilito che dovrai chiedere il consenso a un utente, il passaggio successivo consiste nel determinare se è disponibile un modulo. Un modulo potrebbe non essere disponibile per vari motivi, ad esempio:

  • L'utente ha attivato la limitazione del monitoraggio degli annunci.
  • Hai contrassegnato l'utente come minorenne.

Per verificare se un modulo è disponibile, utilizza il metodo isConsentFormAvailable() nell'istanza ConsentInformation. Aggiungi un metodo wrapper per caricare un modulo:

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    if (await ConsentInformation.instance.isConsentFormAvailable()) {
      loadForm();
    }
  },
  (FormError error) {
    // Handle the error
  },
);

Per caricare il modulo, utilizzerai il metodo loadConsentForm() statico nella classe ConsentForm. Modifica il metodo loadForm() in questo modo:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      // Present the form
    },
    (FormError formError) {
      // Handle the error
    },
  );
}

Se necessario, presenta il modulo

Per presentare il modulo di consenso, utilizza il metodo show() nella classe ConsentForm. Prima di presentare il modulo, devi stabilire se l'utente richiede il consenso. Per verificare se è necessario il consenso, chiama getConsentStatus() nell'oggetto ConsentInformation, che restituisce un'enumerazione di tipo ConsentStatus. Esistono quattro valori possibili per ConsentStatus:

  • unknown: stato del consenso sconosciuto.
  • required: consenso dell'utente obbligatorio, ma non ancora ottenuto.
  • notRequired: consenso dell'utente non richiesto. Ad esempio, l'utente non si trova nel SEE o nel Regno Unito.
  • obtained: consenso degli utenti ottenuto. Personalizzazione non definita.

Modifica il metodo loadForm in questo modo:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      var status = await ConsentInformation.instance.getConsentStatus();
      if (status == ConsentStatus.required) {
        consentForm.show(
          (FormError formError) {
            // Handle dismissal by reloading form
            loadForm();
          },
        );
      }
    },
    (formError) {
      // Handle the error
    },
  );
}

Se il consenso non è richiesto, puoi conservare un riferimento al modulo in modo che l'utente possa modificare il proprio stato del consenso.

Test

Forzare un'area geografica

L'SDK UMP consente di testare il comportamento della tua app come se il dispositivo si trovasse nel SEE utilizzando ConsentDebugSettings.debugGeography.

Per utilizzare la funzionalità di debug, dovrai fornire l'ID sottoposto ad hashing del dispositivo di test nelle impostazioni di debug dell'app. Se chiami requestConsentInfoUpdate() senza impostare questo valore, la tua app registrerà l'hash ID richiesto quando verrà eseguita.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ['TEST-DEVICE-HASHED-ID']);

ConsentRequestParameters params = ConsentRequestParameters(
  consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () {},
  (error) {});

Per fare in modo che l'SDK tratti il dispositivo come se non si trovasse nel SEE o nel Regno Unito, utilizza DebugGeography.debugGeographyNotEea. Tieni presente che le impostazioni di debug funzionano solo sui dispositivi di test. Non è necessario aggiungere gli emulatori all'elenco di ID dispositivo perché i test sono abilitati per impostazione predefinita.

Durante il test della tua app con l'SDK UMP, potresti trovare utile reimpostare lo stato dell'SDK in modo da simulare la prima installazione di un utente. L'SDK fornisce il metodo reset per eseguire questa operazione.

ConsentInformation.instance.reset();

Devi chiamare "reimpostazione" anche se decidi di rimuovere completamente l'SDK UMP dal progetto.

Mediazione

Se utilizzi la mediazione, devi gestire il consenso per i tuoi partner di mediazione in modo diverso a seconda del framework per il consenso che scegli di utilizzare nella tua app. Google supporta l'IAB Consent Framework, ma ti consente anche di avere una tua soluzione personalizzata per il consenso. Di seguito sono riportati i dettagli su come gestire la mediazione in ciascuna di queste opzioni. Scopri di più sulla nostra soluzione per il consenso.

Né l'SDK UMP né l'SDK Mobile Ads inoltrano le informazioni sul consenso ai partner di mediazione. Quando invece si utilizza la soluzione IAB, l'SDK UMP scrive le informazioni sullo stato del consenso nello spazio di archiviazione locale ed è responsabilità dell'SDK di ogni partner di mediazione leggere le chiavi appropriate. Verifica con ogni rete di terze parti se supporta la soluzione IAB.

Se utilizzi una soluzione personalizzata per il consenso, è tua responsabilità informare gli SDK di terze parti dello stato del consenso della tua app. Ogni rete di mediazione dispone delle proprie API per la gestione del consenso, documentate per Android e iOS.

Consulta Utilizzo di API specifiche di rete per scoprire come chiamare queste API da Dart.

Il comportamento predefinito dell'SDK Google Mobile Ads è pubblicare annunci personalizzati. Se un utente ha acconsentito a ricevere solo annunci non personalizzati, puoi configurare un oggetto AdManagerAdRequest con il seguente codice per specificare che devono essere richiesti solo annunci non personalizzati:

final AdManagerAdRequest = AdManagerAdRequest(nonPersonalizedAds: true);

Le Norme relative al consenso degli utenti dell'UE di Google richiedono il consenso per l'elenco completo dei fornitori di tecnologia pubblicitaria configurati per i tuoi ID publisher prima di mostrare annunci personalizzati, anche se utilizzi una soluzione di mediazione di terze parti per inviare una richiesta di annuncio a Google.