Чем мы можем помочь?

Настройка валидации чека

  • Обновлено

Краткий обзор: Валидация чека измеряет доход от покупок в приложении и подписок и проверяет его в магазинах приложений, обеспечивая точные результаты Return on Ad Spend (ROAS).

Переход на новую валидацию чека

Поддержка устаревшей валидации чека будет прекращена 7 сентября 2026 года. Подробнее см. в бюллетене: устаревшая валидация чека выводится из эксплуатации. Если в вашем приложении используется устаревшая валидация чека, перейдите на новую, выполнив приведенные ниже шаги настройки. Прежде чем начать, ознакомьтесь с основными различиями и подготовьтесь к миграции.

Что нового в валидации чека

Область Устаревший Новая валидация чека
Метод SDK validateAndLogInAppPurchase (legacy/v1) validateAndLogInAppPurchase (v2), то же название и новая сигнатура в iOS и Android
Передача цены и валюты Передаются в вызове SDK Автоматически извлекаются из магазина
Тип покупки Не требуется Обязательный параметр PurchaseType (subscription или one-time purchase)
Настройка параметров дохода Не требуется Требуется (страница настроек дохода)
Источник значения af_revenue Значение, переданное в вызове SDK Валовое значение, возвращаемое магазином; любое пользовательское значение, переданное в вызове SDK, попадает в объект custom_data события
Детализация событий покупки Одно событие af_purchase для всех типов транзакций Отдельные события для каждого типа транзакций: af_purchase, af_ars_trial_started, af_ars_subscription_started и их варианты для sandbox
Поддержка StoreKit 2 (iOS) Не поддерживается Поддерживается
Фильтрация мошенничества Ограниченные возможности Улучшено на Android и iOS
Доступность SDK Удалено из SDK AppsFlyer версии 7.0.0+ Доступно начиная с Android версии 6.17.5, iOS версии 6.17.8 и плагинов версии 6.17.8
Запись проверенных событий покупки Поддерживается до 7 сентября 2026 г. Регулярно

Подготовка миграции

Перед началом миграции ознакомьтесь со следующими важными моментами:

  • Выполняйте миграцию постепенно, не затрагивая текущих пользователей. Включение новой валидации чека в дэшборде AppsFlyer не влияет на версии приложения, которые по-прежнему используют устаревший метод. Оба варианта продолжат работать до прекращения поддержки устаревшего метода 7 сентября 2026 г.
  • Ожидайте изменений в доходе после миграции. Новая валидация чека использует валовое значение, возвращаемое магазином, тогда как устаревшая валидация чека использовала значение дохода, переданное в вызове SDK. Если в вызове SDK передавалось неваловое значение, после миграции дэшборды и постбэки партнеров, которые теперь отражают валовые значения, будут показывать другое число. Для чистого дохода используйте ROI360 Store Revenue; подробнее см. в статье Настройте доход магазина ROI360.
  • Сообщите своим UA-партнерам об изменении дохода. Рекламные сети, которые раньше получали неваловой доход из постбэка af_purchase, после миграции увидят другие значения.
  • Спланируйте график выпуска новой версии приложения. После 7 сентября 2026 г. пользователи версий приложения, собранных с версиями SDK ниже Android версии 6.17.5 или iOS версии 6.17.8, перестанут генерировать проверенные события af_purchase. Выпустите новую версию приложения заранее, чтобы до прекращения поддержки она успела охватить большинство ваших пользователей.

Переход на ROI360 Store Revenue

Для перехода на ROI360 Store Revenue не требуется изменять SDK, так как оба продукта используют один и тот же метод validateAndLogInAppPurchase (v2). Добавление Purchase Connector для автоматического определения покупок необязательно.

Дополнительную информацию и инструкции по настройке см. в статье Настройка дохода магазина ROI360.

Информация о компании

 Примечание:

Дополнительную информацию о валидации чека, включая принцип её работы и способ её включения в AppsFlyer, см. в статье О валидации чека.

