En resumen: Instrucciones para configurar el envío de eventos reportados a través del SDK de Firebase a AppsFlyer en tu aplicación.
Configuración de eventos en la aplicación
En esta sección se explica cómo configurar y crear eventos en la aplicación con Google Tag Manager (GTM).
Cuando se envía el evento, GTM comprueba si hay una etiqueta configurada para procesar este evento con la ayuda del activador del evento. El activador del evento está configurado para activar la etiqueta cada vez que se envía un evento específico. Si se envía un evento específico y tiene un activador correspondiente, se activa la etiqueta. Cuando se activa la etiqueta, Google Tag Manager recopila todos los datos del evento. Estos datos incluyen el ID de AppsFlyer, el nombre del evento y los parámetros del evento. Tras recopilar todos los datos, Google Tag Manager envía el evento a AppsFlyer.
Creación de variables de eventos para ingresos y precios
Android
- En la clase MainActivity, crea una variable para contener el ID de dispositivo de AppsFlyer:
public static String appsFlyerID;
- De vuelta a la clase MainActivity, en el método
onCreate
y después desuper.onCreate
, pasa el ID de AppsFlyer a la variable:appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);
- En la clase MainActivity, crea una variable para guardar el ID de dispositivo de AppsFlyer:
var appsFlyerID: String? = null
- De vuelta a la clase MainActivity, en el método
onCreate
y después desuper.onCreate
, pasa el valor del ID de AppsFlyer a la variable:override fun onCreate(savedInstanceState: Bundle?) { ... appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this) }
iOS
Para iOS, los parámetros están disponibles en toda la aplicación. Puedes recuperarlos a través de la instancia AppsFlyerTracker.
- ID de dispositivo de AppsFlyer:
[AppsFlyerTracker sharedTracker].getAppsFlyerUID
- ID de aplicación de Apple:
[AppsFlyerTracker sharedTracker].appleAppID
- ID de dispositivo de AppsFlyer:
AppsFlyerTracker.shared().getAppsFlyerUID()
- ID de aplicación de Apple:
AppsFlyerTracker.shared().appleAppID
Adición de eventos en la aplicación
El primer paso es configurar el evento en la aplicación. El evento se envía mediante Firebase Event Logging en caso de que especifiques el ID de AppsFlyer, el nombre del evento y los parámetros del evento. El ID de AppsFlyer se recupera de la variable que se crea en el paso de configuración.
Google Tag Manager usa Firebase Analytics Events para activar eventos de etiquetas. Siempre que se envía un evento a Firebase, Tag Manager lo reconoce y también lo envía a AppsFlyer.
Android
- En la actividad deseada, agrega la declaración de importación para Firebase:
import com.google.firebase.analytics.FirebaseAnalytics;
- Agrega el siguiente código para que se ejecute cada vez que se produzca un evento de compra:
Bundle bundle = new Bundle(); // notice "af_id", this is the name of the event parameter // for AppsFlyer ID that we created in the previous step bundle.putString("af_id", appsFlyerID); bundle.putString("af_revenue", "200"); bundle.putString("af_price", "250"); mFirebaseAnalytics.logEvent("af_purchase", bundle);
- En la actividad deseada, agrega la declaración de importación para Firebase:
import com.google.firebase.analytics.FirebaseAnalytics
- Agrega el siguiente código para que se ejecute cada vez que se produzca un evento de compra:
val bundle = Bundle() // notice "af_id", this is the name of the event parameter // for AppsFlyer ID that we created in the previous step bundle.putString("af_id", appsFlyerID) bundle.putString("af_revenue", "200") bundle.putString("af_price", "250") FirebaseAnalytics.getInstance(this).logEvent("af_purchase", bundle)
iOS
- En la vista a la que se envía el evento, agrega
@import Firebase
- Agrega el siguiente código para que se ejecute cada vez que se produzca un evento de compra:
NSString *id_prefix = @"id";
NSString *apple_app_id = [id_prefix stringByAppendingString:[AppsFlyerTracker sharedTracker].appleAppID];
[FIRAnalytics logEventWithName:@"af_purchase" parameters:@{ @"apple_app_id": apple_app_id, @"af_id": [AppsFlyerTracker sharedTracker].getAppsFlyerUID, @"af_revenue": @250, @"af_price": @375 }];
- En la vista a la que se envía el evento, agrega
import Firebase
- Agrega el siguiente código para que se ejecute cada vez que se produzca un evento de compra:
Analytics.logEvent("af_purchase", parameters: [ "apple_app_id": "id" + AppsFlyerTracker.shared().appleAppID, "af_id": AppsFlyerTracker.shared().getAppsFlyerUID(), "af_revenue": 250, "af_price": 375 ]);
Envío eventos de instalación a Firebase
También puedes enviar eventos de instalación a Firebase con todos los datos relacionados con la instalación.
Android
Para enviar eventos de instalación a Firebase en Android, puedes usar el objeto conversionData
.
Creación del método de envío de eventos
Agrega el siguiente método en la clase AFApplication
justo debajo del método onCreate
:
public void sendInstallToFirebase(Map<String, String> conversionData){
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
Bundle bundle = new Bundle();
bundle.putString("install_time", conversionData.get("install_time") == null ? String.valueOf(new Date().getTime()) : conversionData.get("install_time"));
bundle.putString("click_time", conversionData.get("click_time"));
bundle.putString("media_source", conversionData.get("media_source") == null ? "organic": conversionData.get("media_source"));
bundle.putString("campaign", conversionData.get("campaign") == null ? "organic": conversionData.get("campaign"));
bundle.putString("install_type", conversionData.get("af_status"));
mFirebaseAnalytics.logEvent("install", bundle);
}
Este método acepta un objeto conversionData
. El método comprueba si la hora de instalación, la fuente de medios y la campaña son nulos y, de ser así, establece la hora de instalación en la hora actual y la fuente medios y la campaña como orgánicas. De lo contrario, toma los datos del objeto conversionData
y los envía a Firebase.
Envío del evento de instalación
Agrega el siguiente código en el método onConversionDataSuccess
:
if(conversionData.get("is_first_launch").equals("true")){
sendInstallToFirebase(conversionData);
}
Este código comprueba si es la primera vez que se inicia la aplicación. Si es así, llama al método sendInstallToFirebase
.
Para enviar eventos de instalación a Firebase en Android, puedes usar el objeto conversionData
.
Creación del método de envío de eventos
Agrega el siguiente método en la clase AFApplication
justo debajo del método onCreate
:
fun sendInstallToFirebase(conversionData: Map<String, Any>) {
val bundle = Bundle()
bundle.putString("install_time", conversionData["install_time"]?.toString() ?: Date().time.toString())
bundle.putString("click_time", conversionData["click_time"]?.toString())
bundle.putString("media_source", conversionData["media_source"]?.toString() ?: "organic")
bundle.putString("campaign", conversionData["campaign"]?.toString() ?: "organic")
bundle.putString("install_type", conversionData["af_status"]?.toString())
FirebaseAnalytics.getInstance(this).logEvent("install", bundle)
}
Este método acepta un objeto conversionData
. El método comprueba si la hora de instalación, la fuente de medios y la campaña son nulos y, de ser así, establece la hora de instalación en la hora actual y la fuente medios y la campaña como orgánicas. De lo contrario, toma los datos del objeto conversionData
y los envía a Firebase.
Envío del evento de instalación
Agrega el siguiente código en el método onConversionDataSuccess
:
if(conversionData?.get("is_first_launch") == true){
sendInstallToFirebase(conversionData);
}
Este código comprueba si es la primera vez que se inicia la aplicación. Si es así, llama al método sendInstallToFirebase
.
Nota: A partir del SDK V5, onConversionDataSuccess
es el nombre del método para obtener los datos de conversión. Si estás utilizando una versión del SDK inferior a 5.0.0, el nombre del método es onInstallConversionDataLoaded
. Recomendamos que actualices al SDK 5.0.0. Para aprender más, haz clic aquí.
iOS
Creación del método de envío de eventos
En AppDelegate.m, agrega el siguiente método al final del archivo:
- (void)sendInstallToFirebase:(NSDictionary *)installData{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
NSDate *date = [NSDate date];
NSString *newDate = [dateFormatter stringFromDate:date];
if([[installData objectForKey: @"af_status"] isEqual: @"Organic"]){
[FIRAnalytics logEventWithName:@"install"
parameters:@{
@"install_time": newDate,
@"media_source": @"organic",
@"campaign": @"organic"
}];
}
else {
[FIRAnalytics logEventWithName:@"install"
parameters:@{
@"install_time": [installData objectForKey: @"install_time"],
@"click_time": [installData objectForKey: @"click_time"],
@"install_type": [installData objectForKey: @"af_status"],
@"media_source": [installData objectForKey: @"media_source"],
@"campaign": [installData objectForKey: @"campaign"]
}];
}
}
Este método recibe el objeto installData
y comprueba si la instalación es orgánica o no. Si es orgánica, establece la hora de instalación en la hora actual y la fuente de medios, la campaña y el tipo de instalación como orgánicos.
Si la instalación no es orgánica, el método obtiene los datos de instalación no orgánica pertinentes.
Una vez establecidos los parámetros, el método envía el evento de instalación a Firebase.
Envío del evento de instalación
En AppDelegate.m, en el método didFinishLaunchingWithOptions
, agrega [FIRApp configure]
.
En AppDelegate.m, en el método onConversionDataSuccess
, agrega el siguiente código al final del método:
if([installData objectForKey:@"is_first_launch"]){
[self sendInstallToFirebase: installData];
}
El fragmento de código anterior comprueba si es la primera vez que se inicia la aplicación. Si es así, llama al método sendInstallToFirebase
En AppDelegate.swift, agrega el siguiente método al final del archivo:
func sendInstallToFirebase(_ installData: [AnyHashable : Any]!){
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss"
let _newDate: String = dateFormatter.string(from: date)
if(installData["af_status"] as? String == "Organic"){
Analytics.logEvent("install", parameters: [
"install_time": _newDate,
"media_source": "organic",
"campaign": "organic"
]);
} else {
Analytics.logEvent("install", parameters: [
"install_time": installData["install_time"],
"click_time": installData["click_time"],
"media_source": installData["media_source"],
"campaign": installData["campaign"],
"install_type": installData["af_status"]
]);
}
}
Nota: A partir del SDK V5, onConversionDataSuccess
es el nombre del método para obtener los datos de conversión. Si estás utilizando una versión del SDK inferior a 5.0.0, el nombre del método es onConversionDataReceived
. Recomendamos que actualices al SDK 5.0.0. Para aprender más, haz clic aquí.
Este método acepta el objeto installData
y comprueba si la instalación es orgánica o no. Si es orgánica, establece la hora de instalación en la hora actual y la fuente de medios, la campaña y el tipo de instalación como orgánicos.
Si la instalación no es orgánica, el método obtiene los datos de instalación no orgánica pertinentes.
Una vez establecidos los parámetros, el método envía el evento de instalación a Firebase.
Envío del evento de instalación
En AppDelegate.swift, en el métododidFinishLaunchingWithOptions
, agrega FirebaseApp.configure();
En AppDelegate.swift, en el método onConversionDataSuccess
, agrega el siguiente código al final del método:
if let is_first_launch = data["is_first_launch"] , let launch_code = is_first_launch as? Int {
if(launch_code == 1){
print("First Launch")
sendInstallToFirebase(installData)
} else {
print("Not First Launch")
}
}
Nota: A partir del SDK V5, onConversionDataSuccess
es el nombre del método para obtener los datos de conversión. Si estás utilizando una versión del SDK inferior a 5.0.0, el nombre del método es onConversionDataReceived
. Recomendamos que actualices al SDK 5.0.0. Para aprender más, haz clic aquí.
El fragmento de código anterior comprueba si es la primera vez que se inicia la aplicación. Si es así, llama al método sendInstallToFirebase
Advertencia
Algunas fuentes de medios no permiten que sus datos se compartan con plataformas y servicios de terceros. Si trabajas con partners como Anuncios de Meta, Twitter, Snap, Pinterest, etc., que tienen restricciones para compartir sus datos con plataformas y servicios de terceros, asegúrate de seguir sus lineamientos y eliminar cualquier dato que se encuentre bajo estas restricciones.