Google Analytics SDK для Android версии 1 (устаревшая версия)

SDK Google Analytics для мобильных приложений для Android упрощает внедрение Google Analytics в приложениях для Android. В этом документе описывается, как интегрировать SDK с вашими приложениями.

Обзор SDK

Этот SDK использует модель отслеживания, предназначенную для отслеживания пользователей на традиционных веб-сайтах и ​​взаимодействия с виджетами на традиционных веб-страницах. По этой причине используемые ниже термины отражают традиционную модель отслеживания веб-сайтов и сопоставляются с отслеживанием мобильных приложений. Вы должны быть знакомы с отслеживанием Analytics , чтобы понимать, как работает этот SDK.

Используйте SDK мобильного отслеживания для отслеживания приложений на телефоне со следующими типами взаимодействия Analytics:

Отслеживание просмотров страниц
Просмотр страницы — это стандартный способ измерения объема трафика на традиционном веб-сайте. Поскольку мобильные приложения не содержат HTML-страниц, вы должны решить, когда (и как часто) запускать запрос на просмотр страницы. Кроме того, поскольку запросы просмотра страниц предназначены для составления отчетов о структурах каталогов, вам следует предоставить описательные имена для запросов, чтобы использовать преимущества именования путей к страницам в отчетах о содержании в Analytics. Выбранные вами имена будут указаны в ваших отчетах Analytics в виде путей к страницам, хотя на самом деле они не являются HTML-страницами, но вы можете использовать это в своих интересах, структурируя пути для обеспечения дополнительных группировок для ваших вызовов.
Отслеживание событий
В Analytics события предназначены для отслеживания взаимодействия пользователя с элементами веб-страницы отдельно от запросов просмотра страниц. Вы можете использовать функцию отслеживания событий Google Analytics для совершения дополнительных вызовов, о которых будет сообщено в разделе «Отслеживание событий» интерфейса отчетов Analytics. События группируются по категориям, а также могут использоваться метки для каждого события, что обеспечивает гибкость в отчетности. Например, мультимедийное приложение может иметь действия воспроизведения/остановки/паузы для своей категории видео и назначать метку для каждого имени видео. Затем отчеты Google Analytics будут объединять события для всех событий, отмеченных категорией видео . Дополнительную информацию об отслеживании событий см. в Руководстве по отслеживанию событий.
Отслеживание электронной торговли
Используйте функцию отслеживания электронной торговли, чтобы отслеживать транзакции в корзине покупок и покупки в приложении. Чтобы отслеживать транзакцию, используйте класс Transaction для представления общей информации о покупке, а также класс Item для представления каждого продукта в корзине покупок. После сбора данные можно просмотреть в разделе отчетов по электронной торговле интерфейса Google Analytics. Дополнительную информацию об отслеживании электронной торговли см. в Руководстве по отслеживанию электронной торговли .
Пользовательские переменные
Пользовательские переменные — это парные теги имя-значение, которые вы можете вставить в свой код отслеживания, чтобы уточнить отслеживание Google Analytics. Дополнительную информацию о том, как использовать пользовательские переменные, можно найти в Руководстве по пользовательским переменным .

Начиная

Требования

Чтобы интегрировать возможности отслеживания Google Analytics с вашим приложением для Android, вам потребуется следующее:

Настраивать

  • Добавьте libGoogleAnalytics.jar в каталог /libs вашего проекта.
  • Добавьте следующие разрешения в файл манифеста AndroidManifest.xml вашего проекта:
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

В комплект SDK включен пример приложения, демонстрирующий, как должен выглядеть ваш проект в случае успешной настройки. Не стесняйтесь использовать его в качестве шаблона для своих собственных приложений, интегрированных с Analytics.

Использование SDK

Прежде чем начать использовать SDK, вам необходимо сначала создать бесплатную учетную запись на странице www.google.com/analytics и создать в этой учетной записи новый веб-ресурс, используя поддельный, но описательный URL-адрес веб-сайта (например, http://mymobileapp.mywebsite.com ). . После создания ресурса запишите или сохраните копию идентификатора веб-ресурса, созданного для вновь созданного ресурса.

Вы должны указать своим пользователям либо в самом приложении, либо в ваших условиях обслуживания, что вы оставляете за собой право анонимно отслеживать и сообщать о действиях пользователя внутри вашего приложения. Использование вами Google Analytics SDK дополнительно регулируется Условиями использования Google Analytics , с которыми вы должны согласиться при регистрации учетной записи.

Образцы и лучшие практики

Примеры кода и рекомендации можно найти на сайте code.google.com в разделе проекта Analytics-api-samples .

Библиотека EasyTracker

Доступна библиотека EasyTracker. Он обеспечивает отслеживание уровня приложений и активности практически без усилий по разработке. Вы можете найти его в разделе «Загрузки» проекта Analytics-Api-Samples .

Запуск трекера

Получите синглтон трекера, вызвав GoogleAnalyticsTracker.getInstance() . Затем вызовите его метод startNewSession , передав идентификатор веб-ресурса и отслеживаемую активность. Вы можете вызвать этот метод непосредственно в методе onCreate вашего действия, если ваше приложение имеет только одно действие. Например:

package com.google.android.apps.analytics.sample;

import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", this);

    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);       // Value
      }
    });

    Button createPageButton = (Button)findViewById(R.id.NewPageButton);
    createPageButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
        // scope of session-level.
        tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
        // Track a page view. This is probably the best way to track which parts of your application
        // are being used.
        // E.g.
        // tracker.trackPageView("/help"); to track someone looking at the help screen.
        // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
        // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // Stop the tracker when it is no longer needed.
    tracker.stopSession();
  }
}