Чтобы настроить валидацию чека, выполните следующие шаги по порядку:

  1. Настройте учётные данные магазина (iOS и Android)
    • iOS: Настройте ключи App Store Connect (ключ In-App Purchase, идентификатор Key ID и идентификатор Issuer ID) в AppsFlyer, чтобы включить валидацию чека.
    • Android: Настройте сервисный аккаунт Google Cloud, задайте необходимые разрешения в Google Play Console и загрузите JSON-ключ сервисного аккаунта в AppsFlyer.
  2. Реализуйте SDK API validateAndLog: Подготовьте разработчиков к интеграции AppsFlyer SDK API validateAndLog и настройте среду sandbox для тестирования.
  3. Проверьте реализацию SDK API validateAndLog: Выполните тестовые покупки и подписки в sandbox на iOS и Android, чтобы убедиться, что события валидации чека генерируются и корректно регистрируются в AppsFlyer.
  4. Проверьте и обновите настройки: Убедитесь, что для типа продукта задана валидация чека, и проверьте статусы ключей магазина и интеграции SDK, чтобы обеспечить точное и непрерывное измерение дохода.
  5. Выпустите версии приложения с SDK API validateAndLog: Выпустите обновлённые версии приложения со встроенным SDK API validateAndLog, убедившись, что флаги sandbox отключены, а необходимые события в приложении не блокируются правилами валидации.

Шаг 1 (iOS) Настройка ключей App Store Connect

На шаге 1 получите следующие учётные данные из App Store Connect и введите их на странице Revenue Settings на платформе AppsFlyer.

  • ключ для покупок в приложении;
  • идентификатор ключа;
  • идентификатор эмитента.

Прежде чем начать:

  • Настройка учётных данных включает шаги, выполняемые как в App Store Connect, так и в AppsFlyer. Держите вкладки App Store Connect и AppsFlyer открытыми во время настройки.
  • Для вашего приложения iOS требуется StoreKit v1 или v2, который предоставляет фреймворк для обработки покупок в приложении и подписок.

1.1 Создание ключей App Store Connect

Чтобы настроить учётные данные iOS, выполните следующие шаги:

  1. В App Store Connect перейдите в Users and Access.

  2. Перейдите в Users and Access > Integrations и в списке Keys выберите In-App Purchase.

  3. Нажмите + , чтобы сгенерировать новый ключ In-App Purchase.

  4. Введите название для вашего ключа API.
  5. Нажмите Создать.
  6. Нажмите Download In-App Purchase Key next to the key you just generated to download it. Примечание: Вы можете скачать ключ только один раз.
  7. Скопируйте Key ID ключа, который вы только что сгенерировали, и вставьте его в настройки покупок & подписок AppsFlyer в поле Key ID.

  8. Скопируйте Issuer ID. Примечание: если Issuer ID не отображается в верхней части страницы, создайте ключ API App Store Connect (с любым уровнем доступа). После этого Issuer ID появится в верхней части страницы ключа In-App Purchase.

1.2 Set the App Store Connect key

  1. Включите валидацию чека. #включить-валидацию-чека
  2. На шаге Ключи App Store Connect нажмите Upload в поле In-App Purchase key , чтобы загрузить файл p8.
  3. В разделе titled App Store Connect keys, вставьте значения, которые вы скопировали из App Store Connect.

    • идентификатор ключа;
    • идентификатор эмитента.
  4. Нажмите 0Validate keys 0, чтобы убедиться, что введённые вами ключи верны. Примечание: The Validate keys action может не работать, если ваше приложение ещё не опубликовано в App Store.
  5. Нажмите Сохранить и продолжить.

Шаг 1 (Android). Настройка разрешений и ключа учётной записи службы

На шаге 1 получите следующие учётные данные из Google Play и Google Cloud и введите их на странице Настройки дохода на платформе AppsFlyer.

Прежде чем начать:

  • Настройка измерения дохода от покупок в приложении и подписок включает шаги, выполняемые в Google Cloud Platform, Google Play Console, и the UI AppsFlyer. Мы рекомендуем не закрывать все три вкладки на протяжении всего процесса настройки.
  • Для настройки в пользовательском интерфейсе AppsFlyer требуются права администратора.

1.1 Свяжите свой аккаунт разработчика Google Play со своим проектом Google Cloud

Предварительные условия: доступ к Google Play Console и проекту Google Cloud.

Чтобы связать свой аккаунт разработчика Google Play со своим проектом Google Cloud, выполните следующие действия:

  1. В Google Play Console откройте свой аккаунт разработчика Google Play.
  2. Привяжите аккаунт к своему проекту вGoogle Cloud. Инструкции см. в этом разделе справки Google.
  3. Активируйте API разработчика Google Play. Инструкции см. в этом разделе справки Google.

