Подключение Unity SDK🔗
Минимальные требования🔗
Минимальная поддерживаемая версия Unity 2018.x, Android 4.4(API: 19), iOS 11.0 и XCode 14.1. Также базовый модуль MRGS поддерживает все платформы на Unity, например PlayStation, Switch, XBOX, OSX и др.
Интеграция🔗
Для интеграции библиотеки MRGS необходимо выполнить всего четыре простых шага
Шаг 1 - Добавьте библиотеку в проект🔗
Шаг 1. Добавьте источники
Для того, чтобы добавить MRGS в проект через Unity Package Manager (доступно с Unity 2018+) просто добавьте в файл Packages/manifest.json раздел scopedRegistries, добавив в него следующую запись:
{
"dependencies": {
...
},
"scopedRegistries": [
{
"name": "MRGS",
"url": "https://mrgs-nexus.my.games/repository/mrgs-uninty-plugins/",
"scopes": [
"games.my.mrgs"
]
}
]
}
Альтернативно, можно нажать Edit -> Project Settings -> Package Manager -> '+' in scoped registry section, и заполнить поля в соответствии с данными выше.
Шаг 2. Добавьте зависимость
- Нажмите
Window -> Package Manager -> select 'Packages: MyRegistries' from dropdown list, выберите пакетMRGServiceиз списка, затем нажмите "Install" - Импортируйте модуль:
using MRGS;
- Загрузите последнюю версию библиотеки. Распакуйте архив.
- (Для интеграции unitypackage) В Unity нажмите
Assets -> Import Package -> Custom Package, и выберите пакетgames.my.mrgs.core.unitypackageиз скачанного архива. - (Для интеграции tgz) В Unity нажмите
Window -> Package Manager -> '+' -> Add package from tarball, и выберите пакетgames.my.mrgs.core-<version>.tgzиз скачанного архива. - Импортируйте модуль:
using MRGS;
Play services resolver
MRGS использует Play services resolver для резолва внешних зависимостей, как для iOS, так и в Android. В случае, если вы не хотите использовать Play services resolver на iOS/Android, то просто удалите его из проекта, или выключите резолвер в его настройках, тогда MRGS автоматически определит, что резолвер не используется, сам добавит в проект все необходимые сторонние зависимости, хранящиеся также локально в пакете. Данное правило применимо для всех модулей MRGS. Также вы можете вручную с помощью define установить настройку работы MRGS с резолвером - MRGS_ENABLE_RESOLVER / MRGS_DISABLE_RESOLVER. Также для каждого модуля можно отдельно включить данную функцию с помощью дефайнов вида MRGS_ENABLE_RESOLVER_<MODULE_NAME_WITHOUT_MRGS> / MRGS_DISABLE_RESOLVER_<MODULE_NAME_WITHOUT_MRGS> ( например, MRGS_ENABLE_RESOLVER_FIREBASE).
Huawei/AppTouch Store
Для поддержки Huawei/AppTouch Store следует добавить:
1) com.huawei.hms:ads-identifier:3.4.62.300 согласно документации.
2) com.huawei.hms:opendevice:6.11.0.300 согласно документации.
Шаг 2 - Вызовите метод инициализации🔗
Вызовите метод инициализации MRGService.Instance.Initialize() в методе Awake класса MonoBehaviour, отвечающего за основную сцену в вашем проекте. В качестве аргументов необходимо указать MRGS_APP_ID, CLIENT_SECRET.
using MRGS;
public class MasterController : MonoBehaviour
{
void Awake()
{
// MRGService settings
var serviceParams = new MRGServiceParams(MRGS_APP_ID, CLIENT_SECRET);
// Requires Platform for Android application
serviceParams.AndroidExtraOptions.Platform = MRGSPlatformAndroid.Android; // (1)!
// Start SDK
MRGService.Instance.Initialize(serviceParams);
}
}
- Необходимо только при сборке под Android. Доступные платформы: Amazon, Android, Huawei, Samsung, and FacebookCloud
Android MRGSPlatform
При инициализации MRGService под Android, необходимо передать MRGSPlatform (то есть тот магазин, в который планируется выкладывать сборку).
MRGS_APP_ID и CLIENT_SECRET
MRGS_APP_ID - ID приложения на сайте MRGS. CLIENT_SECRET - Клиентский ключ. Их можно получить на сайте MRGS в разделе настройки вашего приложения
Важно! Не забывайте что эти параметры отличаются для Android и iOS сборки. Используйте правильные ключи инициализации 
Внимание! Вызов любых методов (кроме GDPR) до вызова метода старта SDK может привести к неопределенному поведению MRGS. Будьте внимательны, не начинайте работу с MRGS до вызова метода инициализации!
Запрос трекинга пользователя на iOS 14+
В случае, если вы хотите показать попап запроса на разрешения трекинга (получения IDFA) в iOS 14, можете воспользоваться нашими методами показа. Обычно IDFA необходим для трекинга рекламы, подробнее можете прочитать по ссылке выше.
Шаг 3 (Опциональный) - Добавьте трекинг входа в игровой аккаунт🔗
Если ваше приложение использует идентификатор игрока (USER_ID), его необходимо передать в MRGS с помощью метода:
Шаг 4 - Добавьте трекинг платежей🔗
После проведения платежа необходимо сообщить данные о нем в MRGS.
iOS
По умолчанию MRGS на iOS автоматически соберет все данные о платежах с помощью автотрекинга, дополнительно никаких действий делать не нужно.
В случае, если вы не хотите использовать автотрекинг, то вам необходимо выключить автоматическое отслеживание платежей (serviceParams.IOSExtraOptions.AutomaticPaymentTracking = false;), и воспользоваться методом для прямой передачи данных о платеже, описанным ниже (нерекомендуемый подход).
Для отправки данных о платеже вы можете воспользоваться методом:
MRGSMetrics.Instance.AddPurchase(MRGSPurchaseEvent);
// Or if you're using Unity IAP:
MRGSMetrics.Instance.AddPurchase(UnityEngine.Purchasing.Product);
В случае, если вы используете Unity IAP, и define UNITY_PURCHASING по какой-то причине не выставился у вас в проекте, вы можете принудительно включить видимость метода с помощью define MRGS_FORCE_UNITY_IAP
Примеры отправки данных о платеже на разных платформах:
Пример для 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
product - информация о продукте.
transactionIdentifier - идентификатор транзакции.
transactionReceipt - чек транзакции в старом формате base64 (не applicationReceipt).
// Setting SDK params
serviceParams.IOSExtraOptions.AutomaticPaymentTracking = false;
// Sending payment
var product = MRGSPurchaseEvent.Product.Builder("games.my.mrgs.weapon6")
.WithLocalizedTitle("Great gold weapon")
.WithLocalizedDescription("Destroy anyone with this gun. Limited edition!")
.WithPrice("15")
.WithPriceCurrency("USD")
.Build();
var transactionIdentifier = "1000000353116913";
var transactionReceipt = "MIIVSwYJKoZIhvcNAQcCoIIVPDCCFTgCAQExCzAJBgUrDg.........85+V19vrPYvnHcHh8yZEpRhtmlRmlWN+AWhJmYjuu4SGfIzg3oo416EWIYV8tke3t8pmHGClmoO7q+478RDbnmuBROz/1NQdlevyeyFkae/VCDRQ==";
var purchaseEvent = MRGSPurchaseEvent.IOS(product, transactionIdentifier, transactionReceipt);
MRGSMetrics.Instance.AddPurchase(purchaseEvent);
Пример для Standalone платформы (Windows, OSX, PlayStation, Xbox, Switch и др.)
var product = MRGSPurchaseEvent.Product.Builder("weapon_34")
.WithLocalizedTitle("Great gold weapon")
.WithLocalizedDescription("Limited edition")
.WithPrice("1234.5")
.WithPriceCurrency("USD")
.Build();
var transactionIdentifier = "123456789";
var purchaseEvent = MRGSPurchaseEvent.Standalone(transactionIdentifier, product);
MRGSMetrics.Instance.AddPurchase(purchaseEvent);
Пример для сторонних платежных систем
Начиная с версии MRGS 6.1.0, появилась возможность отправлять информацию по платежам для любых сторонних платежных систем в MRGS. К таким платежам не будет применяться валидация платежей, и такие платежи будут записываться в базу данных как есть:
var transactionId = "1234-5678-000-ABCD";
const string productId = "com.your.product.custom10";
const float price = 12f;
const string currency = "EUR";
var revenue = new MRGSPurchaseEvent.Revenue(transactionId, productId, price, currency)
{
Title = "Custom Product",
Description = "Custom product need for test",
};
var purchaseEvent = MRGSPurchaseEvent.CustomEvent(revenue);
MRGSMetrics.Instance.AddPurchase(purchaseEvent);
Важно
- Трекинг платежей необходим в том случае, если вы не используете модуль MRGSBank.
- Убедитесь, что на сайте https://mrgs.astrum.team в настройках вашего приложения заполнены поля с ключами для валидации платежей и включена настройка "Только валидация платежей (без обработки)".
- MRGS автоматически отправит информацию о покупках во все настроенные SDK: AppsFlyer(только для iOS, Android, Huawei/AppTouch и Samsung покупок), Firebase(только для iOS и Android покупок), MyTracker(только для iOS и Android покупок), если подключены соответствующие модули
- Автотрекинг на iOS автоматически отключается при использовании модуля MRGSBank.
Проверка интеграции🔗
После завершения интеграции MRGS, мы рекомендуем убедиться в том, что библиотека работает корректно. О том как провести данную процедуру, читайте в разделе Проверки интеграции и поиск неисправностей
Обновление SDK🔗
При обновлении SDK через Unity Package Manager достаточно обновить SDK в интерфейсе UPM, а в случае, если вы интегрировали .unitypackage решение, мы рекомендуем вам полностью удалить папку Assets/MRGS/<games.my.mrgs.<module_name>, после чего импортировать уже обновленную версию SDK.
Дата создания: 2020-01-20