Medición de campañas: SDK de Android

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 3 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 el 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.

Parámetros de 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_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
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
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.

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 se puede atribuir a la actividad del usuario en sesiones posteriores si se configuran directamente los campos de la campaña en una herramienta de seguimiento.

Por ejemplo, la siguiente implementación verifica el intent que inició la app para los parámetros de campaña de Google Analytics:

package com.example.app;

import com.google.analytics.tracking.android.Fields;
import com.google.analytics.tracking.android.GoogleAnalytics;
import com.google.analytics.tracking.android.MapBuilder;
import com.google.analytics.tracking.android.Tracker;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

import java.util.Map;

/*
 * An example of how to implement general campaign attribution in Android.
 *
 * If the intent that launched the Activity has a URI, parse it for campaign
 * parameters and send the referring data to Google Analytics.
 */
public class MainActivity extends Activity {

  private static final String GA_PROPERTY_ID = "UA-XXXX-Y";
  private static final String SCREEN_LABEL = "Home Screen";

  // This examples assumes the use of Google Analytics campaign
  // "utm" parameters, like "utm_source".
  private static final String CAMPAIGN_SOURCE_PARAM = "utm_source";

  Tracker mTracker;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mTracker = GoogleAnalytics.getInstance(this).getTracker(GA_PROPERTY_ID);
  }

  @Override
  public void onStart() {
    super.onStart();

    // Set screen name on tracker so that all subsequent hits will use this
    // value.
    mTracker.set(Fields.SCREEN_NAME, SCREEN_LABEL);

    // Get the intent that started this Activity.
    Intent intent = this.getIntent();
    Uri uri = intent.getData();

    // Send a screenview using any available campaign or referrer data.
    MapBuilder.createAppView().setAll(getReferrerMapFromUri(uri));
  }

  /*
   * Given a URI, returns a map of campaign data that can be sent with
   * any GA hit.
   *
   * @param uri A hierarchical URI that may or may not have campaign data
   *     stored in query parameters.
   *
   * @return A map that may contain campaign or referrer
   *     that may be sent with any Google Analytics hit.
   */
  Map<String,String> getReferrerMapFromUri(Uri uri) {

    MapBuilder paramMap = new MapBuilder();

    // If no URI, return an empty Map.
    if (uri == null) { return paramMap.build(); }

    // Source is the only required campaign field. No need to continue if not
    // present.
    if (uri.getQueryParameter(CAMPAIGN_SOURCE_PARAM) != null) {

      // MapBuilder.setCampaignParamsFromUrl parses Google Analytics campaign
      // ("UTM") parameters from a string URL into a Map that can be set on
      // the Tracker.
      paramMap.setCampaignParamsFromUrl(uri.toString());

     // If no source parameter, set authority to source and medium to
     // "referral".
     } else if (uri.getAuthority() != null) {

       paramMap.set(Fields.CAMPAIGN_MEDIUM, "referral");
       paramMap.set(Fields.CAMPAIGN_SOURCE, uri.getAuthority());

     }

     return paramMap.build();
  }
}

Como alternativa, si tienes información de la campaña en un formato que no es el de los parámetros de la campaña de Google Analytics, puedes establecerla en un Map y enviarla de forma manual:

// May return null if EasyTracker has not yet been initialized with a property ID.
EasyTracker easyTracker = EasyTracker.getInstance(this);
easyTracker.set(Fields.SCREEN_NAME, "Home Screen");

// In this example, campaign information is set using a Map, rather than
// a url string with Google Analytics campaign parameters.
// Note that Fields.CAMPAIGN_KEYWORD is not necessary for this campaign.
HashMap<String, String> campaignData = new HashMap<String, String>();
campaignData.put(Fields.CAMPAIGN_SOURCE, "email");
campaignData.put(Fields.CAMPAIGN_MEDIUM, "email marketing");
campaignData.put(Fields.CAMPAIGN_NAME, "summer_campaign");
campaignData.put(Fields.CAMPAIGN_CONTENT, "email_variation_1");

MapBuilder paramMap = MapBuilder.createAppView();

// Campaign data sent with this hit.
// Note that the campaign data is set on the Map, not the tracker.
easyTracker.send(paramMap
    .setAll(campaignData).build()
);

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ñas de Google Play

Cuando se descarga tu app de Google Play Store, esta transmite una INTENT_REFERRER durante la instalación. Este intent contiene el valor del parámetro referrer del vínculo 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 app a una campaña, debes agregar un parámetro referrer a cualquier vínculo que dirija a Google Play Store y agregar un BroadcastReceiver a tu app para recibir y configurar la información de la campaña que se incluye en el intent en tu herramienta de seguimiento de Google Analytics.

Se recomienda que la mayoría de los desarrolladores usen el BroadcastReceiver proporcionado con el SDK. Para implementar la medición de campañas en Google Play Store con el receptor incluido, haz lo siguiente:

1. Agrega el receptor de Google Analytics a tu archivo AndroidManifest.xml. Para agregar el receptor de Google Analytics al manifiesto, copia y pega el siguiente lenguaje de marcado:

<!-- Used for Google Play Store Campaign Measurement-->;
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService" />
<receiver android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>

2. 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.app
&referrer=utm_source%3Dgoogle
%26utm_medium%3Dcpc
%26utm_term%3Dpodcast%252Bapps
%26utm_content%3DdisplayAd1
%26utm_campaign%3Dpodcast%252Bgeneralkeywords

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.

Creador de URLs de Google Play

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