Войти

Загрузка платежей

Методы

Для загрузки платежей на сервер 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:

  1. Загрузите исторические данные с помощью метода googlePlaySubscriptionTransaction.
  2. Включите трекинг будущих продлений с помощью метода googlePlaySubscriptionToken.

Пример 3 — Отслеживать действующие подписки

Если MyTracker не отслеживает подписку автоматически, например, когда подписка оформлена до подключения MyTracker SDK:

  1. Загрузите исторические данные с помощью метода googlePlaySubscriptionTransaction.
  2. Включите трекинг продлений с помощью метода googlePlaySubscriptionToken.

Пример 4 — Загрузить данные после настройки верификации

Если вы не сразу передали ключ верификации в MyTracker и первые платежи не прошли валидацию:

  1. Убедитесь, что вы загрузили Google Play credentials в MyTracker.
  2. Загрузите недостающие данные по in-app платежам через googlePlayProductTransaction.
  3. Загрузите недостающие данные по подпискам через googlePlaySubscriptionTransaction.
  4. Включите трекинг подписок с помощью метода googlePlaySubscriptionToken.

Пример 5 — Восстановить данные после сбоя трекинга

Если часть данных по in-app платежам или подпискам потеряна из-за сбитой настройки трекинга, например, в результате неудачного обновления приложения:

  1. Загрузите недостающие данные по in-app платежам через googlePlayProductTransaction.
  2. Загрузите недостающие данные по подпискам через googlePlaySubscriptionTransaction.
  3. Включите трекинг оформленных за это время подписок с помощью метода googlePlaySubscriptionToken.

Повторная передача данных или загрузка уже полученных ранее транзакций не приведёт к ошибке, так как на стороне MyTracker сработает дедупликация

googlePlayProductTransaction

Используйте метод googlePlayProductTransaction, чтобы загрузить сведения по in-app платежам в приложении Google Play.

Чтобы верифицировать платёж используйте один из следующих параметров:

  • token — MyTracker отправит запрос на подтверждение in-app платежа в Google Play API. Если платёж корректен, MyTracker отнесёт его к верифицированным платежам, если нет, то платёж будет сохранен как неверифицированный.
  • isVerified — MyTracker отнесёт in-app платёж к верифицированным по умолчанию.

Если не передан ни token, ни isVerified или переданы сразу оба эти параметра, то запрос обработан не будет.

Загружать исторические данные по in-app платежам следует в хронологическом порядке, иначе сведения по первым платежам будут искажены

Формат запроса:

https://tracker-s2s.my.com/v1/googlePlayProductTransaction/?idApp=XXX

Обязательные параметры: идентификатор пользователя 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.

Загружать исторические данные по подпискам следует в хронологическом порядке, иначе сведения по первым платежам будут искажены

Формат запроса:

https://tracker-s2s.my.com/v1/googlePlaySubscriptionTransaction/?idApp=XXX

Обязательные параметры: идентификатор пользователя 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.

Формат запроса:

https://tracker-s2s.my.com/v1/googlePlaySubscriptionToken/?idApp=XXX

Обязательные параметры: идентификатор пользователя 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:

  1. Загрузите исторические данные с помощью метода appStoreSubscriptionTransaction.
  2. Передайте чек по действующим подпискам с помощью метода appStoreSubscriptionReceipt.

Пример 3 — Отслеживать действующие подписки

Если MyTracker не отслеживает действующую подписку автоматически, например, когда подписка оформлена до подключения MyTracker SDK, загрузите сведения по подписке с помощью метода appStoreSubscriptionReceipt.


Пример 4 — Загрузить данные после настройки верификации

Если вы не сразу передали ключ верификации в MyTracker и в результате пропустили часть продлений по подпискам:

  1. Убедитесь, что вы загрузили App Store credentials в MyTracker.
  2. Загрузите недостающие данные по подпискам через appStoreSubscriptionTransaction.
  3. Включите трекинг подписок с помощью метода appStoreSubscriptionReceipt.

Пример 5 — Восстановить данные после сбоя трекинга

Если часть данных по in-app платежам или подпискам потеряна из-за сбитой настройки трекинга, например, в результате неудачного обновления приложения:

  1. Загрузите недостающие данные по in-app платежам через appStoreProductTransaction.
  2. Загрузите недостающие данные по подпискам через appStoreSubscriptionTransaction.
  3. Включите трекинг оформленных за это время подписок с помощью метода appStoreSubscriptionReceipt.

Повторная передача данных или загрузка уже полученных ранее транзакций не приведёт к ошибке, так как на стороне MyTracker сработает дедупликация

appStoreProductTransaction

Метод appStoreProductTransaction в стадии бета-тестирования. При возникновении вопросов, пожалуйста, обратитесь в нашу службу поддержки

