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

Начало работы с MRGSMyTracker🔗

MyTracker - SDK для сбора статистики, подробнее читайте на официальном сайте. MRGS позволяет автоматически стартовать sdk и передавать в него большую часть необходимых событий и многое другое.

MyTracker поддерживается только для мобильных платформ.

Для интеграции, необходимо выполнить несколько простых шагов:

Шаг 1. Импортируйте модуль MRGSMyTracker🔗

Добавление в Unity проект (общая инструкция)

Шаг 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, выберите пакет MRGSMyTracker из списка, затем нажмите "Install"
  • Импортируйте модуль: using MRGS;
  • Загрузите последнюю версию библиотеки. Распакуйте архив.
  • (Для интеграции unitypackage) В Unity нажмите Assets -> Import Package -> Custom Package, и выберите пакет games.my.mrgs.mytracker.unitypackage из скачанного архива.
  • (Для интеграции tgz) В Unity нажмите Window -> Package Manager -> '+' -> Add package from tarball, и выберите пакет games.my.mrgs.mytracker-<version>.tgz из скачанного архива.
  • Импортируйте модуль: using MRGS;
Добавление в iOS проект (общая инструкция)

Шаг 1. Добавьте зависимости

Через Package collection

  • В Xcode выберите File > Add Packages
  • Выберите «+» > "Add Swift Package Collection"
  • Вставьте URL: https://mrgs-nexus.my.games/repository/ios-sdks/MRGSPackageCollection.json
  • Выберите модуль MRGSMyTracker из "MRGS Package Collection".
  • Или вы можете выбрать пакет «MRGS» из "MRGS Package Collection" (содержит все модули mrgs в качестве продуктов), а затем выбрать только продукт "MRGS/MyTracker".

Отдельными пакетами

  • В Xcode выберите File > Add Packages
  • В строке поиска в правом верхнем углу вставьте URL: https://mrgs-gitea.my.games/mrgs/mrgsmytracker-ios-sdk.git
  • Добавьте модуль в свой проект
  • Или вы можете вставить URL https://mrgs-gitea.my.games/mrgs/ios-sdks.git, чтобы подключить пакет "MRGS", который содержит все модули mrgs в качестве продуктов, а затем выбрать только продукт "MRGS/MyTracker".

Шаг 2. Добавьте поддержку категорий ObjectiveC

  • В настройках проекта установите флаг -ObjC в поле "Other linker Flags".
  • Импортируйте модуль в коде: @import MRGServiceKit; или @import MRGSMyTracker; или #import <MRGSMyTracker/MRGSMyTracker.h>

Шаг 1. Добавьте источники

В вашем podfile добавьте источники в начало файла:

source 'https://github.com/CocoaPods/Specs.git' # For main repo
source 'https://mrgs-gitea.my.games/mrgs/cocoapods-specs.git'  # For MRGS repo

Шаг 2. Добавьте зависимости

В target добавьте последнюю версию MRGSMyTracker:

Чтобы добавить через subspecs:

target 'MyProject' do
    pod 'MRGS', '~> 5.0.0', :subspecs => ['MyTracker']
end

Для добавления через отдельные модули:

target 'MyProject' do
    pod 'MRGSMyTracker', '~> 5.0.0'
end

Чтобы добавить все модули mrgs:

target 'MyProject' do
    pod 'MRGS/AllKits', '~> 5.0.0'
end

Шаг 3. Установите зависимости

  • Выполните pod install (или pod install --repo-update если необходимо)
  • Импортируйте модуль в коде: @import MRGServiceKit; или @import MRGSMyTracker; или #import <MRGSMyTracker/MRGSMyTracker.h>

Шаг 1. Добавьте зависимости

Добавьте зависимость в ваш Cartfile:

binary "https://mrgs-nexus.my.games/repository/ios-sdks/MRGSMyTracker/MRGSMyTracker.json" ~> 5.0.0

