Документация
Интеграция SDK

Подключение и инициализация

SDK под Android предоставляется в виде библиотеки в форматах AAR (рекомендуемый) и JAR. Библиотека доступна в Maven-репозитории.

Шаг 1. Если вы используете Gradle для сборки приложения, пропишите следующую зависимость в файле build.gradle в блоке зависимостей:

dependencies {
    // AppMetrica from maven central.
    compile 'com.yandex.android:mobmetricalib:2.77'
}
Если вы не используете Gradle

Загрузите и добавьте библиотеку в проект.

Шаг 2. Инициализируйте библиотеку в приложении и настройте отслеживание активности пользователей — унаследуйтесь от класса Application и переопределите метод onCreate() следующим образом:

public class MyApp extends Application {
      @Override
      public void onCreate() {
          super.onCreate();
          // Инициализация AppMetrica SDK
          YandexMetrica.activate
[no-highlight[

Тип

void

Описание

Позволяет инициализировать библиотеку в приложении

]no-highlight]
(getApplicationContext(), API_key
[no-highlight[

API key — это уникальный идентификатор приложения, который выдается в веб-интерфейсе AppMetrica при добавлении приложения.

]no-highlight]
);
// Отслеживание активности пользователей YandexMetrica.enableActivityAutoTracking
[no-highlight[

Тип

void

Описание

Включает автоматическое отслеживание жизненного цикла приложения. Поддерживает версию Android 4.0 и выше. Является альтернативой методов onResumeActivity(Activity activity) и onPauseActivity(Activity activity). Данный метод необходимо вызвать сразу после инициализации библиотеки AppMetrica до открытия первого экрана приложения

]no-highlight]
(this)
; } }
Что такое API key?

API key — это уникальный идентификатор приложения, который выдается в веб-интерфейсе AppMetrica при добавлении приложения.

Убедитесь, что он указан верно.

AppMetrica позволяет отслеживать предустановленные приложения. Для использования этой функциональности необходимо произвести инициализацию библиотеки с расширенной конфигурацией.

Шаг 3. Опционально: для отслеживания местоположения устройства внесите изменение в файл AndroidManifest.xml перед элементом application:

<manifest>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION
[no-highlight[

Обязательный

Нет

Описание

Позволяет отслеживать местоположение устройства. Подробнее

]no-highlight]
"/>
<application>...</application> </manifest>

Шаг 1. Если вы используете Gradle для сборки приложения, пропишите следующую зависимость в файле build.gradle в блоке зависимостей:

dependencies {
    // AppMetrica from maven central.
    compile 'com.yandex.android:mobmetricalib:2.77:jar'
}
Если вы не используете Gradle

Загрузите и добавьте библиотеку в проект.

Шаг 2. Настройте отправку данных и отслеживание местоположения пользователей — внесите изменения в файл AndroidManifest.xml, которые перечислены ниже.

  1. Добавьте следующие разрешения перед элементом application:

    <manifest>
        <!-- required -->
        <uses-permission android:name="android.permission.INTERNET
    [no-highlight[

    Обязательный

    Да

    Описание

    Позволяет библиотеке отправлять отчеты. Подробнее

    ]no-highlight]
    "/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE
    [no-highlight[

    Обязательный

    Да

    Описание

    Позволяет отправлять на сервер данные о сети пользователя, интернет-соединении и информацию, связанную с ним. Подробнее

    ]no-highlight]
    "/>
    <!-- optional --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION
    [no-highlight[

    Обязательный

    Нет

    Описание

    Позволяет отслеживать местоположение устройства. Подробнее

    ]no-highlight]
    "/>
    <application></application> </manifest>

  2. Внесите изменения в элемент application:

    <manifest>
        <application>        
            <!-- start of Yandex Metrica -->     
            <service
                android:name="com.yandex.metrica.MetricaService"
                android:enabled="true"
                android:exported="true"
                android:process=":Metrica">
    
                <meta-data android:name="metrica:api:level" android:value="62"/>
    
                <intent-filter>
                  <category android:name="android.intent.category.DEFAULT"/>
                  <action android:name="com.yandex.metrica.IMetricaService"/>
                  <data android:scheme="metrica"/>
                </intent-filter>
            </service>
    
            <service
                android:name="com.yandex.metrica.ConfigurationService"
                android:enabled="true"
                android:exported="true"
                android:process=":Metrica"
                tools:ignore="ExportedService">
                
                <meta-data
                  android:name="metrica:configuration:api:level"
                  android:value="1"/>
    
                <intent-filter>
                  <action android:name="com.yandex.metrica.configuration.ACTION_START"/>
                </intent-filter>
            </service>
    
            <receiver
                android:name="com.yandex.metrica.MetricaEventHandler"
                android:enabled="true"
                android:exported="true">
    
                <!-- INSTALL_REFERRER необходим для трекинга кампаний -->
                <intent-filter>
                    <action android:name="com.android.vending.INSTALL_REFERRER"/>
                </intent-filter>
            </receiver>
            <!-- end of Yandex Metrica -->        
        </application>
    </manifest>

    где metrica:api:level — уровень API библиотеки. Задание уровня API обязательно. Менять уровень следует только в случае изменения версии библиотеки.

