Документация
Интеграция 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'
  3. Добавьте следующую зависимость в файле build.gradle приложения (модуля) в блоке зависимостей:

    dependencies {
      ...
      compile "com.google.android.gms:play-services-gcm:9.4.0"
      ...
    }

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

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

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

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

Шаг 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.