Шаг 2. Установите зависимости

  • Выполните carthage update --use-xcframeworks
  • Добавьте загруженные фреймворки в свой проект (убедитесь, что опция "do not embed" включена)
  • В настройках проекта установите флаг -ObjC в поле "Other linker Flags".
  • Импортируйте модуль в коде: @import MRGServiceKit; или @import MRGSMyTracker; или #import <MRGSMyTracker/MRGSMyTracker.h>
  • Загрузите последнюю версию библиотеки. Распакуйте архив.
  • Добавьте MRGSMyTracker.xcframework из скачанного архива в ваш проект (Перетащите библиотеки в раздел "Linked frameworks and Libraries") (для совместимости в архиве также находится MRGSMyTracker.framework - fat framework старого вида)

  • В настройках проекта установите флаг -ObjC в поле "Other linker Flags".

  • Импортируйте модуль в коде: @import MRGSMyTracker; или #import <MRGSMyTracker/MRGSMyTracker.h>
  • Также, вы можете добавить из архива файлы MRGServiceKit.h и module.modulemap в свой проект, либо в настройках проекта укажите путь до них в разделе Build Settings -> Header search paths. Теперь вместо импорта каждого из наших фреймворков по отдельности, вы можете импортировать только один заголовочный файл: @import MRGServiceKit;
Добавление в Android проект
dependencies {
    def mrgsVersion = "6.x.x"

    implementation "games.my.mrgs:mytracker:$mrgsVersion"
}

Скопируйте файл MRGSMyTracker.aar в директорию libs вашего проекта. Добавьте необходимые зависимости в файл build.gradle

dependencies {
    //...
    implementation(name: 'MRGService', ext:'aar')
    implementation(name: 'MRGSMyTracker', ext:'aar')

    implementation "com.my.tracker:mytracker-sdk:$myTrackerVersion"
}

С версии 6.0.0-a MyTracker является отдельным модулем

Huawei/AppTouch Store

Добавьте зависимость согласно документации

dependencies {
    //... other dependencies
    implementation 'com.huawei.hms:ads-identifier:3.4.62.300'
}

Шаг 2. Предварительная настройка и инициализация🔗

При старте SDK MRGS необходимо передать параметры (MY_TRACKER_SDK_KEY) и настройки для MyTracker:

var modulesParams = new List<MRGSExternalSDKSettings>();
modulesParams.Add( new MRGSMyTrackerParams(AppSettings.MYTRACKER_APPKEY)
{
    Debug = true,
    ForwardMetrics = true,
    TrackingLocationEnabled = true
});

// MRGS Initialization
MRGService.Instance.Initialize(serviceParams,  modulesParams);
@import MRGService;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // MRGService settings
    MRGServiceParams *mrgsParams = [[MRGServiceParams alloc] initWithAppId: <MRGS_APP_ID> secret: <CLIENT_SECRET>];
    // MyTracker
    MRGSMyTrackerParams *myTrackerParams = [[MRGSMyTrackerParams alloc] initWithAppId: <MY_TRACKER_SDK_KEY>];
    myTrackerParams.forwardMetrics = YES; // All MRGS metrics sent through the MRGSMetrics class will automatically be sent to MyTracker
    //Start MRGS
    [MRGService startWithServiceParams:mrgsParams externalSDKParams:@[myTrackerParams] delegate:nil];
}
import java.util.ArrayList;
import java.util.List;
import games.my.mrgs.MRGSModuleParams;
import games.my.mrgs.MRGSPlatform;
import games.my.mrgs.MRGService;
import games.my.mrgs.MRGServiceParams;
import games.my.mrgs.my.tracker.MRGSMyTrackerParams;

public class YourApplicationClass extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        final MRGServiceParams serviceParams = MRGServiceParams.init(<MRGS_APP_ID>, <CLIENT_SECRET>, MRGSPlatform.ANDROID);
        serviceParams.setDebuggable(false);
        // Settings for MRGSModules
        final List<MRGSModuleParams> moduleParams = new ArrayList<>();
        // Setting MyTracker
        final MRGSMyTrackerParams myTrackerParams = MRGSMyTrackerParams.init("MY_TRACKER_SDK_KEY");
        myTrackerParams.setDebuggable(false);
        moduleParams.add(myTrackerParams);
        MRGService.service(context, serviceParams, moduleParams);
    }
}
MY_TRACKER_SDK_KEY

MY_TRACKER_SDK_KEY - SDK ключ библиотеки MyTracker. Его можно получить на сайте MyTracker в разделе настройки вашего приложения mytracker_settings

