Для загрузки платежей на сервер MyTracker используйте следующие методы:
customRevenue и customRevenueBatch для передачи универсального дохода
googlePlayProductTransaction, googlePlaySubscriptionTransaction и googlePlaySubscriptionToken для передачи in-app платежей и подписок в приложениях Google Play
appStoreProductTransaction, appStoreSubscriptionTransaction и appStoreSubscriptionReceipt для передачи in-app платежей и подписок в приложениях App Store
Все загруженные данные будут включены в общую статистику и появятся в интерфейсе MyTracker в течение 4 часов
Платежи Google Play
MyTracker может отслеживать in-app платежи и подписки в приложениях Google Play автоматически
(подробнее см. раздел Трекинг дохода).
Но если автоматического трекинга недостаточно, или с ним возникли проблемы,
вы можете загрузить недостающие платежи самостоятельно с помощью S2S API.
Рассмотрим несколько примеров использования методов S2S API:
Пример 1 — Загрузить исторические данные по in-app платежам
Если в MyTracker нет данных о совершённых в приложении платежах, например
когда платежи сделаны до подключения MyTracker SDK,
используйте метод googlePlayProductTransaction.
Пример 2 — Загрузить исторические данные по подпискам
Если в MyTracker нет данных по подпискам,
например, когда подписки оформлены до подключения MyTracker SDK:
Повторная передача данных или загрузка уже полученных ранее транзакций
не приведёт к ошибке,
так как на стороне MyTracker сработает дедупликация
googlePlayProductTransaction
Используйте метод googlePlayProductTransaction, чтобы загрузить сведения
по in-app платежам в приложении Google Play.
Чтобы верифицировать платёж используйте один из следующих параметров:
token — MyTracker отправит запрос на подтверждение in-app платежа в Google Play API.
Если платёж корректен, MyTracker отнесёт его к
верифицированным платежам,
если нет, то платёж будет сохранен как неверифицированный.
isVerified — MyTracker отнесёт in-app платёж к верифицированным по умолчанию.
Если не передан ни token, ни isVerified или переданы сразу оба эти параметра, то запрос обработан не будет.
Загружать исторические данные по in-app платежам следует в хронологическом порядке,
иначе сведения по первым платежам будут искажены
Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, gaid, androidId, appSetId (транзакции будут привязаны к пользователю и/или к устройству), время события eventTimestamp,
а также параметры из таблицы ниже.
Название параметра
Описание
Тип
Пример
orderId*
Идентификатор транзакции
Строка
"orderId": "1234-1234-1234-12345"
productId*
Идентификатор продукта в терминах Google Play (SKU)
Строка
"productId": "com.some.thing.inapp1"
token
Токен, предоставленный устройству при оплате продукта.
Может передаваться вместо параметра isVerified.
Строка
"token": "ofjkingojelmkmedpgfkfelj"
currency*
Валюта платежа
Строка
"currency": "USD"
revenue*
Сумма платежа в указанной валюте
Строка
"revenue": "4.9"
isVerified
Флаг для определения статуса верификации платежа.
Может передаваться вместо параметра token.
Целое число
"isVerified": 1
* — обязательный параметр.
googlePlaySubscriptionTransaction
Используйте метод googlePlaySubscriptionTransaction, чтобы загрузить сведения
об отдельных платежах по подпискам Google Play.
Загружать исторические данные по подпискам следует в хронологическом порядке,
иначе сведения по первым платежам будут искажены
Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, gaid, androidId, appSetId (транзакции будут привязаны к пользователю и/или к устройству), время события eventTimestamp, а также параметры из таблицы ниже.
Название параметра
Описание
Тип
Пример
orderId*
Идентификатор транзакции
Строка
"orderId": "1234-1234-1234-12345"
priceCurrencyCode*
Валюта платежа
Строка
"priceCurrencyCode": "USD"
priceAmountMicros*
Цена, в микроединицах,
где 1000000 микроединиц представляют собой одну денежную единицу.
Например, если цена подписки составляет 1,99 евро, то
priceAmountMicros составляет 1990000
Число
"priceAmountMicros": "1990000"
subscriptionId*
Идентификатор подписки в терминах Google Play
Строка
"subscriptionId": "com.some.thing.monthly001"
paymentState
Статус платежа:
1 — получен
2 — триал
По умолчанию: 1
Строка
"paymentState": "1"
isIntroductory
Льготный период:
0 — платёж по обычной цене
1 — платёж по льготной цене
По умолчанию: 0
Целое число
"isIntroductory": 1
startTimeMillis
Время начала подписки, в миллисекундах
Целое число
"startTimeMillis": 1693242344000
expiryTimeMillis
Время окончания подписки после совершения данной транзакции, в миллисекундах
Целое число
"expiryTimeMillis": 1693242344000
* — обязательный параметр.
googlePlaySubscriptionToken
Используйте метод googlePlaySubscriptionToken,
чтобы загрузить сведения о действующей подписке.
По переданному идентификатору подписки
MyTracker сможет определить последнее продление
и в дальнейшем отслеживать продления автоматически.
Все будущие платежи по подписке будут
привязаны к одному и тому же устройству и пользователю,
которые вы укажите в методе
Рекомендуем передавать параметр subscriptionPeriod —
период действия подписки. C помощью этого параметра MyTracker сможет
рассчитать время последнего продления,
и в будущем определять время продлений даже в случае задержки данных со стороны Google Play.
Без subscriptionPeriod последнее продление и все дальнейшие будут записываться
на момент поступления данных из Google Play.
Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, gaid, androidId, appSetId (транзакции будут привязаны к пользователю и/или к устройству), а также параметры из таблицы ниже.
Название параметра
Описание
Тип
Пример
orderId*
Идентификатор транзакции
Строка
"orderId": "GPA.1234-1234-1234-12345"
subscriptionId*
Идентификатор подписки в терминах Google Play
Строка
"subscriptionId": "com.some.thing.monthly001"
token*
Токен, предоставленный устройству пользователя при оплате подписки
Строка
"token": "ofjkingojelmkmedpgfkfelj"
subscriptionPeriod
Период подписки в формате ISO 8601, например:
P1W — одна неделя
P1M — один месяц
P3M — три месяца
P6M — шесть месяцев
P1Y — один год
Строка
"subscriptionPeriod": "P6M"
* — обязательный параметр.
Платежи App Store
MyTracker может отслеживать in-app платежи и подписки в приложениях App Store автоматически
(подробнее см. раздел Трекинг дохода).
Но если автоматического трекинга недостаточно, или с ним возникли проблемы,
вы можете загрузить недостающие платежи самостоятельно с помощью S2S API.
Рассмотрим несколько примеров использования методов S2S API:
Пример 1 — Загрузить исторические данные по in-app платежам
Если в MyTracker нет данных о совершённых в приложении платежах,
например, когда платежи сделаны до подключения MyTracker SDK,
используйте метод
appStoreProductTransaction.
Пример 2 — Загрузить исторические данные по подпискам
Если в MyTracker нет данных по подпискам, например,
когда подписки оформлены до подключения MyTracker SDK:
Если MyTracker не отслеживает действующую подписку автоматически,
например, когда подписка оформлена до подключения MyTracker SDK,
загрузите сведения по подписке с помощью метода
appStoreSubscriptionReceipt.
Пример 4 — Загрузить данные после настройки верификации
Если вы не сразу передали ключ верификации в MyTracker
и в результате пропустили часть продлений по подпискам:
Повторная передача данных или загрузка уже полученных ранее транзакций
не приведёт к ошибке,
так как на стороне MyTracker сработает дедупликация
appStoreProductTransaction
Метод appStoreProductTransaction в стадии бета-тестирования.
При возникновении вопросов, пожалуйста, обратитесь в нашу
службу поддержки
Используйте метод appStoreProductTransaction, чтобы загрузить сведения
по in-app платежам в приложении App Store.
Все загруженные платежи будут сохранены в MyTracker как верифицированные.
Загружать исторические данные по in-app платежам следует в хронологическом порядке,
иначе сведения по первым платежам будут искажены
Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, idfa, iosVendorId(транзакции будут привязаны к пользователю и/или к устройству), время события eventTimestamp, а также параметры из таблицы ниже.
Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, idfa, iosVendorId (транзакции будут привязаны к пользователю и/или к устройству), время события eventTimestamp, а также параметры из таблицы ниже.
Цена товара, где в качестве разделителя должна быть точка
Дробное число
"price": "1.99"
currency*
Валюта платежа
Строка
"currency": "USD"
transactionIdOriginal*
Идентификатор оригинальной транзакции
(первой транзакции в подписке).
Строка
"transactionIdOriginal": "1234567890098765"
isTrial
Триальная подписка:
0 — нет
1 — да
По умолчанию: 0
Целое число
"isTrial": 1
isIntroductory
Льготный период:
0 — платёж по обычной цене
1 — платёж по льготной цене
По умолчанию: 0
Целое число
"isIntroductory": 1
tsPaymentOriginal
Время начала подписки
Целое число
"tsPaymentOriginal": 1643453453
tsPaymentExpires
Время окончания подписки после совершения данной транзакции
Целое число
"tsPaymentExpires": 1643453453
quantity
Количество приобретённого товара
По умолчанию: 1
Целое число
"quantity": 1
* — обязательный параметр.
appStoreSubscriptionReceipt
Метод appStoreSubscriptionReceipt в стадии бета-тестирования.
При возникновении вопросов, пожалуйста, обратитесь в нашу
службу поддержки
Используйте метод appStoreSubscriptionReceipt,
чтобы загрузить сведения о действующей подписке.
По переданному чеку MyTracker отправит запрос на сервер App Store,
загрузит все прошлые транзакции по подписке
и будет отслеживать последующие продления автоматически.
Все транзакции по чеку будут привязаны
к одному и тому же устройству
и/или пользователю, которые вы укажите в методе
Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства:instanceId, idfa, iosVendorId
(транзакции будут привязаны к пользователю и/или к устройству), а также параметры из таблицы ниже.
Цена товара, где в качестве разделителя должна быть точка
Дробное число
"price": "9.99"
currency*
Валюта платежа
Строка
"currency": "USD"
* — обязательный параметр.
Универсальный доход
Универсальный доход — это любые финансовые поступления,
которые не могут быть переданы в MyTracker
как доход от рекламы, in-app платёж или платёж по подписке.
Например, это могут быть офлайн-платежи, покупки через сервис VK Pay,
платежи из магазинов AppGallery и RuStore.
То есть любой доход, для которого пока не предусмотрен специальный механизм сбора данных.
Передать информацию по универсальным доходам можно только через S2S API
с помощью методов customRevenue и customRevenueBatch.
customRevenue
Используйте метод customRevenue, чтобы загрузить универсальный платёж.
Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, lvid, gaid, androidId, idfa, iosVendorId (транзакции будут привязаны к пользователю и/или к устройству), eventTimestamp, а также параметры из таблицы ниже.
Название параметра
Описание
Тип
Пример
idTransaction*
Идентификатор транзакции, уникальный в рамках
проекта
Строка, минимальная длина 1, максимальная длина 255
"idTransaction": "order1234"
currency*
Код валют транзакции в стандарте ISO-4217
Строка, длина 3 символа
"currency": "USD"
total*
Сумма платежа
Дробное число, минимальное значение 0.
"total": 1.99
* — обязательный параметр.
customRevenueBatch
Используйте метод customRevenueBatch для пакетной передачи данных по доходу.
Метод аналогичен customRevenue, но позволяет передать сразу несколько платёжных транзакций.
Один параметр без названия.
Это массив, через который передают параметры из метода customRevenue.
Если хотя бы в одном наборе параметров нарушены правила валидации,
сервер вернет ошибку