Если в вашем приложении есть несколько действий, вы можете использовать библиотеку EasyTracker, представленную в разделе «Загрузки» проекта Analytics-Api-Samples .

Отслеживание просмотров страниц и событий

Отслеживать просмотры страниц и события очень просто: просто вызывайте trackPageView объекта трекера каждый раз, когда вы хотите инициировать просмотр страницы. Вызовите trackEvent , чтобы записать событие. Дополнительную информацию о просмотрах страниц и событиях см. в разделе «Обзор SDK» выше.

Использование пользовательских переменных

Добавить пользовательскую переменную также просто: просто используйте метод setCustomVar , предоставляемый мобильным SDK. Вам нужно заранее спланировать, какие индексы соответствуют каждой пользовательской переменной, чтобы не перезаписывать ранее существовавшую переменную. Дополнительную информацию о пользовательских переменных см. в Руководстве по пользовательским переменным . Обратите внимание, что метод setCustomVar сам по себе не отправляет данные напрямую. Вместо этого данные отправляются вместе со следующим отслеживаемым просмотром страницы или событием. Вам необходимо вызвать setCustomVar прежде чем отслеживать просмотр страницы или событие. Обратите внимание, что область действия пользовательских переменных по умолчанию ограничена страницей.

Использование отслеживания электронной торговли

Существует 4 метода, которые вы можете использовать для включения отслеживания электронной торговли в своем приложении:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Вызов addTransaction и addItem добавляет транзакцию или элемент во внутренний буфер электронной торговли, в который можно добавить дополнительные элементы и транзакции. Только при вызове trackTransactions транзакции и элементы будут отправлены диспетчеру и поставлены в очередь для отправки в Google Analytics.

Чтобы очистить буфер, вы можете вызвать clearTransactions . Примечание. Он не запоминает ни транзакции, ранее отправленные диспетчеру, ни транзакции, уже собранные Google Analytics.

Следующий пример кода поможет вам начать работу. Мы предполагаем, что метод onPurchaseCompleted вызывается при подтверждении или отклонении покупки.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   *
   * @param purchase A PurchaseObject containing all of the transaction information needed to
   *     send the ecommerce hit to Google Analytics.
   */
  public void onPurchaseCompleted(PurchaseObject purchase) {
    tracker.addTransaction(new Transaction.Builder(
        purchase.getTransactionId(),
        purchase.getTotal())
        .setStoreName(purchase.getStoreName())
        .setTotalTax(purchase.getTotalTax())
        .setShippingCost(purchase.getShippingCost())
        .build());
    for (PurchaseLineItem lineItem : purchase.getLineItems()) {
        tracker.addItem(new Item.Builder(
            purchase.getTransactionId(),
            lineItem.getItemSKU(),
            lineItem.getItemCost(),
            lineItem.getQuantity())
            .setItemName(lineItem.getItemName())
            .setItemCategory(lineItem.getItemCategory())
            .build());
    }
    if (purchase.isConfirmed()) {
      tracker.trackTransactions();
    } else {
      // The purchase was denied or failed in some way.  We need to clear out
      // any data we've already put in the Ecommerce buffer.
      tracker.clearTransactions();
    }
  }

Дополнительную информацию об электронной торговле см. в Руководстве по отслеживанию электронной торговли .

Анонимизировать IP

Чтобы анонимизировать информацию об IP-адресе пользователя, используйте метод setAnonymizeIp . Это указывает Google Analytics обезличить информацию, отправленную SDK, удалив последний октет IP-адреса перед ее сохранением.

Вы можете вызвать setAnonymizeIp в любое время.

Установка частоты дискретизации

Вы можете установить частоту дискретизации, используя метод setSampleRate . Если ваше приложение генерирует большой объем трафика Google Analytics, установка частоты выборки может помешать созданию отчетов с использованием выборочных данных. Выборка происходит последовательно среди уникальных пользователей, поэтому при включенной частоте выборки обеспечивается целостность тенденций и отчетов. Метод setSampleRate принимает один параметр int . Допустимыми значениями этого параметра являются любые целые числа от 0 до 100 включительно.

Значение 0 отключает генерацию обращений, а значение 100 отправляет все данные в Google Analytics. Лучше всего вызывать setSampleRate до вызова каких-либо методов отслеживания.