Важно! Не забывайте что этот параметр отличается для Android и iOS сборки. Используйте правильные ключи инициализации

Шаг 3. Трекинг входа🔗

Для корректного подсчета игровой статистики (число регистраций и авторизаций, а также платежи LifeTime) в системе MyTracker/1link, необходимо сообщать об этих событиях с помощью методов:

// After user registration
MRGSMyTracker.Instance.TrackRegistrationEvent();
// After user authorization
MRGSMyTracker.Instance.TrackLoginEvent();
// After user registration
[MRGSMyTracker trackRegistrationEvent];

// After user authorization
[MRGSMyTracker trackLoginEvent];
import games.my.mrgs.my.tracker.MRGSMyTracker;

// After user registration
MRGSMyTracker.getInstance().trackRegistrationEvent();
// After user authorization
MRGSMyTracker.getInstance().trackLoginEvent();

Внимание!

trackLoginEvent необходимо вызвать в любом случае - была ли регистрация или авторизация пользователя. Метод trackRegistrationEvent должен быть вызван только при регистрации (создании) учетной записи пользователя. Оба этих метода должны быть вызваны после вызова метода MRGSUsers#setUserId иначе события будут переданы без идентификатора пользователя и статистика будет неточной.

Автоматическая отправка событий🔗

MRGS автоматически вызовет следующие методы MyTracker для передачи необходимых событий:

  • При инициализации MyTracker будет установлен параметр customUserId. Туда будет передан USER_ID, если есть сохраненный с прошлого сеанса
  • После получения deviceId будет вызван метод setMrgsId с полученным deviceId
  • При вызове метода MRGSUsers#setUserId будет установлен параметр customUserId у MyTracker
  • При отправке метрики будет вызван метод trackEvent, если не был отключен форвардинг метрик
  • Для Unity, при запуске игры, будет вызван метод trackLaunchManually
  • При совершении платежа на Android будет вызван метод trackPurchaseEvent. На iOS MyTracker самостоятельно подписывается на очередь транзакций для отслеживания совершаемых платежей.

Отправка событий🔗

С помощью этого API Вы сможете отправлять события в MyTracker напрямую. Например:

var params = new Dictionary<string,string>();
params["someInfoKey"] = "someImportantInfo";

MRGSMyTracker.Instance.TrackEvent("someEvent", params);
[MRGSMyTracker trackEventWithName:@"someEvent" eventParams:@{@"level":@"1"}];
Map<String, String> params = new TreeMap<>();
params.put("androidParam", "androidValue");

MRGSMyTracker.getInstance().trackEvent("someEvent", params);

Управление параметрами отправки🔗

Вы можете установить интервал в секундах, в течение которого события будут накапливаться на устройстве перед отправкой на сервер. По умолчанию 900 секунд. Можно установить значение в диапазоне 1-86400 секунд.

MRGSMyTracker.Instance.SetBufferingPeriod(1000);
[MRGSMyTracker setBufferingPeriod:1000];
MRGSMyTracker.getInstance().setBufferingPeriod(1000);

Также вы можете установить интервал в секундах, в течение которого события будут накапливаться на устройстве перед отправкой на сервер. По умолчанию 900 секунд. Можно установить значение в диапазоне 1-86400 секунд (1 день).

MRGSMyTracker.Instance.SetForcingPeriod(1000);
[MRGSMyTracker setForcingPeriod:1000];
MRGSMyTracker.getInstance().setForcingPeriod(1000);

Также вы можете установить интервал в секундах, в течение которого новый запуск не отслеживается и сеанс не прерывается, пока приложение находится в фоновом режиме. Диапазон возможных значений: 30-7200 секунд. По умолчанию 30 секунд.

MRGSMyTracker.Instance.SetLaunchTimeout(30);
[MRGSMyTracker setLaunchTimeout:30];
MRGSMyTracker.getInstance().setLaunchTimeout(30);

Для немедленной отправки накопленных событий, воспользуйтесь методом flush (Мы не рекомендуем вызывать его слишком часто).

MRGSMyTracker.Instance.Flush();
[MRGSMyTracker flush];
MRGSMyTracker.getInstance().flush();

Получение данных из MyTracker🔗

