SDK de la solution de gestion du consentement de Google

Consultez les guides du développeur Google pour les SDK:


Consultez les guides au début de ce document pour connaître les exigences et l'implémentation générales du SDK. Si vous avez activé la prise en charge du mode Consentement dans Confidentialité et messages, vous pouvez également implémenter les fonctionnalités supplémentaires décrites ici.

Une fois que vous avez implémenté le SDK approprié, activé le mode Consentement de Google dans "Confidentialité et messages" et déterminé que vous allez implémenter le mode Consentement de base, suivez ces instructions.

Pour implémenter le mode de base:

  1. Désactivez temporairement la collecte Analytics (Android, iOS).
  2. Lorsque vous êtes prêt à débloquer la fonctionnalité Google Analytics, réactivez la collecte Analytics (Android, iOS).

Pour l'étape 2, consultez un expert juridique pour déterminer vos critères de réactivation des fonctionnalités Analytics.

Par exemple, vous pouvez réactiver la fonctionnalité Google Analytics après que l'utilisateur a fait un choix de consentement en réactivant la fonctionnalité Google Analytics dans le rappel de loadAndShowConsentFormIfRequired (référence de l'API : Android, iOS).

Pour déterminer si vous devez réactiver la collecte Analytics en fonction des choix de l'utilisateur concernant le mode Consentement, lisez la clé de stockage local UMP_consentModeValues. La valeur est une chaîne de quatre chiffres.

  • Le premier chiffre indique la valeur de l'attribut purpose d'ad_storage.
  • Le deuxième chiffre indique la valeur de l'attribut "purpose" de la propriété "ad_user_data".
  • Le troisième chiffre indique la valeur de l'attribut purpose de la personnalisation des annonces.
  • Le quatrième chiffre indique la valeur de analytics_storage purpose.

Le tableau suivant décrit les valeurs possibles pour chaque chiffre:

Valeur Signification
0 Aucune valeur n'est disponible pour le moment.
1 L'utilisateur GRANTED cet objectif.
2 L'utilisateur DENIED cet objectif.
3 Le mode Consentement ne s'applique pas à cet utilisateur.
4 Le mode Consentement n'est pas configuré à cette fin.

L'exemple suivant analyse UMP_consentModeValues, active Google Analytics si tous les objectifs sont GRANTED ou ne s'appliquent pas, et désactive la collecte Analytics dans le cas contraire:

Java

// Helper function that sets Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
private void maybeReEnableAnalyticsCollection() {
  String consentModeValues = sharedPreferences.getString("UMP_consentModeValues", null);
  if (shouldReEnableAnalyticsCollection(consentModeValues)) {
    firebaseAnalytics.setAnalyticsCollectionEnabled(true);
  } else {
    firebaseAnalytics.setAnalyticsCollectionEnabled(false);
  }
}

// Helper function to determine whether Analytics collection should be enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.
private boolean shouldReEnableAnalyticsCollection(String consentModeValues) {
  if (consentModeValues.isEmpty()) {
    return false;
  }
  for (int i = 0; i < consentModeValues.length(); i++) {
    char consentModeValue = consentModeValues.charAt(i);
    switch (consentModeValue) {
      case '0':
        // Consent mode data not ready yet.
        return false;
      case 1:
        // Consent mode is granted for this purpose.
        break;
      case '2':
        // Consent is denied for this consent mode purpose.
        return false;
      case '3':
        // Consent does not apply for this purpose at this time.
        break;
      case '4':
        // Consent mode is not configured for this purpose.
        break;
      default:
    // Unexpected value encountered.
        return false;
    }
  }
  // If all checks pass, re-enable Analytics collection.
  return true;
}

Kotlin

// Helper function that may re-enable Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
private fun maybeReEnableAnalyticsCollection() {
    val consentModeValues = sharedPreferences.getString("UMP_consentModeValues", null)
    if (shouldReEnableAnalyticsCollection(consentModeValues)) {
        firebaseAnalytics.setAnalyticsCollectionEnabled(true)
    }
}

// Helper function to determine whether Analytics collection should be re-enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.
private fun shouldReEnableAnalyticsCollection(consentModeValues: String?): Boolean {
    if (consentModeValues.isNullOrEmpty()) {
        return false
    }
    for (consentModeValue in consentModeValues) {
        when (consentModeValue) {
            '0' -> {
                // Consent mode data not ready yet.
                return false
            }
            '1' -> {
                // Consent mode is granted for this purpose.
            }
            '2' -> {
                // Consent is denied for this consent mode purpose.
                return false
            }
            '3' -> {
                // Consent does not apply for this purpose at this time.
            }
            '4' -> {
                // Consent mode is not configured for this purpose.
            }
            else -> {
                // Unexpected value encountered.
                return false
            }
        }
    }
    // If all checks pass, can re-enable Analytics collection.
    return true
}

Swift

// Helper function that may re-enable Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
private func maybeReEnableAnalyticsCollection() {
  let consentModeValues = userDefaults.string(forKey: "UMP_consentModeValues")
  if shouldReEnableAnalyticsCollection(consentModeValues) {
      Analytics.setAnalyticsCollectionEnabled(true)
  }
}

// Helper function to determine whether Analytics collection should be re-enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.   
private func shouldReEnableAnalyticsCollection(_ consentModeValues: String?) -> Bool {
  guard let consentModeValues = consentModeValues, !consentModeValues.isEmpty else {
    return false
}

for consentModeValue in consentModeValues {
  switch consentModeValue {
    case "0":
      // Consent mode data not ready yet.
      return false
    case "1":
      // Consent mode is granted for this purpose.
      break
    case "2":
      // Consent is denied for this consent mode purpose.
      return false
    case "3":
      // Consent does not apply for this purpose at this time.
      break
    case "4":
      // Consent mode is not configured for this purpose.
      break
    default:
      // Unexpected value encountered.
      return false
    }
  }
  // If all checks pass, can re-enable Analytics collection.
  return true
}

Objective-C

// Helper function that may re-enable Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
- (void)maybeReEnableAnalyticsCollection {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *consentModeValues = [defaults stringForKey:@"UMP_consentModeValues"];
    if ([self shouldReEnableAnalyticsCollection:consentModeValues]) {
        [FIRAnalytics setAnalyticsCollectionEnabled:YES];
    }
  }

// Helper function to determine whether Analytics collection should be re-enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.
- (BOOL)shouldReEnableAnalyticsCollection:(NSString *)consentModeValues {
    if (!consentModeValues || [consentModeValues length] == 0) {
        return NO;
    }

    for (NSUInteger i = 0; i < [consentModeValues length]; i++) {
      unichar consentModeValue = [consentModeValues characterAtIndex:i];
      switch (consentModeValue) {
          case '0':
              // Consent mode data not ready yet.
              return NO;
          case '1':
              // Consent mode is granted for this purpose.
                break;
          case '2':
              // Consent is denied for this consent mode purpose.
              return NO;
          case '3':
              // Consent does not apply for this purpose at this time.
              break;
          case '4':
              // Consent mode is not configured for this purpose.
              break;
          default:
              // Unexpected value encountered.
              return NO;
          }
      }
      // If all checks pass, can re-enable Analytics collection.
      return YES;
  }

Appelez maybeReEnableAnalyticsCollection lorsque:

  • les informations sur le consentement sont mises à jour ;
  • le consentement est recueilli.