Integración con Google Analytics (GA4)

En resumen: La integración de AppsFlyer con Google Analytics (GA4) permite a los anunciantes enviar datos de atribución y eventos seleccionados in-app desde AppsFlyer a GA4. Esta integración funciona con aplicaciones de iOS y Android que ya tienen implementado el SDK de Google Analytics para Firebase.

 ¡Importante!

Esta integración funciona con aplicaciones de iOS y Android que ya tienen implementado el SDK de Google Analytics para Firebase.  Para que la integración tenga éxito, el SDK de AppsFlyer debe recopilar el valor app_instance_id del SDK de Firebase. Lee las instrucciones sobre cómo recuperar el ID de instancia de la aplicación del SDK de Firebase.

¿Cómo funciona?

  • Cuando ocurre una nueva instalación, AppsFlyer envía los detalles del punto de contacto: fuente de medios, nombre de la campaña e ID de la campaña a GA4. También envía el app_instance_id del SDK de Firebase para asegurar que el punto de contacto se registre en GA4 para ese usuario.
  • Cuando ocurre un evento in-app, GA4 atribuirá el evento al último punto de contacto.

Configurar la integración de Google Analytics (GA4)

Sigue las instrucciones a continuación para configurar la integración con Google Analytics (GA4).

1. Selecciona Google Analytics (GA4) en el Partner Marketplace

Requisito previo: Antes de configurar la integración, asegúrate de ponerte en contacto con el partner y abrir una cuenta con ellos.

Para activar o editar la integración:

  1. Para activar: En AppsFlyer, desde el menú lateral, selecciona Colaborar > Partner Marketplace. Para editar: En AppsFlyer, desde el menú lateral, selecciona Colaborar > Integraciones Activas.
  2. Busca Google Analytics (GA4) y selecciónalo.
  3. Haz clic en Configurar integración. Se te dirigirá a la página de configuración de la integración.

La configuración de Google Analytics solo incluye la pestaña Integración.

Para ver una descripción detallada del Encabezado de la Ventana de Configuración del Partner, haz clic aquí.

2. Configurar la integración de GA4 en AppsFlyer

Configura los siguientes ajustes:

  1. En la pestaña de Integración selecciona la aplicación para la integración y haz clic en Activar partner

    Nota: El selector debe estar ON (activado) mientras trabajes con el partner.

    Para más detalles sobre la activación de partners, haz clic aquí.

  2. En ID de la aplicación de Firebase ingresa el identificador de la aplicación de Firebase. Para aprender cómo localizar el ID de la aplicación de Firebase, consulta la documentación de Firebase.
  3. En API Secret ingresa la API Secret para autenticar los postbacks a Google Analytics. Una API Secret se genera a través de la interfaz de usuario de Google Analytics. Para ver, editar o crear un secreto, sigue las instrucciones en la documentación de Google. Cuando se te indique seleccionar un flujo de datos web, elige un flujo de datos de Android o iOS en su lugar.
  4. Activa el ID de usuario del cliente para enviar el ID de usuario del cliente (CUID) en lugar del ID de publicidad (IDFA).
  5. En la sección Postbacks predeterminados, en para usuarios de, selecciona Todas las fuentes de medios, incluyendo orgánico.

    Nota

    El postback de instalación incluye solo los detalles del punto de contacto (fuente de medios, nombre de campaña e ID de campaña).

3. Configurar postbacks de eventos in-app

En la pestaña Integración, mapea los eventos in-app de AppsFlyer a los eventos de Google Analytics (GA4), enviados a través de postbacks.

Nota

  • Los postbacks para eventos in-app de la aplicación móvil enviados a través de S2S no son compatibles actualmente.
  • GA4 no deduplica eventos enviados desde el SDK de Firebase y AppsFlyer. Por lo tanto, recomendamos configurar postbacks de eventos in-app solo para eventos que no se envían ya a GA4 a través del SDK de Firebase.
  1. Activa postbacks de eventos in-app.
  2. Haz clic en Agregar evento para agregar un evento de SDK o de servidor a servidor a la lista. La siguiente tabla describe los campos que debes completar:

    Nombre de parámetro Descripción
    Evento de AppsFlyer

    El nombre del evento, tal como lo recibió AppsFlyer, ya sea del SDK integrado en tu aplicación o de los eventos servidor a servidor.

    Consejo: ¿No encuentras el evento que estás buscando?

    • Asegúrate de activar el evento en un dispositivo con una instalación no orgánica y vuelve a verificar.
    • Escríbelo en Evento de AppsFlyer, y luego haz clic en Crear personalizado.

    Saber más sobre la asignación de eventos personalizados.

    Asignado al evento de partner

    El ID o nombre único de cada evento, tal y como lo defina el partner. Existen varias configuraciones de asignación:

    • Campo de texto: Obtén el ID del evento correspondiente del partner.
    • Cuadro desplegable: Selecciona el evento de AppsFlyer predefinido más adecuado.
    • Tal como está: Envía los eventos tal como están, sin asignación de nombres.
    para usuarios de

    Selecciona la opción de envío para el evento:

    • Todas las fuentes de medios, incluidas las orgánicas: Envía postbacks para eventos atribuidos a cualquier partner, así como eventos orgánicos.
    incluyendo
    • Sin datos (por defecto): Envía solo el evento en sí sin ningún valor de evento.
    • Valores e ingresos: Envía todos los parámetros del evento, incluyendo el valor de los ingresos (si existe en el evento).
    • Valores sin ingresos: Envía todos los parámetros excluyendo el valor de los ingresos.
  3. [Opcional] Haz clic en el ícono Añadir condición (condition-2.png) para establecer condiciones para un evento.
  4. Haz clic en Guardar integración.
  5. Enviar el mapeo de postback de eventos

