Données de conversion
Dans ce guide, vous apprendrez comment obtenir des données de conversion avec AppsFlyerConversionListener
, et vous pourrez consulter des exemples pour l'utilisation des données de conversion.
En savoir plus sur les données de conversion.
Avant de commencer
Dans les exemples de code suivants, vous devez importer AppsFlyerLib
and AppsFlyerConversionListener
:
import com.appsflyer.AppsFlyerLib;
import com.appsflyer.AppsFlyerConversionListener;
Configuration de AppsFlyerConversionListener dans le SDK Android
AppsFlyerConversionListener overview
The AppsFlyerConversionListener
vous permet d'écouter les conversions.
Si vous implémentez et enregistrez AppsFlyerConversionListener
Lors de l'appel à init
, son appel onConversionDataSuccess
est invoqué à chaque fois :
- Un utilisateur a ouvert l'app
- Un utilisateur fait passer l'app au premier plan
Si, pour une raison x ou y, le SDK ne peut pas récupérer les données de conversion, onConversionDataFail
is invoked.
Accès aux données d'attribution
Lorsqu'il est invoqué, onConversionDataSuccess
renvoie un Map
(appelé conversionDataMap
dans cet exemple) qui contient les données de conversion pour cette installation. Les données de conversion sont mises en cache la première fois que onConversionDataSuccess
est appelé et sera identique lors des appels suivants.
Organic vs. Non-organic conversions
Une conversion peut être organique ou non organique :
- Une conversion organique est une conversion non attribuée qui est généralement le résultat d'une installation directe à partir d'un app store.
- Une conversion non organique est une conversion attribuée à une source média.
Vous pouvez connaître le type de conversion en consultant la valeur de af_status
dans la charge utile de onConversionDataSuccess
. Cela peut être l'une des valeurs suivantes :
Organic
Non-organic
Exemple
import com.appsflyer.AppsFlyerConversionListener;
import com.appsflyer.AppsFlyerLib;
import com.appsflyer.AppsFlyerLibCore.LOG_TAG;
AppsFlyerConversionListener conversionListener = new AppsFlyerConversionListener() {
@Override
public void onConversionDataSuccess(Map<String, Object> conversionDataMap) {
for (String attrName : conversionDataMap.keySet())
Log.d(LOG_TAG, "Conversion attribute: " + attrName + " = " + conversionDataMap.get(attrName));
String status = Objects.requireNonNull(conversionDataMap.get("af_status")).toString();
if(status.equals("Organic")){
// Business logic for Organic conversion goes here.
}
else {
// Business logic for Non-organic conversion goes here.
}
}
@Override
public void onConversionDataFail(String errorMessage) {
Log.d(LOG_TAG, "error getting conversion data: " + errorMessage);
}
@Override
public void onAppOpenAttribution(Map<String, String> attributionData) {
// Must be overriden to satisfy the AppsFlyerConversionListener interface.
// Business logic goes here when UDL is not implemented.
}
@Override
public void onAttributionFailure(String errorMessage) {
// Must be overriden to satisfy the AppsFlyerConversionListener interface.
// Business logic goes here when UDL is not implemented.
Log.d(LOG_TAG, "error onAttributionFailure : " + errorMessage);
}
};
import com.appsflyer.AppsFlyerConversionListener
import com.appsflyer.AppsFlyerLib
import com.appsflyer.AppsFlyerLibCore.LOG_TAG
class AFApplication : Application() {
// ...
override fun onCreate() {
super.onCreate()
val conversionDataListener = object : AppsFlyerConversionListener{
override fun onConversionDataSuccess(data: MutableMap<String, Any>?) {
// ...
}
override fun onConversionDataFail(error: String?) {
Log.e(LOG_TAG, "error onAttributionFailure : $error")
}
override fun onAppOpenAttribution(data: MutableMap<String, String>?) {
// Must be overriden to satisfy the AppsFlyerConversionListener interface.
// Business logic goes here when UDL is not implemented.
data?.map {
Log.d(LOG_TAG, "onAppOpen_attribute: ${it.key} = ${it.value}")
}
}
override fun onAttributionFailure(error: String?) {
// Must be overriden to satisfy the AppsFlyerConversionListener interface.
// Business logic goes here when UDL is not implemented.
Log.e(LOG_TAG, "error onAttributionFailure : $error")
}
}
AppsFlyerLib.getInstance().init(devKey, conversionDataListener, applicationContext)
AppsFlyerLib.getInstance().start(this)
}
}
Deep linking différé (méthode héritée)
Lorsque l'app est ouverte via le deep linking différé, la charge utile de onConversionDataSuccess
renvoie les données du deep linking, accompagnées des données d'attribution.
- La pratique recommandée consiste à implémenter le deep linking avec le deep linking unifié (DLU)
- Pour les clients existants et à titre de référence, voici notre guide du deep linking Android hérité, utilisant
AppsFlyerConversionListener
.
Mis(e) à jour Il y a 3 mois