Шаг 3. Инициализируйте библиотеку в приложении и настройте отслеживание активности пользователей — унаследуйтесь от класса Application и переопределите метод onCreate() следующим образом:

public class MyApp extends Application {
      @Override
      public void onCreate() {
          super.onCreate();
          // Инициализация AppMetrica SDK
          YandexMetrica.activate
[no-highlight[

Тип

void

Описание

Позволяет инициализировать библиотеку в приложении

]no-highlight]
(getApplicationContext(), API_key
[no-highlight[

API key — это уникальный идентификатор приложения, который выдается в веб-интерфейсе AppMetrica при добавлении приложения.

]no-highlight]
);
// Отслеживание активности пользователей YandexMetrica.enableActivityAutoTracking
[no-highlight[

Тип

void

Описание

Включает автоматическое отслеживание жизненного цикла приложения. Поддерживает версию Android 4.0 и выше. Является альтернативой методов onResumeActivity(Activity activity) и onPauseActivity(Activity activity). Данный метод необходимо вызвать сразу после инициализации библиотеки AppMetrica до открытия первого экрана приложения

]no-highlight]
(this)
; } }
Что такое API key?

API key — это уникальный идентификатор приложения, который выдается в веб-интерфейсе AppMetrica при добавлении приложения. Убедитесь, что он указан верно.

AppMetrica позволяет отслеживать предустановленные приложения. Для использования этой функциональности необходимо произвести инициализацию библиотеки с расширенной конфигурацией.

Примечание. 

Если вы используете proguard в работе вашего проекта, обязательно добавьте в файл proguard.cfg следующие строки:

-keep class com.yandex.metrica.** { *; }
-dontwarn com.yandex.metrica.**

Особенности работы библиотеки AppMetrica

Библиотека AppMetrica состоит из двух частей: клиентской и сервисной.

Клиентская часть обеспечивает предварительную валидацию данных и передачу их сервисной части, которая отвечает за хранение и отправку данных на сервер.

Сервис запускается в отдельном процессе. Это сделано для того, чтобы библиотека имела минимальное влияние на работу приложения (по производительности и памяти), а также не зависела от стабильности работы приложения и могла сохранять / доставлять данные даже в случае аварийных отключений и нестабильной работы приложения. Однако это вносит в работу c AppMetrica некоторые особенности.

Если в самом приложении есть несколько процессов, то необходимо обеспечить инициализацию AppMetrica единым образом, одинаковой конфигурацией. В противном случае может сложиться ситуация, когда конфигурация библиотеки AppMetrica зависит от того, какой из процессов будет инициализирован раньше (так как для каждого процесса создается свой экземпляр клиентской части AppMetrica, при этом сервисная часть — одна).

Рекомендуем инициализировать библиотеку AppMetrica в методе Application.onCreate() (так библиотека отработает вызов метода Application.onCreate() в каждом процессе). При этом следует учитывать особенность жизненного цикла ContentProvider, для которого не гарантируется создание экземпляра Application до создания экземпляра ContentProvider. Также следует учитывать, что код, помещенный в метод Application.onCreate() выполнится и для процесса сервиса.

Соответственно, если вы не хотите, чтобы некоторый код исполнялся больше одного раза, не следует помещать его в метод Application.onCreate(). Такой код лучше исполнять при создании других компонентов или вынести в отдельный Service. Также следует избегать выполнения внутри метода Application.onCreate() длительных операций.