4. Envía a tu desarrollador el mapeo de eventos de postback

Después de haber configurado el mapeo de eventos in-app, envía a tu desarrollador una tabla donde cada evento mapeado corresponda a una fila con las siguientes columnas:

  • Evento AF: Nombre del evento de AppsFlyer.
  • Asignado al evento de Google: Nombre del evento en Google Analytics.

     ¡Importante!

    No utilices ninguno de los eventos reservados de Google como nombres para eventos personalizados de Google Analytics.

  • Parámetros del evento AF (OBLIGATORIO): Parámetros de evento de AppsFlyer predefinidos que deben incluirse en el postback de evento enviado a Google Analytics.

     ¡Importante!

    Es obligatorio incluir todos los parámetros de evento AF predefinidos dentro de la definición del evento exactamente como se enumeran en la tabla; no hacerlo resultará en que Google Analytics rechace el postback.

La tabla de mapeo de eventos

La siguiente tabla incluye todos los eventos de Google Analytics y sus parámetros predefinidos de AppsFlyer. Envía a tu desarrollador una tabla que contenga solo los eventos que has mapeado.

 

Nombre recomendado por AF (Opcional) El nombre del evento de Google Ads Parámetros de evento predefinidos de AF (OBLIGATORIO)
af_add_payment_info add_payment_info af_currency, af_revenue, af_price, af_content_id, af_content
  add_shipping_info af_currency, af_revenue, af_price, af_content_id, af_content
af_add_to_cart add_to_cart af_currency, af_revenue, af_price, af_content_id, af_content
af_add_to_wishlist add_to_wishlist af_currency, af_revenue, af_price, af_content_id, af_content
af_initiated_checkout begin_checkout af_currency, af_revenue, af_price, af_content_id, af_content
  campaign_details campaign id, campaign name
af_spent_credits earn_virtual_currency af_revenue
  generate_lead af_currency,af_revenue
  join_group  
af_level_achieved level_up  
af_login login  
  post_score af_user_score
af_purchase purchase af_currency, af_revenue, af_price, af_content_id, af_content, af_receipt_id
  refund af_currency, af_revenue, af_price, af_content_id, af_content, af_receipt_id
  remove_from_cart af_currency, af_revenue, af_price, af_content_id, af_content
  screen_view  
af_search search  
  select_content  
  select_item af_price, af_content_id, af_content
  select_promotion af_price, af_content_id, af_content
  share  
  sign_up  
  spend_virtual_currency af_revenue
  tutorial_begin  
af_tutorial_completion tutorial_complete  
af_achievement_unlocked Unlock_achievement af_achievement_id
  view_cart af_currency, af_revenue, af_price, af_content_id, af_content
  view_item af_currency, af_revenue, af_price, af_content_id, af_content
  view_item_list af_price, af_content_id, af_content
  view_promotion af_currency, af_revenue, af_price, af_content_id, af_content
  view_search_results  
af_ad_view ad_impression af_currency, af_revenue

Nombres reservados de eventos de Google

Los siguientes nombres de eventos están reservados y no se pueden usar como nombres de eventos personalizados:

  • ad_activeview
  • ad_click
  • ad_exposure
  • ad_query
  • ad_reward
  • adunit_exposure
  • app_clear_data
  • app_exception
  • app_install
  • app_remove
  • app_store_refund
  • app_update
  • app_upgrade
  • dynamic_link_app_open
  • dynamic_link_app_update
  • dynamic_link_first_open
  • error
  • firebase_campaign
  • firebase_in_app_message_action
  • firebase_in_app_message_dismiss
  • firebase_in_app_message_impression
  • first_open
  • first_visit
  • in_app_purchase
  • notification_dismiss
  • notification_foreground
  • notification_open
  • notification_receive
  • notification_send
  • os_update
  • session_start
  • user_engagement

5. Recuperar el ID de instancia de la aplicación en el SDK de AppsFlyer

El ID de instancia de la aplicación identifica de manera única una instalación específica de una aplicación de Firebase. Este valor debe ser recuperado por el SDK del SDK de Firebase.

Deja que tu desarrollador implemente el código para:

  1. Recoger el campo app_instance_id de Firebase.
  2. Llama a setAddiotionalData, antes de la primera apertura, para incluir el ID de instancia de la aplicación en instalaciones, sesiones y eventos in-app.
