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

Подключение AppMetrica Push SDK

Библиотека AppMetrica Push SDK поддерживает работу с Gradle. Перед подключением библиотеки необходимо подключить и инициализировать библиотеку AppMetrica SDK не ниже версии 2.51, а также добавить GooglePlayServices в проект и настроить ваше приложение для отправки push-уведомлений.

Добавление приложения GooglePlayServices в проект
  1. Загрузите конфигурационный файл google-services.json и разместите его в каталоге модуля проекта (например, app).
  2. Для корректной работы с файлом подключите плагин Google Services в проект, добавив следующие строки в файл build.gradle:

    проекта
    buildscript{
      ...
      dependencies {
        ...
        classpath 'com.google.gms:google-services:3.0.0'
        ...
      }
      ...
    }
    приложения (модуля)
    apply plugin: 'com.google.gms.google-services'

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

SDK под Android предоставляется в виде библиотеки в формате AAR.

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

dependencies {
    ...
    compile "com.yandex.android:mobmetricapushlib:0.5.0"
    ...
}

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

public class MyApp extends Application {
      @Override
      public void onCreate() {
          super.onCreate();
              YandexMetricaPush.init(getApplicationContext());
      }
}

Шаг 3. Настройте обработку push-уведомлений, которые не предполагают вывод сообщений (Silent Push Notifications).

  1. Создайте специальный BroadcastReceiver:

    import com.yandex.metrica.push.YandexMetricaPush;
    public class SilentPushReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //Извлечение данных из вашего push-уведомления
            String payload = intent.getStringExtra(YandexMetricaPush.EXTRA_PAYLOAD);
            ...
        }
    }
  2. Внесите изменения в элемент application файла AndroidManifest.xml:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
       <application>
       ...
          <receiver android:name=".SilentPushReceiver">
                <intent-filter>
                    <!--Получение silent push-уведомлений-->
                    <action android:name="${applicationId
    [no-highlight[

    applicationId — уникальный идентификатор приложения в Gradle (имя пакета). Например, com.example.name.

    ]no-highlight]
    }.action.ymp.SILENT_PUSH_RECEIVE"/> </intent-filter> </receiver> ... </application> </manifest>

    applicationId — уникальный идентификатор приложения в Gradle (имя пакета). Например, com.example.name.

При необходимости вы можете передавать вместе с push-уведомлением дополнительную информацию. Эти данные указываются в веб-интерфейсе AppMetrica при настройке push-кампании.

public class TargetActivity extends Activity {
     
               @Override
               protected void onCreate(Bundle savedInstanceState) {
                   super.onCreate(saveInstanceState);
                   handlePayload(getIntent());
               }
     
               @Override
               protected void onNewIntent(Intent intent) {
                   super.onNewIntent(intent);
                   handlePayload(intent);
               }
     
               private void handlePayload(Intent intent) {
                   //Получение вашего payload
                   String payload = intent.getStringExtra(YandexMetricaPush.EXTRA_PAYLOAD);
                   ...
               }
           }

Также можно отличать от общего числа запусков приложения запуски по открытию push-уведомления, отправленного через AppMetrica Push SDK. Сделать это можно, проверяя Intent action. Если в качестве действия вы указали deeplink, то именно он будет являться Intent action. Если в качестве действия выбрано открытие приложения, Intent action будет передавать значение YandexMetricaPush#OPEN_DEFAULT_ACTIVITY_ACTION.