Подробнее о выборке можно узнать из Руководства по концепциям выборки .

Пакетирование хитов

Чтобы сэкономить на подключении и расходе батареи, мы рекомендуем группировать запросы на отслеживание. Вы можете вызвать dispatch объекта отслеживания в любое время, когда захотите выполнить пакетный запрос, и сделать это можно вручную или через определенные промежутки времени.

Известные вопросы

  • Вызов методов GoogleAnalyticsTracker в разных потоках может привести к непонятным ошибкам. Обязательно делайте все звонки из одной ветки.
  • Отслеживающие кампании

    SDK поддерживает два типа отслеживания кампаний.

    - Отслеживание кампаний в Google Play . Позволяет отслеживать рекомендации по установке через Google Play.
    - Общее отслеживание кампании : позволяет отслеживать любую кампанию, которая направляет пользователей к вашему приложению.

    Отслеживание кампаний Google Play

    Версия ОС Android 1.6 поддерживает использование параметра URL-адреса referrer в ссылках для загрузки в Google Play. Google Analytics SDK для Android использует этот параметр для автоматического заполнения информации о кампании в Google Analytics для вашего приложения. Это позволяет записывать источник установки приложения и связывать его с будущими просмотрами страниц и событиями, что может быть полезно, например, для оценки эффективности конкретной рекламы вашего приложения.

    Чтобы отслеживание рефералов работало, необходимо добавить следующий фрагмент кода в файл манифеста AndroidManifest.xml вашего проекта:

    <!-- Used for install referrer tracking -->
    <receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
      <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
      </intent-filter>
    </receiver>
    

    Чтобы настроить отслеживание кампании Google Analytics через Google Play, используйте конструктор URL-адресов ниже, чтобы создать реферальную ссылку. Используйте ссылку, чтобы направить пользователей к вашему приложению. Analytics SDK автоматически анализирует и записывает информацию о рефералах и добавляет ее в отчет Analytics.

    Чтобы создать реферальную ссылку, вы можете использовать конструктор URL-адресов кампаний Google Play . Укажите название пакета , источник кампании , канал кампании и название кампании . Подробное описание каждого параметра смотрите в таблице ниже.

    Общее отслеживание кампании

    Благодаря версии 1.3 Google Analytics SDK для Android вы можете отслеживать кампании из других источников, кроме Google Play. Например, если вы хотите знать, что ваше приложение было запущено по ссылке в объявлении, вы можете проверить информацию о переходе кампании в намерении, которое вызвало запуск вашего приложения, а затем сохранить эту информацию о кампании в Google Analytics.

    Чтобы установить реферальную информацию кампании, используйте метод setReferrer следующим образом:

      tracker.setReferrer(referrer);
    

    Есть два ограничения на использование этой функции. Во-первых, вы должны вызвать startNewSession до вызова setReferrer . Это необходимо сделать, поскольку база данных SQLite, используемая Google Analytics, не настроена до вызова startNewSession , и эта база данных необходима для setReferrer . Если вы не вызвали startNewSession , вы получите IllegalStateException .

    Второе ограничение заключается в том, что строка ссылки, передаваемая в setReferrer должна соответствовать определенному формату. Он должен иметь форму набора параметров URL-адреса и включать как минимум параметр gclid или по одному из utm_campaign, utm_medium и utm_source. В последнем случае он также может иметь параметры utm_term и utm_content.

    Параметр gclid является частью функции автоматической пометки, которая автоматически связывает Google Analytics с Google Рекламой. Пример направления кампании с использованием автоматической пометки может выглядеть так:

    referrer = “gclid=gclidValue”;
    

    Строка реферала кампании, созданная вручную, может выглядеть так:

    referrer = “utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    Если вы передадите в setReferrer неправильно сформированную строку реферера, информация о реферере не будет изменена, и вы получите возвращаемое значение false. Возвращаемое значение true указывает, что реферер был обновлен и будет добавляться к каждому обращению в дальнейшем.

    Также обратите внимание, что новый сеанс будет запущен, когда вы вызовете setReferrer и вернет true.

    Параметр Необходимый Описание Примеры)
    utm_campaign Да Название кампании; используется для анализа ключевых слов для определения конкретного продвижения продукта или стратегической кампании. utm_campaign=spring_sale
    utm_source Да Источник кампании; используется для идентификации поисковой системы, информационного бюллетеня или другого источника utm_source=google
    utm_medium Да Канал кампании; используется для идентификации средства массовой информации, например электронной почты или цены за клик (cpc). utm_medium=cpc
    utm_term Нет Срок кампании; используется с платным поиском для предоставления ключевых слов для объявлений. utm_term=running+shoes
    utm_content Нет Содержание кампании; используется для A/B-тестирования и рекламы с таргетингом на контент, чтобы различать объявления или ссылки, ведущие на один и тот же URL-адрес. utm_content=logolink
    utm_content=textlink