Num relance: Instruções para configurar o envio de eventos relatados via Firebase SDK para a AppsFlyer em seu app.
Configurar eventos no app
Esta seção aborda a forma de configurar e criar eventos na aplicação com o Google Tag Manager (GTM).
Quando o evento é enviado, o GTM verifica se existe uma etiqueta configurada para processar o evento com a ajuda do acionador de eventos. O acionador de eventos é definido para disparar a etiqueta sempre que um evento específico for enviado. Se um evento específico for enviado e tiver um acionador correspondente, a etiqueta é ativada. Quando a etiqueta é ativada, o Google Tag Manager recolhe todos os dados do evento. Esses dados incluem o ID da AppsFlyer, o nome do evento e os parâmetros do evento. Depois de recolher todos os dados, o Google Tag Manager envia o evento para a AppsFlyer.
Criação de variáveis de evento para receita e preço
Android
- Na classe MainActivity, crie uma variável para guardar o ID do dispositivo da AppsFlyer:
public static String appsFlyerID;
- De volta à classe MainActivity, no método
onCreate
e depois desuper.onCreate
, passe o ID da AppsFlyer para a variável:appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);
- Na classe MainActivity, crie uma variável para guardar o ID do dispositivo da AppsFlyer:
var appsFlyerID: String? = null
- De volta à classe MainActivity, no método
onCreate
e apóssuper.onCreate
, passe o valor de ID da AppsFlyer para a variável:override fun onCreate(savedInstanceState: Bundle?) { ... appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this) }
iOS
Para iOS, os parâmetros estão disponíveis em toda o app. Pode recuperá-los através da instância do AppsFlyerTracker.
- appsflyer_device_id
[AppsFlyerTracker sharedTracker].getAppsFlyerUID
- ID do app da Apple -
[AppsFlyerTracker sharedTracker].appleAppID
- appsflyer_device_id
AppsFlyerTracker.shared().getAppsFlyerUID()
- ID do app da Apple -
AppsFlyerTracker.shared().appleAppID
Adicionar eventos na aplicação
O primeiro passo é configurar o evento na aplicação. O evento é enviado usando o Firebase Event Logging. No evento, você especifica o ID da AppsFlyer, o nome do evento e os parâmetros do evento. O ID da AppsFlyer é recuperado da variável que é criada na etapa de configuração.
O Google Tag Manager utiliza os eventos do Firebase Analytics para acionar eventos de tag. Sempre que um evento é enviado para o Firebase, o Tag Manager reconhece o evento e envia-o também para a AppsFlyer.
Android
- Na atividade desejada, adicione a declaração de importação para o Firebase:
import com.google.firebase.analytics.FirebaseAnalytics;
- Adicione o seguinte código para ser executado sempre que ocorrer um 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);
- Na atividade desejada, adicione a declaração de importação para o Firebase:
import com.google.firebase.analytics.FirebaseAnalytics
- Adicione o seguinte código para ser executado sempre que ocorrer um 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
- Na visualização para a qual o evento é enviado, adicione
@import Firebase
- Adicione o seguinte código para ser executado sempre que ocorrer um 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 }];
- Na visualização para a qual o evento é enviado, adicione
import Firebase
- Adicione o seguinte código para ser executado sempre que ocorrer um 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 ]);
Enviando eventos de instalação para o Firebase
Você também pode enviar eventos de instalação para o Firebase com todos os dados relacionados à instalação.
Android
Para enviar eventos de instalação para o Firebase no Android, pode utilizar o objeto conversionData
.
Criar o método de envio de eventos
Adicione o seguinte método na classe AFApplication
logo abaixo do 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);
}
Esse método aceita um objeto conversionData
. O método verifica se a hora de instalação, a fonte de mídia e a campanha são nulas e, em caso afirmativo, define a hora de instalação como a hora atual e a fonte de mídia e a campanha como orgânicas. Caso contrário, obtém os dados do objeto conversionData
e envia-os para o Firebase.
Envio do evento de instalação
Adicione o seguinte código no método onConversionDataSuccess
:
if(conversionData.get("is_first_launch").equals("true")){
sendInstallToFirebase(conversionData);
}
Este código verifica se esta é a primeira vez que a aplicação é lançada. Em caso afirmativo, chama o método sendInstallToFirebase
.
Para enviar eventos de instalação para o Firebase no Android, pode utilizar o objeto conversionData
.
Criar o método de envio de eventos
Adicione o seguinte método na classe AFApplication
logo abaixo do 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)
}
Esse método aceita um objeto conversionData
. O método verifica se a hora de instalação, a fonte de mídia e a campanha são nulas e, em caso afirmativo, define a hora de instalação como a hora atual e a fonte de mídia e a campanha como orgânicas. Caso contrário, obtém os dados do objeto conversionData
e envia-os para o Firebase.
Envio do evento de instalação
Adicione o seguinte código no método onConversionDataSuccess
:
if(conversionData?.get("is_first_launch") == true){
sendInstallToFirebase(conversionData);
}
Este código verifica se esta é a primeira vez que a aplicação é lançada. Em caso afirmativo, chama o método sendInstallToFirebase
.
Nota: A partir do SDK V5, onConversionDataSuccess
é o nome do método para obter dados de conversão. Se você estiver usando uma versão do SDK abaixo de 5.0.0, o nome do método será onConversionDataReceived. Recomendamos que você atualize para o SDK 5.0.0. Clique aqui para saber mais.
iOS
Criar o método de envio de eventos
Em AppDelegate.m, adicione o seguinte método no final do ficheiro:
- (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 recebe o objeto installData
e verifica se a instalação é orgânica ou não. Se for orgânico, define a hora de instalação para a hora atual e a fonte de multimídia, a campanha e o tipo de instalação para orgânico.
Se a instalação for não orgânica, o método obtém os dados de instalação não orgânica relevantes.
Uma vez definidos os parâmetros, o método envia o evento de instalação para o Firebase.
Envio do evento de instalação
Em AppDelegate.m, no método didFinishLaunchingWithOptions
, adicione [FIRApp configure]
Em AppDelegate.m, no método onConversionDataSuccess
, adicione o seguinte código no final do método:
if([installData objectForKey:@"is_first_launch"]){
[self sendInstallToFirebase: installData];
}
O fragmento de código acima verifica se esta é a primeira vez que a aplicação é lançada. Se for, chama o método sendInstallToFirebase
.
Em AppDelegate.swift, adicione o seguinte método no final do ficheiro:
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 do SDK V5, onConversionDataSuccess
é o nome do método para obter dados de conversão. Se você estiver usando uma versão do SDK abaixo de 5.0.0, o nome do método será onConversionDataReceived. Recomendamos que você atualize para o SDK 5.0.0. Clique aqui para saber mais.
Este método aceita o objeto installData
e verifica se a instalação é orgânica ou não. Se for orgânico, define a hora de instalação para a hora atual e a fonte de multimídia, a campanha e o tipo de instalação para orgânico.
Se a instalação for não orgânica, o método obtém os dados de instalação não orgânica relevantes.
Uma vez definidos os parâmetros, o método envia o evento de instalação para o Firebase.
Envio do evento de instalação
Em AppDelegate.swift, no método didFinishLaunchingWithOptions
, adicione FirebaseApp.configure();
Em AppDelegate.swift, no método onConversionDataSuccess
, adicione o seguinte código no final do 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 do SDK V5, onConversionDataSuccess
é o nome do método para obter dados de conversão. Se você estiver usando uma versão do SDK abaixo de 5.0.0, o nome do método será onConversionDataReceived. Recomendamos que você atualize para o SDK 5.0.0. Clique aqui para saber mais.
O fragmento de código acima verifica se esta é a primeira vez que a aplicação é lançada. Se for, chama o método sendInstallToFirebase
.
Aviso
Algumas fontes de mídia não permitem que os seus dados sejam compartilhados com plataformas e serviços de terceiros. Se você estiver trabalhando com parceiros, como Facebook, Twitter, Snap, Pinterest etc., que têm restrições definidas no compartilhamento de seus dados com plataformas e serviços de terceiros, certifique-se de seguir suas diretrizes e remover quaisquer dados que estiverem sob essas restrições.