Используйте метод appStoreProductTransaction, чтобы загрузить сведения по in-app платежам в приложении App Store. Все загруженные платежи будут сохранены в MyTracker как верифицированные.

Загружать исторические данные по in-app платежам следует в хронологическом порядке, иначе сведения по первым платежам будут искажены

Формат запроса:

https://tracker-s2s.my.com/v1/appStoreProductTransaction/?idApp=XXX

Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, idfa, iosVendorId(транзакции будут привязаны к пользователю и/или к устройству), время события eventTimestamp, а также параметры из таблицы ниже.

Название параметра Описание Тип Пример
transactionId* Идентификатор транзакции Строка "transactionId": "1234567890098765"
productId* Идентификатор продукта в терминах App Store.
См. документацию Apple
Строка "productId": "com.some.thing.inapp1"
price* Цена товара, где в качестве разделителя должна быть точка Дробное число "price": "1.99"
currency* Валюта платежа Строка "currency": "USD"
quantity Количество приобретённого товара
По умолчанию: 1
Целое число "quantity": 1

* — обязательный параметр.

appStoreSubscriptionTransaction

Метод appStoreSubscriptionTransaction в стадии бета-тестирования. При возникновении вопросов, пожалуйста, обратитесь в нашу службу поддержки

Используйте метод appStoreSubscriptionTransaction, чтобы загрузить сведения об отдельных транзакциях по подпискам App Store.

Загружать исторические данные по подпискам следует в хронологическом порядке, иначе сведения по первым платежам будут искажены

Формат запроса:

https://tracker-s2s.my.com/v1/appStoreSubscriptionTransaction/?idApp=XXX

Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства: instanceId, idfa, iosVendorId (транзакции будут привязаны к пользователю и/или к устройству), время события eventTimestamp, а также параметры из таблицы ниже.

Название параметра Описание Тип Пример
transactionId* Идентификатор транзакции Строка "transactionId": "1234567890098765"
productId* Идентификатор продукта в терминах App Store.
См. документацию Apple
Строка "productId": "com.some.thing.monthly001"
price* Цена товара, где в качестве разделителя должна быть точка Дробное число "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, загрузит все прошлые транзакции по подписке и будет отслеживать последующие продления автоматически.

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

Формат запроса:

https://tracker-s2s.my.com/v1/appStoreSubscriptionReceipt/?idApp=XXX

Обязательные параметры: идентификатор пользователя customUserId и/или один из идентификаторов устройства:instanceId, idfa, iosVendorId (транзакции будут привязаны к пользователю и/или к устройству), а также параметры из таблицы ниже.

Название параметра Описание Тип Пример
transactionId* Идентификатор транзакции Строка "transactionId": "1234567890098765"
productId* Идентификатор продукта в терминах App Store.
См. документацию Apple
Строка "productId": "com.abc.def"
receipt* Чек платежа в формате base64 Строка "receipt": "aaabbcbcac=="
price* Цена товара, где в качестве разделителя должна быть точка Дробное число "price": "9.99"
currency* Валюта платежа Строка "currency": "USD"

* — обязательный параметр.

Универсальный доход

Универсальный доход — это любые финансовые поступления, которые не могут быть переданы в MyTracker как доход от рекламы, in-app платёж или платёж по подписке. Например, это могут быть офлайн-платежи, покупки через сервис VK Pay, платежи из магазинов AppGallery и RuStore. То есть любой доход, для которого пока не предусмотрен специальный механизм сбора данных.

Передать информацию по универсальным доходам можно только через S2S API с помощью методов customRevenue и customRevenueBatch.

customRevenue

Используйте метод customRevenue, чтобы загрузить универсальный платёж.

Формат запроса:

https://tracker-s2s.my.com/v1/customRevenue/?idApp=XXX

Обязательные параметры: идентификатор пользователя 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, но позволяет передать сразу несколько платёжных транзакций.

Формат запроса:

https://tracker-s2s.my.com/v1/customRevenueBatch/?idApp=XXX

Обязательные параметры:

Название параметра Описание Тип Пример
Один параметр без названия. Это массив, через который передают параметры из метода customRevenue.
Если хотя бы в одном наборе параметров нарушены правила валидации, сервер вернет ошибку
Массив. Максимальный размер 20 [
{"customUserId": "1111", "lvid":"00000000000000000000000000000000", "idTransaction": "order1", "currency":"USD", "total": 1.99},
{"customUserId": "2222", "lvid":"00000000000000000000000000000000", "idTransaction": "order2", "currency":"USD", "total": 10.99}
]

Параметры

Все параметры передаются в теле POST запроса в формате json.

Ограничение на максимальный размер загружаемых данных — 10Кб.

Название параметра Описание Тип Пример

