Medición de campañas

En este documento, se proporciona una descripción general de cómo medir las campañas y las fuentes de tráfico con la versión 4 del SDK de Google Analytics para Android.

Descripción general

La medición de campañas en Google Analytics permite atribuir las campañas y las fuentes de tráfico a la actividad del usuario en tu aplicación. Estas opciones están disponibles para la atribución de campañas y fuentes de tráfico en la versión 4 del SDK de Google Analytics para Android:

En las siguientes secciones, se describirá cuándo y cómo implementar cada tipo de medición de campaña en tu app.

Atribución de campaña de Google Play

La medición de campañas de Google Play te permite ver qué campañas y fuentes de tráfico envían a los usuarios a descargar tu app desde Google Play Store. Se recomienda que todos los desarrolladores implementen la medición de campañas en Google Play Store.

Cómo implementar la atribución de campaña de Google Play

Google Play Store proporciona una API de Install Referrer para que los desarrolladores puedan recuperar de forma segura contenido de referencia desde Google Play. Esta API muestra el valor del parámetro de referencia que se usó para llegar a la página de Google Play Store de tu app, si estaba presente.

Para atribuir la descarga de una aplicación a una campaña, debes agregar un parámetro de referencia a cualquier vínculo que dirija a Google Play Store y agregar la API de referencia de instalación de Play a tu app para recibir y configurar la información de la campaña que se incluye en el intent en tu rastreador de Google Analytics.

1. Quita el receptor de Google Analytics del archivo AndroidManifest.xml.

Si también tienes implementado el receptor de Google Tag Manager, quítalo de tu manifiesto.

2. Agrega una dependencia en la biblioteca de la API de Install Referrer.

Para agregar la dependencia, incluye lo siguiente en el archivo build.gradle:

dependencies {
    ...
    implementation 'com.android.installreferrer:installreferrer:1.1'
}

3. Llama a la API de Install Referrer en la actividad de inicio de tu app.

Usa la API de Install Referrer para recuperar la URL de referencia del paquete de la app instalada y, luego, pasa el valor de la URL a un receptor de Google Analytics o Google Tag Manager. Sigue una implementación similar a la que se indica a continuación para usar la API de Install Referrer en la actividad de inicio de tu app.

Si tienes varios puntos de entrada a la app, como vínculos directos a partes específicas, puedes implementar los métodos prescritos en un elemento ActivityLifecycleListener que se activa con ActivityLifecycleCallbacks.

package com.example.myapplication;

import static com.android.installreferrer.api.InstallReferrerClient.InstallReferrerResponse;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;

import com.android.installreferrer.api.InstallReferrerClient;
import com.android.installreferrer.api.InstallReferrerStateListener;
import com.android.installreferrer.api.ReferrerDetails;
import com.google.android.gms.analytics.CampaignTrackingReceiver;
import com.google.tagmanager.InstallReferrerReceiver;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

public class MainActivity extends AppCompatActivity {

    private final Executor backgroundExecutor = Executors.newSingleThreadExecutor();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkInstallReferrer();
    }

    // TODO: Change this to use whatever preferences are appropriate. The install referrer should
    // only be sent to the receiver once.
    private final String prefKey = "checkedInstallReferrer";

    void checkInstallReferrer() {
        if (getPreferences(MODE_PRIVATE).getBoolean(prefKey, false)) {
            return;
        }

        InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(this).build();
        backgroundExecutor.execute(() -> getInstallReferrerFromClient(referrerClient));
    }

    void getInstallReferrerFromClient(InstallReferrerClient referrerClient) {

        referrerClient.startConnection(new InstallReferrerStateListener() {
            @Override
            public void onInstallReferrerSetupFinished(int responseCode) {
                switch (responseCode) {
                    case InstallReferrerResponse.OK:
                        ReferrerDetails response = null;
                        try {
                            response = referrerClient.getInstallReferrer();
                        } catch (RemoteException e) {
                            e.printStackTrace();
                            return;
                        }
                        final String referrerUrl = response.getInstallReferrer();


                        // TODO: If you're using GTM, call trackInstallReferrerforGTM instead.
                        trackInstallReferrer(referrerUrl);


                        // Only check this once.
                        getPreferences(MODE_PRIVATE).edit().putBoolean(prefKey, true).commit();

                        // End the connection
                        referrerClient.endConnection();

                        break;
                    case InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                        // API not available on the current Play Store app.
                        break;
                    case InstallReferrerResponse.SERVICE_UNAVAILABLE:
                        // Connection couldn't be established.
                        break;
                }
            }

            @Override
            public void onInstallReferrerServiceDisconnected() {

            }
        });
    }

    // Tracker for Classic GA (call this if you are using Classic GA only)
    private void trackInstallReferrer(final String referrerUrl) {
        new Handler(getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                CampaignTrackingReceiver receiver = new CampaignTrackingReceiver();
                Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
                intent.putExtra("referrer", referrerUrl);
                receiver.onReceive(getApplicationContext(), intent);
            }
        });
    }

    // Tracker for GTM + Classic GA (call this if you are using GTM + Classic GA only)
    private void trackInstallReferrerforGTM(final String referrerUrl) {
        new Handler(getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                InstallReferrerReceiver receiver = new InstallReferrerReceiver();
                Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
                intent.putExtra("referrer", referrerUrl);
                receiver.onReceive(getApplicationContext(), intent);
            }
        });
    }

}

