Перейти к содержанию

Подключение 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 сборки. Используйте правильные ключи инициализации app_settings

Внимание! Вызов любых методов (кроме GDPR) до вызова метода старта SDK может привести к неопределенному поведению MRGS. Будьте внимательны, не начинайте работу с MRGS до вызова метода инициализации!

Запрос трекинга пользователя на iOS 14+

В случае, если вы хотите показать pop-up запроса на разрешения трекинга (получения IDFA) в iOS 14, можете воспользоваться нашими методами показа. Обычно IDFA необходим для трекинга рекламы, подробнее можете прочитать по ссылке выше.

Шаг 3 (Опциональный) - Добавьте трекинг входа в игровой аккаунт🔗

Если ваше приложение использует идентификатор игрока (USER_ID), его необходимо передать в MRGS с помощью метода:

#include "MRGSUsers.h"

FMRGSUsers::Get().SetUserId("<USER_ID>");

Шаг 4 - Добавьте трекинг платежей🔗

После проведения платежа необходимо сообщить данные о нем в MRGS.

iOS

По умолчанию MRGS на iOS автоматически соберет все данные о платежах с помощью автотрекинга, дополнительно никаких действий делать не нужно.

В случае, если вы не хотите использовать автотрекинг, то вам необходимо выключить автоматическое отслеживание платежей FMRGExtraOptionsIOS.bIsAutomaticPaymentTrackingEnabled = false;, и воспользоваться методом для прямой передачи данных о платеже, описанным ниже (нерекомендуемый подход).

Для отправки данных о платеже вы можете воспользоваться методом:

#include "MRGSMetrics.h"

FMRGSMetrics::Get().AddPurchase;

Примеры отправки данных о платеже на разных платформах:

Пример для Android (GooglePlay)

skuDetails - информация о товаре в формате JSON. Получить ее можно вызвав метод getSkuDetails
purchaseData - это INAPP_PURCHASE_DATA поле полученное из ответа Google после покупки getBuyIntent
dataSignature - это INAPP_DATA_SIGNATURE поле полученное из ответа Google после покупки getBuyIntent

#include "MRGSMetrics.h"

FMRGSMetrics::Get().AddPurchaseGoogle("<skuDetails>", "<purchaseData>", "<dataSignature>");
Пример для Huawei/AppTouch

inAppPurchaseDataJson - информация о покупке в формате JSON. Получить ее можно вызвав метод com.huawei.hms.iap.entity.PurchaseResultInfo#getInAppPurchaseData()
inAppSignature - зашифрованная платежная информация. Получить ее можно вызвав метод com.huawei.hms.iap.entity.PurchaseResultInfo#getInAppDataSignature()

#include "MRGSMetrics.h"

FMRGSMetrics::Get().AddPurchaseHuawei("<inAppPurchaseDataJson>", "<inAppSignature>");
Пример для Samsung

productVoJson - информация о товаре в формате JSON. Получить ее можно вызвав метод com.samsung.android.sdk.iap.lib.vo.ProductVo#getJsonString()
purchaseVoJson - информация о покупке в формате JSON. Получить ее можно вызвав метод com.samsung.android.sdk.iap.lib.vo.PurchaseVo#getJsonString()

#include "MRGSMetrics.h"

FMRGSMetrics::Get().AddPurchaseSamsung("<productVoJson>", "<purchaseVoJson>");
Пример для 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()

#include "MRGSMetrics.h"

FMRGSMetrics::Get().AddPurchaseAmazon("<productJson>", "<receiptJson>", "<userDataJson>");
Пример для 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, мы рекомендуем убедиться в том, что библиотека работает корректно. О том как провести данную процедуру, читайте в разделе Проверки интеграции и поиск неисправностей


Последнее обновление: 2025-01-21
Дата создания: 2023-04-04