1.2 Настройте свой сервисный аккаунт на платформе Google Cloud

Предварительные условия: доступ к Google Cloud Platform.

Чтобы настроить свой сервисный аккаунт, выполните следующие действия:

  1. Создайте или найдите сервисный аккаунт:

    1. Перейдите в раздел Service Accounts на платформе Google Cloud и нажмите CREATE SERVICE ACCOUNT.
    2. Введите данные для сервисного аккаунта.
    3. Скопируйте адрес электронной почты.
    4. Нажмите Create and continue.
    5. На шаге Grant this service account access to the project выберите роль подписчика Pub/Sub.
    6. Нажмите Continue > Done.

  2. Скачайте service account private key:

    1. В Google Cloud Platform перейдите в раздел Service accounts, найдите в списке нужный аккаунт (тот, который вы только что создали) и нажмите значок More actions.
    2. Нажмите Manage keys.
    3. Нажмите 0Добавить ключ 0> 0Создать новый ключ.

    4. Во всплывающем окне Create private key в разделе Key type выберите JSON и нажмите Create.
    5. Нажмите 0Create. Загрузится файл JSON закрытого ключа.

    6. Сохраните файл ключа JSON, который вы позже загрузите в AppsFlyer. Важно! Вы должны сохранить ключ. его нельзя будет получить позже. Если вы его не сохраните, вам придётся создать совершенно новый ключ.

1.3 Настройте права доступа к API в Google Play Console

Предварительные условия: доступ к Google Play Console.

Примечание: после настройки учётных данных и разрешений сервисного аккаунта может пройти некоторое время (иногда до 24 часов), прежде чем вы сможете их использовать. Это может привести к появлению ошибок на последующих этапах.

Настройка прав доступа к API в Google Play Console:

  1. В Google Play Console перейдите в раздел 0Пользователи и разрешения, найдите созданный сервисный аккаунт и нажмите 0Пригласить новых пользователей.

  2. Введите адрес электронной почты , который вы скопировали при настройке учётной записи службы на шаге 1.2.1.3.

  3. В разделе 0Разрешения 0перейдите на вкладку 0Разрешения аккаунта 0и выберите оба варианта:

    • Просматривать финансовые данные, заказы и ответы на анкетирование после отмены.
    • Управление заказами и подписками.
  4. На вкладке 0Разрешения приложения 0нажмите 0Добавить приложение, 0затем выберите ваше приложение. Добавьте несколько приложений, если необходимо.

  5. Нажмите 0Пригласить пользователя.

  6. Во всплывающем окне подтверждения нажмите 0Отправить приглашение.

1.4 Загрузите закрытый ключ сервисного аккаунта в AppsFlyer

Загрузите и выполните валидацию ключа JSON Google, который вы скачали в 0шаге 1.2.

Предварительные условия: права администратора в AppsFlyer.

Чтобы загрузить закрытый ключ сервисного аккаунта в AppsFlyer, выполните следующие шаги:

  1. Активируйте валидацию чека.
  2. На этапе Ключ сервисного аккаунта и разрешения в поле Загрузить ключ Google JSON нажмите Загрузить.
  3. Загрузите файл JSON, который вы скачали в 0шаге 1.2.
  4. Нажмите 0Проверить ключ. Примечание.

    • После установки учётных данных и разрешений аккаунта службы может пройти до 24 часов, прежде чем вы сможете их использовать. Из-за этого при попытке валидации ключа или выполнить тестовую проверку могут возникнуть ошибки.
    • Чтобы обойти 24-часовое время ожидания, в Google Play Console перейдите к любому приложению, затем откройте Monetize > Products > Subscriptions/In-app products, и внесите изменения. Например, отредактируйте описание вашего продукта и сохраните его. Обычно это приводит к немедленному обновлению учётных данных и разрешений аккаунта. Затем вы можете отменить эти изменения.
  5. Нажмите Далее. Откроется шаг Внедрение SDK.

2. Внедрение SDK

На этом шаге вы подготовите разработчиков к интеграции API validateAndLog в SDK и настроите среду песочницы для тестирования. Минимальные версии SDK, поддерживающие последнюю версию API validateAndLog: 6.17.5 для Android и 6.17.8 для iOS.