Android nativo iOS nativo Unity React nativo

Kotlin


FirebaseAnalytics.getInstance(this).appInstanceId.addOnCompleteListener { task ->
   if (task.isSuccessful) {
       AppsFlyerLib.getInstance().setAdditionalData("app_instance_id", task.result)
    }
}

 

Java


FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(task -> {
       if (task.isSuccessful()) {
           AppsFlyerLib.getInstance().setAdditionalData("app_instance_id", task.getResult());
       }
  });

Referencia de API: setAdditionalData

iOS nativo


let appInstanceId = Analytics.appInstanceID()
    AppsFlyerLib.shared().customData = ["app_instance_id": appInstanceId]

 

Objective C


(void) fetchAnalyticsInstanceId {
           NSString *instanceID = [FIRAnalytics appInstanceID];
           [[AppsFlyerLib shared] setAdditionalData:@{@"app_instance_id": instanceID}];
}

Referencia de API: customData


using Firebase.Analytics;
    public class AnalyticsManager : MonoBehaviour
    {
        private async void Start()
        {
           AppsFlyer.initSDK(devKey, appID, this);
           string appInstanceId = await FirebaseAnalytics.GetAnalyticsInstanceIdAsync();
           Dictionary <string, string> customData = new Dictionary<string, string>();
           customData.Add("app_instance_id", appInstanceId);
           AppsFlyer.setAdditionalData(appInstanceId);
           AppsFlyer.startSDK();
        }
}

Referencia de API: setAdditionalData

Referencia de API: setAdditionalData

6. Recuperar el ID de sesión de GA4 en el SDK de AppsFlyer

ga_session_id identifica de manera única una sesión de una aplicación de Firebase. Este valor debe ser recuperado del SDK de Firebase y enviado a GA4 utilizando la API setAdditionalData.

Deja que tu desarrollador implemente el código para:

  1. Recoger el campo ga_session_id de Firebase.
  2. Llama a setAdditionalData antes de la primera apertura para incluir el ID de sesión.
  3. Usa la clave ga_session_id al llamar a la API.
Android nativo iOS nativo Unity

Kotlin


FirebaseAnalytics.getInstance(this).sessionId.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        AppsFlyerLib.getInstance().setAdditionalData("ga_session_id", task.result)
    }
}

 

Java


FirebaseAnalytics.getInstance(this).getSessionId().addOnCompleteListener(task -> {
    if (task.isSuccessful()) {
        AppsFlyerLib.getInstance().setAdditionalData("ga_session_id", task.getResult());
    }
});

Referencia de API: setAdditionalData

Swift


if #available(iOS 14.0, *) {
    Analytics.sessionID { sessionID, error in
        if let sessionID = sessionID {
            AppsFlyerLib.shared().customData = ["ga_session_id": sessionID]
        }
    }
}

 

Objective-C


- (void)fetchAnalyticsSessionId {
    if (@available(iOS 14.0, *)) {
        [FIRAnalytics sessionIDWithCompletion:^(NSString * _Nullable sessionID, NSError * _Nullable error) {
            if (sessionID) {
                [[AppsFlyerLib shared] setAdditionalData:@{@"ga_session_id": sessionID}];
            }
        }];
    }
}

Referencia de API: customData


using Firebase.Analytics;
using System.Threading.Tasks;
using AppsFlyerSDK;
using UnityEngine;
using System.Collections.Generic;

public class AnalyticsManager : MonoBehaviour
{
    private async void Start()
    {
        AppsFlyer.initSDK("yourDevKey", "yourAppID", this);

        // Get session ID
        string sessionId = await FirebaseAnalytics.GetSessionIdAsync();

        Dictionary<string, string> customData = new Dictionary<string, string>();
        customData.Add("ga_session_id", sessionId);
        AppsFlyer.setAdditionalData(customData);

        AppsFlyer.startSDK();
    }
}

Referencia de API: setAdditionalData

7. Valida la integración de GA4

Asegúrate de que los eventos en los postbacks que envías a GA4 estén registrados y leídos por Google Analytics. Hay dos métodos que los anunciantes pueden usar para ver sus datos:

  • Usando Exploraciones de GA4, puedes explorar los datos de eventos en bruto con todos los parámetros asociados. Requisito previo: La exportación de Big Query debe estar configurada en tu propiedad)
  • El reporte de eventos permite a los anunciantes ver sus eventos de postback. El reporte se puede encontrar en una o más colecciones de reportes.
    Por ejemplo, los reportes de eventos se pueden encontrar en la colección Ciclo de vida o en la colección Reportes de juegos bajo Engagement > Eventos
    Para más información sobre el reporte de eventos, consulta la documentación de Google.
  • El reporte de adquisición de tráfico te ayuda a entender de dónde provienen los visitantes de tu sitio web y aplicación.

    Bajo la colección Ciclo de vida, ve a Adquisición > Adquisición de tráfico).

    Para más información sobre el reporte de adquisición de tráfico, consulta la documentación de Google.