Общие

eventTimestamp Время события Число, минимальное 946674000, максимальное значение 4294967295. По умолчанию берётся timestamp получения события "eventTimestamp":"1577191920"
customUserId Идентификатор пользователя Строка, максимальный размер 1024 "customUserId":"1234"
ipv4 ipv4-адрес Строка, максимальный размер 15 "ipv4":"125.125.125.125"
ipv6 ipv6-адрес Строка, максимальный размер 45 "ipv6":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"
idGender Пол Число, возможные варианты:
  • 0 — неизвестно
  • 1 — мужчина
  • 2 — женщина
"idGender":"1"
age Возраст Число, максимальное значение 128 "age":"38"
connectionType Тип соединения Число, возможные варианты:
  • 0 — неизвестно
  • 1 — мобильная
  • 2 — wi-fi
По умолчанию 0
"connectionType":"1"
bluetoothEnabled Bluetooth Число, возможные варианты:
  • 0 — неизвестно
  • 1 — включён
  • 2 — выключен
По умолчанию 0
"bluetoothEnabled":"2"

Для мобильных приложений

instanceId S2S идентификатор устройства Строка, кол-во символов 36 "instanceId":"00000000-0000-0000-0000-000000000000"
adTrackingEnabled Разрешение отслеживания Число, возможные варианты:
  • 1 — включено
  • 0 — выключено
По умолчанию 1
"adTrackingEnabled":"0"
iOS
idfa Рекламный идентификатор iOS Строка, кол-во символов 36 "idfa":"00000000-0000-0000-0000-000000000000"
iosVendorId Идентификатор производителя IOS Строка, кол-во символов 36 "iosVendorId":"00000000-0000-0000-0000-000000000000"
Android
gaid Рекламный идентификатор Android (advertisingId) Строка, кол-во символов 36 "gaid":"00000000-0000-0000-0000-000000000000"
appSetId Идентификатор Android, уникальный в рамках аккаунта разработчика Google Play Строка, кол-во символов 36 "appSetId":"00000000-0000-0000-0000-000000000000"
androidId Идентификатор Android Строка, кол-во символов 16 "androidId":"000000000000000"

Для сайтов

lvid S2S идентификатор устройства Строка, кол-во символов 32 "lvid":"00000000000000000000000000000000"
adBlocker Блокировщик рекламы Число, возможные варианты:
  • 1 — включён
  • 0 — выключен
По умолчанию 0
"adBlocker":"0"
userAgent User-Agent Строка, максимальный размер 2048 "userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36"

Для VK Mini Apps

customPlatformUserId Идентификатор пользователя на платформе VK (vk id) Строка
"customPlatformUserId":"12345"
vkPlatform Тип платформы, на которой совершено событие Строка. Возможные варианты:
  • desktop_web
  • mobile_web
  • mobile_android
  • mobile_android_messenger
  • mobile_ipad
  • mobile_iphone
  • mobile_iphone_messenger
"vkPlatform":"desktop_web"

Для VK Play

lvid S2S идентификатор устройства Строка, кол-во символов 32 "lvid":"00000000000000000000000000000000"
sezamUserId Идентификатор пользователя на платформе VK Play Целое число "sezamUserId": 123456789
hwid Идентификатор десктоп-устройства для приложений на платформе VK Play, Hardware ID Строка, содержащая положительное число. Максимально возможное значение "18446744073709551615" "hwid":"17311996565727399517"

Пример запроса

curl https://tracker-s2s.my.com/v1/customRevenue/?idApp=666 \
–k –X POST --header "Authorization: aaaaaAAAaaa01aaaaaaa1aaAAA11a" \
-d '{"customUserId": "1", "idTransaction": "order1234",
"currency": "USD", "total": 1.99, "eventTimestamp": "1580213208",
"instanceId": "00000000-0000-0000-0000-000000000000"}'

Коды ответов

Код Ответ Описание
200 {"message": "ОK"} Запрос был успешно обработан
400 {"error": "Bad Request"} Ошибка запроса, параметры не прошли валидацию
403 {"error": "Forbidden"} Токен не прошёл валидацию, либо не подходит для приложения
400 {"error": "Empty post data"} Пустое тело запроса
400 {"error": "Bad json"} Передан битый json в теле запроса
400 {"error": "Bad api version"} Неподдерживаемая версия API
400 {"error": "Platform is not supported in this method. Please, use googlePlay* methods for Android and appStore* methods for iOS"} Метод не поддерживает эту платформу. Пожалуйста, используйте методы googlePlay* для Android и методы appStore* для iOS
404 {"error": "Method not found"} Метод API не найден
500 {"error": "Internal Server Error"} Внутренняя ошибка API. Нужно повторить запрос позже
Была ли эта статья полезна?