Для получения уникального идентификатора InstanceID для S2S отправки событий, воспользуйтесь методом:

 MRGSMyTracker.Instance.GetInstanceId((string instanceID) => {
    Debug.Log("MRGSMyTracker GetInstanceId: " + instanceID ?? "null");
});
[MRGSMyTracker getInstanceIdWithCompletionHandler: ^(NSString* instanceID) {
    NSLog(@"MyTracker getInstanceIdWithCompletionHandler: %@", instanceID);
}];
MRGSMyTracker.getInstance().getInstanceId(Context, new Consumer<String>() {
    @Override
    public void accept(String instanceId) {
        Log.v("MRGSMyTracker", "instanceId: " + instanceId);
    }
});

Для поддержки диплинков и отложенных диплинков (Deeplink или Deffered deeplink) в своем приложении необходимо установить делегат (не важно до или после запуска MRGS), для получения информации о них. Делегат будет вызван при первом запуске приложения в случае, если для текущей установки был найден отложенный диплинк, а также каждый раз при запуске приложения по диплинку. В качестве параметра при вызове будет передан объект атрибуции MRGSMyTrackerAttribution, содержащий свойство deeplink:

MRGSMyTracker.Instance.SetAttributionListener((MRGSMyTrackerAttribution attribution) => {
    Debug.Log("Received attribution from MRGSMyTracker - " + attribution.Deeplink);
});
// Установка делегата:
// Где self - объект, реализующий протокол MRGSMyTrackerAttributionDelegate
[MRGSMyTracker setAttributionDelegate: self];

// Реализация делегата:
- (void)didReceiveAttribution:(nonnull MRGSMyTrackerAttribution *)attribution {
    NSLog(@"MRGSMyTracker didReceiveAttribution delegate called with data - %@", attribution.deeplink);
}
// Где this - объект, реализующий интерфейс MRGSMyTrackerAttributionListener
MRGSMyTracker.getInstance().setAttributionsListener(this)

// Реализация делегата:
void onDeepLink(String deepLink) {
    //deepLink will contain attribution data
}

Диплинки позволяют при запуске приложения передавать в него дополнительные параметры. Эти параметры могут быть использованы для перехода на определенный экран приложения. Отложенные диплинки позволяют передать в приложение дополнительные параметры при первом запуске после установки. Эти параметры могут быть использованы точно так же, как и в случае обычных диплинков.

Для настройки отложенных диплинков от MyTracker, обратитесь к документации MyTracker.

Управление отслеживанием событий из MRGSMetrics🔗

По умолчанию MRGSMetrics дублирует события в MyTracker. Если по какой-то причине вам нужно отключить отправку, просто добавьте настройку при настройке параметров:

var trackerParams = // ...

trackerParams.ForwardMetrics = false;

// MRGS Initialization
...
myTrackerParams.forwardMetrics = NO;

[MRGService startWithServiceParams:<params> externalSDKParams:externalParams delegate:nil];
...
myTrackerParams.setForwardMetricsEnabled(false);

// MRGS Initialization

Выставление customUserID🔗

Если вы хотите выставлять собственный userId, вам необходимо вызвать указанный метод до инициализации MRGS, передав туда null (тогда при старте SDK мы не будем проставлять никаких данных в это поле), и после того, как у вас появится userId, выставить его через указанный метод. Также, можно сразу выставить ваш userId до старта MRGS.

MRGSMyTracker.Instance.ForceCustomUserId("your_customer_user_id");
[MRGSMyTracker forceCustomUserId:@"your_customer_user_id"];
MRGSMyTracker.forceCustomUserId("your_customer_user_id")

Отслеживание местоположения🔗

MRGS по умолчанию отключает отслеживание местоположения пользователя в MyTracker, если вам по какой-то причине нужно изменить данное поведение, то просто добавьте настройку при настройке параметров:

var trackerParams = // ...

trackerParams.TrackingLocationEnabled = false;

// MRGS Initialization
serviceParams.locationTrackingEnabled = YES;

[MRGService startWithServiceParams:serviceParams];
myTrackerParams.setTrackingLocationEnabled(true);

// MRGS Initialization

Последнее обновление: 2023-10-25
Дата создания: 2020-01-20