Чтобы внедрить validateAndLog SDK API, выполните следующие шаги:

  1. На шаге Внедрение SDK скопируйте готовое сообщение отображаемое в дэшборде.
  2. Отправьте его своим разработчикам. оно включает в себя:

    • название и идентификатор приложения;
    • Ссылку на руководство по интеграции SDK.
    • Инструкции по настройке среды песочницы (sandbox = true).
    • Этапы тестирования (с использованием TestFlight).

    Это сообщение содержит всю информацию, необходимую вашим разработчикам для завершения интеграции и начала тестирования.

  3. Нажмите Далее. Откроется шаг Проверка внедрения SDK.

3. Проверьте использование SDK

Протестируйте интеграцию доходов от покупок в приложении и подписок в среде песочницы, чтобы убедиться, что коннектор SDK интегрирован правильно, а серверные уведомления должным образом настроены и принимаются AppsFlyer.

Тестирование реализации SDK

Чтобы проверить, получал ли AppsFlyer действительные полезные данные validateAndLog из вашего приложения за последние 7 дней, выполните следующие действия:

  1. На шаге Проверка внедрения SDK нажмите Проверить внедрение SDK.
  2. Просмотрите результаты, включая метку времени последней полезной нагрузки, полученной AppsFlyer. Обратите внимание, что эта проверка только подтверждает, что запросы доходят до AppsFlyer, и не проверяет полноту или корректность данных.
  3. Чтобы полностью проверить внедрение, выполните шаги тестирования, приведённые ниже.

Соображения по поводу среды песочницы

В среде песочницы:

  • Только события первичной покупки приводят к тому, что validateAndLog SDK API создаёт событие, которое регистрируется AppsFlyer. Событие покупки в приложении называется af_purchase_sandbox_sdk. Событие подписки называется af_ars_sandbox_sdk.
  • События в тестовой среде имеют доход 0.
  • Для Android тесты, выполняемые License Testers, приводят к событиям песочницы, даже если среда песочницы в SDK не настроена.

Тестирование измерения доходов от внутренних покупок (IAP) и подписок

Чтобы протестировать доходы от покупок в приложении и подписок:

  1. Попросите разработчиков следовать их инструкциям по настройке среды sandbox для SDK API validateAndLog.
  2. Совершите тестовую покупку или оформите подписку с помощью License Tester в Google Play и TestFlight в iOS. 
  3. Проверьте, что тестовые события отображаются одним из следующих способов:

  4. Найдите следующие тестовые события:

    • The af_purchase_sandbox_sdk для события покупки.
    • The af_ars_sandbox_sdk для события подписки.
  5. Убедитесь, что тестовые события включают следующее:

    • Значение дохода равно 0 (чтобы не искажать реальные отчеты AppsFlyer).
    • Параметр af_sandbox_revenue , который включает значение дохода от приобретенного продукта, чтобы обеспечить корректное отражение дохода в отчетах.
    • Параметр af_validated имеет значение true. Если af_validated имеет значение false, вернитесь к шагу 2 выше и проверьте ключ, предоставленный магазином
    • Параметр af_validation_type имеет значение receipt_validation.

Шаг 6. Проверьте и обновите настройки

После завершения настройки параметров выше и сохранения выполненных шагов вы будете перенаправлены в представление активной конфигурации, где сможете проверить или обновить следующие настройки:

  1. Убедитесь, что для параметра Product type выбрано значение валидация чека
  2. Убедитесь, что Verify purchases with the App Store включен.
  3. Проверьте или обновите следующие настройки:

    • The App Store key setup
    • The SDK integration setup

Шаг 5. Выпустите версии приложения с SDK API validateAndLog

После того как все на предыдущих шагах настроено, а AppsFlyer API validateAndLog SDK интегрирован в приложение, попросите разработчиков выпустить версию приложения с интегрированным API validateAndLog SDK.

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

  • События в приложении, которые вы хотите регистрировать как покупки в приложении или подписки, не блокируются ни одним из правил валидации, настроенных в AppsFlyer.
  • У всех ваших разработчиков все sandbox-флаги установлены в значение false.

После релиза приложения с SDK API validateAndLog события покупок в приложении и подписок генерируются и становятся доступны на всех дэшбордах AppsFlyer, а также в агрегированных отчетах и отчетах о сырых данных.

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