4. Agrega los parámetros de la campaña de Google Analytics a las URLs de Google Play

A continuación, agrega un parámetro referrer a cualquier URL que se vincule directamente a Google Play Store y establece el valor de ese parámetro en una cadena de parámetros de la campaña de Google Analytics que describan la fuente, como en este ejemplo:

https://play.google.com/store/apps/details?id=com.example.application
&referrer=utm_source%3Dgoogle
%26utm_medium%3Dcpc
%26utm_term%3Drunning%252Bshoes
%26utm_content%3Dlogolink
%26utm_campaign%3Dspring_sale

Para obtener información sobre cómo crear una cadena de parámetros de campaña, usa el Creador de URLs de Google Play o consulta la sección de referencia Parámetros de la campaña.

Atribución general de campaña y fuente de tráfico

Después de que se instala una app, puede iniciarse mediante referencias de campañas publicitarias, sitios web y otras apps. En esta situación, la referencia de fuentes de tráfico o campañas de marketing puede atribuirse a la actividad del usuario en sesiones posteriores si se establecen los parámetros de la campaña en una herramienta de seguimiento directamente con el método setCampaignParamsFromUrl.

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName(screenName);

// In this example, campaign information is set using
// a url string with Google Analytics campaign parameters.
// Note: This is for illustrative purposes. In most cases campaign
//       information would come from an incoming Intent.
String campaignData = "http://examplepetstore.com/index.html?" +
    "utm_source=email&utm_medium=email_marketing&utm_campaign=summer" +
    "&utm_content=email_variation_1";

// Campaign data sent with this hit.
t.send(new HitBuilders.ScreenViewBuilder()
    .setCampaignParamsFromUrl(campaignData)
    .build()
);

Consulta Configuración avanzada para obtener detalles sobre el método getTracker.

Parámetros de la campaña

Los parámetros de campaña se usan para pasar información sobre las fuentes de tráfico y las campañas que llevan usuarios a tu app.

La siguiente tabla contiene los parámetros de campaña disponibles que se pueden usar en Google Play o en la medición general de la campaña:

Parámetro Descripción Ejemplos
utm_source Fuente de la campaña; se usa para identificar un motor de búsqueda, un boletín informativo o cualquier otra fuente utm_source=google
utm_medium Medio de la campaña; se usa para identificar un medio, como el correo electrónico o el costo por clic (CPC) utm_medium=cpc
utm_term Término de la campaña; se utiliza con la búsqueda pagada para proporcionar las palabras clave para los anuncios utm_term=running+shoes
utm_content Contenido de la campaña; se usa para pruebas A/B y anuncios segmentados por contenido para diferenciar anuncios o vínculos que dirigen a la misma URL utm_content=logolink
utm_content=textlink
utm_campaign Nombre de la campaña; se usa para el análisis de palabras clave para identificar la promoción de un producto específico o una campaña estratégica utm_campaign=spring_sale
gclid Parámetro del etiquetado automático de Google Ads; se usa para medir los anuncios. Este valor se genera de forma dinámica y nunca se debe modificar.

Creador de URLs de Google Play

Usa la siguiente herramienta para generar URLs para la medición de campañas de Google Play.