Подключение Unreal Engine SDK🔗
Минимальные требования🔗
Минимальная поддерживаемая версия Unreal Engine 4.26, Android 4.4(API: 19), iOS 13.0. Также базовый модуль MRGS поддерживает все платформы на UE, например PlayStation, Switch, XBOX, OSX и др.
Интеграция🔗
Для интеграции библиотеки MRGS необходимо выполнить следующие шаги
Шаг 1 - Добавьте библиотеку в проект🔗
- Загрузите последнюю версию библиотеки.
- Распакуйте архив.
- Скопируйте MRGService plugin в ваш проект
{project}/Plugins/
Huawei/AppTouch Store
Для поддержки Huawei/AppTouch Store следует добавить:
1) com.huawei.hms:ads-identifier:3.4.58.301 согласно документации.
2) com.huawei.hms:opendevice:6.11.0.300 согласно документации.
Шаг 2 - Вызовите метод инициализации🔗
Вызовите метод инициализации FMRGService::Get().Initialize() для инициализации SDK. В качестве аргументов необходимо указать MRGS_APP_ID, CLIENT_SECRET.
#include "MRGService.h"
void AppGameMode::BeginPlay()
{
if (!FMRGService::Get().IsInitialized())
{
FMRGServiceParams ServiceParams;
ServiceParams.AppId = TEXT("<MRGS_APP_ID>");
ServiceParams.AppSecret = TEXT("<CLIENT_SECRET>");
FMRGService::Get().Initialize(ServiceParams);
}
}
Android FMRGSPlatform
При инициализации FMRGService под Android, необходимо передать FMRGSPlatform (то есть тот магазин, в который планируется выкладывать сборку).
MRGS_APP_ID и CLIENT_SECRET
MRGS_APP_ID - ID приложения на сайте MRGS. CLIENT_SECRET - Клиентский ключ. Их можно получить на сайте MRGS в разделе настройки вашего приложения
Важно! Не забывайте что эти параметры отличаются для Android и iOS сборки. Используйте правильные ключи инициализации 
Внимание! Вызов любых методов (кроме GDPR) до вызова метода старта SDK может привести к неопределенному поведению MRGS. Будьте внимательны, не начинайте работу с MRGS до вызова метода инициализации!
Запрос трекинга пользователя на iOS 14+
В случае, если вы хотите показать pop-up запроса на разрешения трекинга (получения IDFA) в iOS 14, можете воспользоваться нашими методами показа. Обычно IDFA необходим для трекинга рекламы, подробнее можете прочитать по ссылке выше.
Шаг 3 (Опциональный) - Добавьте трекинг входа в игровой аккаунт🔗
Если ваше приложение использует идентификатор игрока (USER_ID), его необходимо передать в MRGS с помощью метода:
Шаг 4 - Добавьте трекинг платежей🔗
После проведения платежа необходимо сообщить данные о нем в MRGS.
iOS
По умолчанию MRGS на iOS автоматически соберет все данные о платежах с помощью автотрекинга, дополнительно никаких действий делать не нужно.
В случае, если вы не хотите использовать автотрекинг, то вам необходимо выключить автоматическое отслеживание платежей FMRGExtraOptionsIOS.bIsAutomaticPaymentTrackingEnabled = false;, и воспользоваться методом для прямой передачи данных о платеже, описанным ниже (нерекомендуемый подход).
Для отправки данных о платеже вы можете воспользоваться методом:
Примеры отправки данных о платеже на разных платформах:
Пример для Android (GooglePlay)
skuDetails - информация о товаре в формате JSON. Получить ее можно вызвав метод getSkuDetails
purchaseData - это INAPP_PURCHASE_DATA поле полученное из ответа Google после покупки getBuyIntent
dataSignature - это INAPP_DATA_SIGNATURE поле полученное из ответа Google после покупки getBuyIntent
Пример для Huawei/AppTouch
inAppPurchaseDataJson - информация о покупке в формате JSON. Получить ее можно вызвав метод com.huawei.hms.iap.entity.PurchaseResultInfo#getInAppPurchaseData()
inAppSignature - зашифрованная платежная информация. Получить ее можно вызвав метод com.huawei.hms.iap.entity.PurchaseResultInfo#getInAppDataSignature()
Пример для Samsung
productVoJson - информация о товаре в формате JSON. Получить ее можно вызвав метод com.samsung.android.sdk.iap.lib.vo.ProductVo#getJsonString()
purchaseVoJson - информация о покупке в формате JSON. Получить ее можно вызвав метод com.samsung.android.sdk.iap.lib.vo.PurchaseVo#getJsonString()
Пример для Amazon
productJson - информация о товаре в формате JSON. Получить ее можно вызвав метод com.amazon.device.iap.model.Product#toJSON()
receiptJson - информация о покупке в формате JSON. Получить ее можно вызвав метод com.amazon.device.iap.model.Receipt#toJSON()
userDataJson - информация о покупателе в формате JSON. Получить ее можно вызвав метод com.amazon.device.iap.model.UserData#toJSON()
Пример для iOS
Ev - информация о продукте.
transactionReceipt - чек транзакции в старом формате base64 (не applicationReceipt).
#include "MRGSMetrics.h"
// Setting SDK params
FMRGExtraOptionsIOS.bIsAutomaticPaymentTrackingEnabled = false
// Sending payment
FMRGSPurchaseEvent Ev;
Ev.OrderId = TEXT("1000000353116913");
Ev.ProductId = TEXT("games.my.mrgs.weapon6");
Ev.LocalizedTitle = TEXT("Great gold weapon");
Ev.LocalizedDescription = TEXT("Destroy anyone with this gun. Limited edition!");
Ev.Price = 15;
Ev.PriceCurrency = TEXT("USD");
FString TransactionReceipt(TEXT("MIIVSwYJKoZIhvcNAQcCoIIVPDCCFTgCAQExCzAJBgUrDg.........85+V19vrPYvnHcHh8yZEpRhtmlRmlWN+AWhJmYjuu4SGfIzg3oo416EWIYV8tke3t8pmHGClmoO7q+478RDbnmuBROz/1NQdlevyeyFkae/VCDRQ=="));
FMRGSMetrics::Get().AddPurchaseApple(En, TransactionReceipt);
Пример для Standalone платформы (Windows, OSX, PlayStation, Xbox, Switch и др.)
#include "MRGSMetrics.h"
FMRGSPurchaseEvent Ev;
Ev.OrderId = TEXT("123456789");
Ev.ProductId = TEXT("games.my.mrgs.weapon6");
Ev.LocalizedTitle = TEXT("Great gold weapon");
Ev.LocalizedDescription = TEXT("Limited edition");
Ev.Price = 1234.5;
Ev.PriceCurrency = TEXT("USD");
FMRGSMetrics::Get().AddPurchase(En);
Важно
- Трекинг платежей необходим в том случае, если вы не используете модуль MRGSBank.
- Убедитесь, что на сайте https://mrgs.astrum.team в настройках вашего приложения заполнены поля с ключами для валидации платежей и включена настройка "Только валидация платежей (без обработки)".
- MRGS автоматически отправит информацию о покупках во все настроенные SDK: AppsFlyer(только для iOS, Android, Huawei/AppTouch и Samsung покупок), Firebase(только для iOS и Android покупок), MyTracker(только для iOS и Android покупок), если подключены соответствующие модули
- Автотрекинг на iOS автоматически отключается при использовании модуля MRGSBank.
Проверка интеграции🔗
После завершения интеграции MRGS, мы рекомендуем убедиться в том, что библиотека работает корректно. О том как провести данную процедуру, читайте в разделе Проверки интеграции и поиск неисправностей
Дата создания: 2023-04-04