Отправка информации о покупке на Android

В AppMetrica нет возможности сегментировать Revenue на «тестовые» и «не тестовые». Если для отладки покупок вы используете основной API key, то тестовые покупки будут попадать в общую статистику. Поэтому, чтобы отладить работу отправки Revenue, используйте отправку статистики на дополнительный API key с помощью репортера. Подробнее о работе репортера в разделе Примеры использования.
  1. Шаг 1. Создайте тестовое приложение в AppMetrica
  2. Шаг 2. (Опционально) Включите валидацию
  3. Шаг 3. Протестируйте отправку Revenue
  4. Шаг 4. Убедитесь, что покупки отображаются в отчетах
  5. Шаг 5. Настройте отправку Revenue на основной API Key

Шаг 1. Создайте тестовое приложение в AppMetrica

  1. В интерфейсе AppMetrica нажмите кнопку Добавить приложение.

  2. Заполните поля формы.
  3. Нажмите кнопку Добавить приложение. Нажимая кнопку, вы принимаете условия пользовательского соглашения.
Примечание. Разные версии одного приложения можно группировать в одной папке. Для этого создайте папку с помощью кнопки и переместите в нее приложения.

Шаг 2. (Опционально) Включите валидацию

Для валидации покупок на Android используется локальная валидация с помощью публичного ключа.

Чтобы включить валидацию, создайте публичный ключ и укажите его в настройках:
  1. В интерфейсе Google получите license key. Подробнее в документации Google.
  2. В интерфейсе AppMetrica перейдите в настройки приложения из меню слева.
  3. Перейдите на вкладку Revenue.
  4. В блоке Валидация покупок для Google Play укажите полученный license key.
  5. Нажмите Включить валидацию.
Внимание. При включенной валидации в отчете Revenue отображаются покупки, которые прошли валидацию или были отправлены без объекта Revenue.Receipt.

Шаг 3. Протестируйте отправку Revenue

Ниже описаны этапы отправки Revenue на дополнительный API key:

Чтобы покупки на Android валидировались, настройте отправку объекта Revenue.Receipt вместе с Revenue:

  1. Создайте объект Revenue.Receipt с информацией о покупке и подписью. Его необходимо использовать при создании объекта Revenue в методе Revenue.Builder.withReceipt(Revenue.Receipt receipt).
  2. Создайте объект Revenue с помощью конструктора Revenue.Builder.
  3. Отправьте объект Revenue на тестовый API key с помощью репортера IReporter. Подробнее о работе репортеров в разделе Примеры использования.
void handlePurchase(Purchase purchase) {
    ...
    // Creating the Revenue.Receipt instance.
    // It is used for checking purchases in Google Play.
    Revenue.Receipt revenueReceipt = Revenue.Receipt.newBuilder()
            .withData(purchase.getOriginalJson())
            .withSignature(purchase.getSignature())
            .build();
    // Creating the Revenue instance.
    Revenue revenue = Revenue.newBuilderWithMicros(99000000, Currency.getInstance("RUB"))
            .withProductID("com.yandex.service.299")
            .withQuantity(2)
            .withReceipt(revenueReceipt)
            .withPayload("{\"source\":\"Google Play\"}")
            .build();
    // Sending the Revenue instance using reporter.
    YandexMetrica.getReporter(getApplicationContext(), "Testing API key").reportRevenue(revenue);
}
Скопировано

Шаг 4. Убедитесь, что покупки отображаются в отчетах

  1. Совершите тестовые покупки в приложении.
  2. Убедитесь, что в отчете Revenue количество покупок и общая выручка совпадает с отправленными.

    Информация в отчете может отсутствовать, если:

    • валидация включена и покупка не прошла валидацию;
    • информация о покупке не отправилась.
  3. Если в отчете нет данных, выгрузите все покупки с помощью ресурса Logs API:

    curl -X GET \
      'https://api.appmetrica.yandex.ru/logs/v1/export/events.json?application_id=1111&date_since=2018-10-10&date_until=2018-10-11&fields=revenue_order_id,revenue_quantity,revenue_price,revenue_currency,is_revenue_verified' \
      -H 'Authorization: OAuth oauth_token'
    Скопировано
    Если в выгрузке есть события и в поле is_revenue_verified указано значение false, то покупки не прошли валидацию.

Шаг 5. Настройте отправку Revenue на основной API Key

После отладки повторите последовательность шагов 2–4 для основного API key.

Чтобы отправить объект Revenue на основной API key, используйте метод YandexMetrica.reportRevenue(Revenue revenue).

...
// Sending the Revenue instance.
YandexMetrica.reportRevenue(revenue);
Скопировано