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

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

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

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

  • Добавьте модуль MRGSFirebase

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

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

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

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

    • В настройках проекта установите флаг -ObjC в поле "Other linker Flags".
    • Импортируйте модуль в коде: @import MRGServiceKit; или @import MRGSFirebase; или #import <MRGSFirebase/MRGSFirebase.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 добавьте последнюю версию MRGSFirebase:

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

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

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

    target 'MyProject' do
        pod 'MRGSFirebase', '~> 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 MRGSFirebase; или #import <MRGSFirebase/MRGSFirebase.h>

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

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

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

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

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

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

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

    Android:

    Добавьте зависимости в корневой и приложения build.gradle файлы:

    dependencies {
        // Root gradle
        //...
        classpath 'com.android.tools.build:gradle:7.4.2'
    
        // Add it.
        classpath 'com.google.gms:google-services:4.3.13'
    
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    

    dependencies {
        def mrgsVersion = "6.x.x"
    
        implementation "games.my.mrgs:firebase:$mrgsVersion"
    }
    

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

    dependencies {
        // Root gradle
        //...
        classpath 'com.android.tools.build:gradle:7.4.2'
    
        // Add it.
        classpath 'com.google.gms:google-services:4.3.13'
    
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    
    dependencies {
        // App module
        //...
        implementation(name: 'MRGSFirebase', ext:'aar')
    
        implementation 'androidx.appcompat:appcompat:1.6.1'
        implementation 'com.google.firebase:firebase-analytics:21.3.0'
    }
    

Huawei Store

Обратите внимание, что Huawei больше не поставляет Google Service на своих девайсах что делает недоступны работу Firebase.

Шаг 2. Настройте приложение на сайте Firebase🔗

  • На сайте Firebase создайте приложение, руководствуясь документацией Google Firebase
  • Зайдите в раздел настроек приложения
Раздел настроек приложения

firebase_project_settings

  • Загрузите файлы google-services.json для Android и GoogleService-Info.plist для iOS
Загрузка файлов конфигурации

firebase_project_settings

firebase_project_settings

Шаг 3. Добавьте файлы загруженные файлы в проект🔗

Unity🔗

Для Android:

Скопируйте файл google-services.json в Assets/Plugins/Android/assets. Unity, во время сборки, поместит файл google-services.json в директории src/main/assets Android-проекта. Вам надо настроить сборку так, чтоб этот файл оказался в корне собираемого Android проекта. Лучше это сделать, отредактировав файл (смотри вкладку Unity< ваша_версия >) в директории Assets/Plugins/Android и поместив в самый конец файла такой код

Unity 2018

Отредактируйте файл baseProjectTemplate.gradle.

dependencies {
    classpath 'com.android.tools.build:gradle:7.4.2'

    // Add it.
    classpath 'com.google.gms:google-services:4.3.13'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Отредактируйте файл mainTemplate.gradle.

if ('**APPLICATIONID**' == <YOUR_APP_PACKAGE_NAME>)
{
    copy {
        from "./src/main/assets/"
        into "./"
        include 'google-services.json'
    }

    apply plugin: 'com.google.gms.google-services'
}

Unity 2019

Отредактируйте файл baseProjectTemplate.gradle.

dependencies {
    classpath 'com.android.tools.build:gradle:7.4.2'

    // Add it.
    classpath 'com.google.gms:google-services:4.3.13'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Отредактируйте файл launcherTemplate.gradle.

if ('**APPLICATIONID**' == <YOUR_APP_PACKAGE_NAME>)
{
    copy {
        from "../unityLibrary/src/main/assets/"
        into "./"
        include 'google-services.json'
    }

    apply plugin: 'com.google.gms.google-services'
}

Внимание

<YOUR_APP_PACKAGE_NAME> - package name вашего Android-проекта, а строчка apply plugin: 'com.google.gms.google-services' нужна для того, чтобы распарсить файл google-services.json

Для iOS:

Скопируйте файл GoogleService-Info.plist в Assets/Plugins/iOS. MRGS автоматически при сборке добавит данный файл в проект XCode в раздел "Copy Bundle Resources". В случае, если вы не хотите класть файл в Assets/Plugins/iOS, вы можете положить его в любое место, но в таком случае Вам будет необходимо добавить копирование данного файла (с помощью PostBuildProcess) в проект XCode , ниже приведен код для копирования файла:

Пример копирования файла в проект с помощью PostBuildProcess
public class MRGSPostBuildExample
{
    private const string ConfigsPath = "Assets/Path/Configs";

    [PostProcessBuild]
    public static void PostProcessBuild(BuildTarget target, string path)
    {
        if (target == BuildTarget.iOS)
        {
#if UNITY_IOS
            string projPath = PBXProject.GetPBXProjectPath(path);
            PBXProject proj = new PBXProject();
            proj.ReadFromString(File.ReadAllText(projPath));

#if UNITY_2019_3_OR_NEWER
            string projectTarget = proj.GetUnityMainTargetGuid();
#else
            string targetName = PBXProject.GetUnityTargetName();
            string projectTarget = proj.TargetGuidByName(targetName);
#endif

            AddLocalFile(path, proj, projectTarget, ConfigsPath, "GoogleService-Info.plist");

            File.WriteAllText(projPath, proj.WriteToString());
#endif
        }
    }
#if UNITY_IOS
    private static void AddLocalFile(string buildPath, PBXProject proj, string targetName, string fileDir, string fileName)
    {
        var filePath = Path.Combine(fileDir, fileName);
        File.Copy(filePath, Path.Combine(buildPath, fileName), true);
        proj.AddFileToBuild(targetName, proj.AddFile(fileName, fileName, PBXSourceTree.Source));
    }
#endif
}

iOS🔗

Добавьте в проект (раздел Copy Bundle Resources во вкладке Build Phases) файл GoogleService-Info.plist (скачанный ранее из админки Firebase'a)

Android🔗

Скопируйте файл google-services.json в корень вашего проекта. Обычно это директория app. Отредактируйте файл build.gradle и добавьте в конец файла строчку

apply plugin: 'com.google.gms.google-services'

Шаг 4. Отправка событий🔗

Свойства пользователя🔗

Свойства пользователя — это атрибуты, которые вы определяете для описания сегментов вашей пользовательской базы, таких как языковые предпочтения или географическое положение.

Что бы установить свойства пользователя для отправки в firebase analytics воспользуйтесь методом:

...
MRGSFirebase.Instance.SetUserProperty("property_name", "property_value");
@import MRGSFirebase;

[MRGSFirebase setUserPropertyString:@"value" forName:@"property"];
import games.my.mrgs.firebase.MRGSFirebaseAnalytics;

MRGSFirebaseAnalytics.getInstance().setUserProperty("property_name", "property_value");

Собственные события🔗

Для отправки собственных событий воспользуйтесь API

var params = new Dictionary<string,object>();
params["someInfoKey"] = "someImportantInfo";
MRGSFirebase.Instance.TrackEvent("event_name", params);
@import MRGSFirebase;

[[MRGSFirebase sharedInstance] trackEvent:@"user_did_pass_level" eventParams:@{@"level":@"1"}];
Map<String, Object> params = new TreeMap<>();
params.put("someInfoKey", "someImportantInfo")
MRGSFirebaseAnalytics.getInstance().sendEvent("event_name", params);

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

MRGS автоматически отслеживает и передает некоторые дополнительные события запусков и платежей в Firebase.

  1. Вне зависимости от использования других модулей, MRGS автоматически отправит события:

    Событие Условие отправки
    mrgs_cumulative_session_time_30min Отправляется при суммарном нахождении пользователя в приложении более 30 минут. Отправляется один раз.
    mrgs_cumulative_session_time_60min Отправляется при суммарном нахождении пользователя в приложении более 60 минут. Отправляется один раз.
    mrgs_cumulative_session_time_120min Отправляется при суммарном нахождении пользователя в приложении более 120 минут. Отправляется один раз.
    mrgs_cumulative_session_time_180min Отправляется при суммарном нахождении пользователя в приложении более 180 минут. Отправляется один раз.
  2. MRGS также будет отправлять дополнительный список событий по платежам, но только если выполнено одно из условий:

    • Используется MRGSBilling для проведения платежей
    • Используется MRGSMetrics для уведомления MRGS о платежах
    • Используется Автотрекинг платежей на iOS

    Данные условия не являются обязательными, их можно не выполнять, если вам не нужны данные события по платежам.

    Событие Условие отправки
    Purchases1D Отправляется при покупке в течение одного дня после регистрации пользователя
    Purchases7D Отправляется при покупке в течение одной недели после регистрации пользователя
    Purchases14D Отправляется при покупке в течение двух недель после регистрации пользователя
    Purchases28D Отправляется при покупке в течение одного месяца после регистрации пользователя
    Purchases90D Отправляется при покупке в течение трех месяцев после регистрации пользователя
    UniquePurchases1D Отправляется при покупке в течение одного дня после регистрации пользователя, если эта покупка была первой среди совершенных им покупок
    UniquePurchases7D Отправляется при покупке в течение одной недели после регистрации пользователя, если эта покупка была первой среди совершенных им покупок
    UniquePurchases14D Отправляется при покупке в течение двух недель после регистрации пользователя, если эта покупка была первой среди совершенных им покупок
    UniquePurchases28D Отправляется при покупке в течение одного месяца после регистрации пользователя, если эта покупка была первой среди совершенных им покупок
    UniquePurchases90D Отправляется при покупке в течение трех месяцев после регистрации пользователя, если эта покупка была первой среди совершенных им покупок
    mrgs_valid_inapp_purchase Отправляется после того, как покупка была провалидирована, также к событию добавляется информация о платеже (sku, price, currency)
    mrgs_valid_inapp_5_dollars_plus Отправляется при совершении любой покупки на сумму, превышающую 5$.
    mrgs_valid_inapp_10_dollars_plus Отправляется при совершении любой покупки на сумму, превышающую 10$.
    mrgs_valid_inapp_50_dollars_plus Отправляется при совершении любой покупки на сумму, превышающую 50$.
    mrgs_valid_inapp_100_dollars_plus Отправляется при совершении любой покупки на сумму, превышающую 100$.

    Тестовые платежи

    Начиная с версии MRGS SDK 6.4.0, также будут отправляться тестовые платежи в Firebase но value у таких платежей будет 0.

Получения идентификатора приложения🔗

Чтобы получить идентификатор приложения используйте метод:

MRGSFirebase.Instance.GetAppInstanceId(instanceId =>
{
    // Handle the result.
});
@import MRGSFirebase;

NSLog(@"Firebase instance Id: %@", [MRGSFirebase appInstanceID]);
import games.my.mrgs.firebase.MRGSFirebaseAnalytics;
import games.my.mrgs.utils.optional.Consumer;

MRGSFirebaseAnalytics.getInstance().getAppInstanceId(new Consumer<String>() {
    @Override
    public void accept(String instanceId) {
        // Handle the result.
    }
});

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