Champ ID utilisateur du client (CUID)

En bref : comparez vos données internes avec les données d'attribution d'AppsFlyer par le champ ID utilisateur du client (CUID).

Implémenter le CUID

Le champ « ID utilisateur du client » (CUID) est un identifiant unique défini par les propriétaires d'app et de sites web.

  • C'est vous qui indiquez le CUID à AppsFlyer en utilisant des API ou des SDK AppsFlyer.
  • AppsFlyer remplit le champ CUID dans les rapports de données brutes en fonction.
  • Utilisez le CUID pour comparer les données d'attribution AppsFlyer avec vos autres données qui utilisent le CUID comme clé.
  • Exemple : un utilisateur avec deux appareils possède le même CUID (« 1234567 »). À chaque fois qu'il effectue un événement sur un appareil, l'événement et le CUID associé sont enregistrés. Ceci permet à l'annonceur d'agréger les données brutes des deux appareils pour avoir une vision globale de l'utilisateur.
  • AppsFlyer utilise le CUID dans ses solutions d'attribution basée sur les personnes et Audiences afin d'améliorer encore la précision et le ciblage.

Conception du CUID et confidentialité

Retarder le lancement du SDK jusqu’à ce que le CUID soit défini

Il est possible d'attendre que le CUID soit défini avant de lancer le SDK. Avant de mettre en œuvre ce principe, prenez en compte les éléments suivants :

  • Avantages :
    • Les données d'attribution sont systématiquement associées à un CUID.
    • Utilisez le CUID pour comparer les données d'attribution avec les autres données présentes dans votre système. 
    • Cela vous permettra une meilleure utilisation et un traitement plus poussé des données qu'AppsFlyer vous envoie.
  • Inconvénients :
    • Les actions et événements effectués par les utilisateurs, y compris les achats et les abonnements, ne sont pas enregistrés dans AppsFlyer tant que le CUID n'est pas défini. Cela peut entraîner des incohérences et ralentir la détection des fraudes (celles-ci n'étant pas toujours détectées avant l’initialisation du SDK).

Remarque : si le démarrage du SDK est retardé jusqu’à ce qu’il y ait un CUID, mais qu’aucun CUID n'a été défini, le SDK ne rapportera aucune donnée (et donc aucune installation).

Paramétrer le CUID

Instructions pour les développeurs du SDK Android

Pour définir votre ID Utilisateur-Client :

public void setCustomerUserId(String id);

Exemple d'utilisation :

AppsFlyerLib.getInstance().setCustomerUserId("myId");

Nous vous recommandons de définir l'ID utilisateur du client au début du flux de l'app, car il est uniquement associé aux évènements rapportés après son installation :

  • Si setCustomerUserId est appelé avant start, l'ID utilisateur du client apparaîtra dans les rapports de données brutes relatifs aux installations et aux évènements.
  • S'il est défini après, l'ID utilisateur du client est uniquement associé aux évènements enregistrés après la définition de l'ID utilisateur du client.
Obtenir l'ID utilisateur du client

Pour éviter de redéfinir la valeur de l'ID utilisateur du client après le premier lancement, et réduire le nombre d'appels à votre serveur afin d'obtenir l'ID utilisateur du client, vous pouvez vérifier si sa valeur est vide ou non en utilisant :

AppsFlyerProperties.getInstance().getString(AppsFlyerProperties.APP_USER_ID)
Retarder l'initialisation du SDK dans l'attente du customerUserID

Il est possible d'attendre que le customerUserID soit défini pour lancer l'initialisation du SDK.

Pour indiquer que le SDK doit retarder l'initialisation dans l'attente de l'ID utilisateur du client, appelez :

AppsFlyerLib.getInstance().waitForCustomerUserId(true);

immédiatement avant la méthode init(). Le reste de l'initialisation du SDK doit rester inchangé.

Une fois le customerUserID fourni, appelez

AppsFlyerLib.getInstance().setCustomerIdAndLogSession("customer_id", this);

afin de fournir au SDK l'ID utilisateur du client approprié et de déclencher le SDK.

Le code doit apparaître comme suit :

Java Kotlin
public class AFApplication extends Application {
  private static final String AF_DEV_KEY = "qrdZGj123456789";
  @Override
  public void onCreate() {
    super.onCreate();
    AppsFlyerConversionListener conversionDataListener = 
    new AppsFlyerConversionListener() {
      ...
    };
    AppsFlyerLib.getInstance().waitForCustomerUserId(true);
    //WARNING! Removing above line doesn't cancel its effect.
    // Replace with this to stop waiting for CUID:
    // AppsFlyerLib.getInstance().waitForCustomerUserId(false);
    AppsFlyerLib.getInstance().init(AF_DEV_KEY, getConversionListener(), getApplicationContext());
    AppsFlyerLib.getInstance().start(this);
    // Do your magic to get the customerUserID
    // ...
    // any AppsFlyer SDK code invoked here will be discarded
   //Call the following API once the customerUserID is available:
 AppsFlyerLib.getInstance().setCustomerIdAndLogSession("customer_id", this);
  }
}

Instructions pour les développeurs du SDK iOS

Pour définir votre ID Utilisateur-Client :

Objective-C Swift
[AppsFlyerLib shared].customerUserID = @"my user id";

Dans iOS, l'ID utilisateur du client doit être défini à chaque lancement d'app. Nous vous recommandons de définir l'ID utilisateur du client au début du flux de l'app, car il est uniquement associé aux évènements rapportés après son installation :

  • Si setCustomerUserId est appelé avant start, l'ID utilisateur du client apparaîtra dans les rapports de données brutes relatifs aux installations et aux évènements.
  • S'il est défini après, l'ID utilisateur du client est uniquement associé aux évènements enregistrés après la définition de l'ID utilisateur du client.
Obtenir l'ID utilisateur du client

Pour éviter de redéfinir la valeur de l'ID utilisateur du client après le premier lancement, et réduire le nombre d'appels à votre serveur afin d'obtenir l'ID utilisateur du client, vous pouvez vérifier si sa valeur est vide ou non en utilisant :

Objective-C Swift
NSString *customerUserID = [AppsFlyerLib shared].customerUserID;
Retarder l'initialisation du SDK dans l'attente du customerUserID

Il est possible d'attendre que l'ID utilisateur client soit défini pour lancer l'initialisation du SDK. Est utile si vous souhaitez que les données d'installation et d'événement contiennent votre ID utilisateur client.

Implémentez le code suivant :

Objective-C Swift
- (void)applicationDidBecomeActive:(UIApplication *)application {
    NSString *customUserId = [[NSUserDefaults standardUserDefaults] stringForKey:@"customerUserId"]; // Your custom logic of retrieving CUID
    if (customUserId != nil && ![customUserId  isEqual: @""]) {
        [AppsFlyerLib shared].customerUserID = customUserId; // Set CUID in AppsFlyer SDK for this session
        [[AppsFlyerLib shared] start]; // Start
    }
}

People-Based Attribution

L'attribution basée sur les personnes (PBA) d'AppsFlyer vous offre une vision élargie de l'impact de vos campagnes web et mobile, les choix stratégiques deviennent plus simples, vous n'avez qu'à faire basculer vos utilisateurs web vers votre app mobile, ou vice versa.

Vous devez définir le même CUID à la fois dans les environnements mobile et web, et ce afin d'activer les analyses comparatives multiplateformes.