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é
- AppsFlyer prend très au sérieux votre vie privée et celle de vos utilisateurs.
- Nous n'autorisons ni la collecte ni le transfert d'informations personnelles identifiables depuis la plateforme AppsFlyer.
- Pour respecter la confidentialité de vos utilisateurs, pensez à concevoir le CUID sans y inclure la moindre information qui identifie directement l'utilisateur. Par exemple, le CUID ne doit pas contenir l'adresse e-mail de l'utilisateur, ni son nom, numéro de téléphone, numéro de sécurité sociale, etc.
- Documentation connexe : les meilleures pratiques de Google pour ne pas envoyer d'informations personnellement identifiables (PII)
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é avantstart
, 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.
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 :
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);
}
}
class AFApplication: Application() {
private val afDevKey = ""
override fun onCreate() {
super.onCreate()
val conversionDataListener = object: 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(afDevKey, conversionDataListener, this)
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 :
[AppsFlyerLib shared].customerUserID = @"my user id";
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é avantstart
, 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.
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 :
NSString *customerUserID = [AppsFlyerLib shared].customerUserID;
let customerUserID = AppsFlyerLib.shared().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 :
- (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
}
}
func applicationDidBecomeActive(_ application: UIApplication) {
let customUserId = UserDefaults.standard.string(forKey: "customUserId") // your logic to retrieve CUID
if(customUserId != nil && customUserId != ""){
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.