Начало работы кросс-промо (Пилигрим)🔗
Для интеграции кросс-промо (Пилигрим) необходимо выполнить несколько простых шагов
Шаг 1. Импортируйте модуль кросс-промо🔗
-
Добавьте модуль MRGSAdvertising
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, выберите пакетMRGSAdvertisingиз списка, затем нажмите "Install" - Импортируйте модуль:
using MRGS;
- Загрузите последнюю версию библиотеки. Распакуйте архив.
- (Для интеграции unitypackage) В Unity нажмите
Assets -> Import Package -> Custom Package, и выберите пакетgames.my.mrgs.advertising.unitypackageиз скачанного архива. - (Для интеграции tgz) В Unity нажмите
Window -> Package Manager -> '+' -> Add package from tarball, и выберите пакетgames.my.mrgs.advertising-<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 - Выберите модуль MRGSAdvertising из "MRGS Package Collection".
- Или вы можете выбрать пакет «MRGS» из "MRGS Package Collection" (содержит все модули mrgs в качестве продуктов), а затем выбрать только продукт "MRGS/Advertising".
Отдельными пакетами
- В Xcode выберите File > Add Packages
- В строке поиска в правом верхнем углу вставьте URL:
https://mrgs-gitea.my.games/mrgs/mrgsadvertising-ios-sdk.git - Добавьте модуль в свой проект
- Или вы можете вставить URL
https://mrgs-gitea.my.games/mrgs/ios-sdks.git, чтобы подключить пакет "MRGS", который содержит все модули mrgs в качестве продуктов, а затем выбрать только продукт "MRGS/Advertising".
Шаг 2. Добавьте поддержку категорий ObjectiveC
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSAdvertising;или#import <MRGSAdvertising/MRGSAdvertising.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 добавьте последнюю версию MRGSAdvertising:
Чтобы добавить через subspecs:
Для добавления через отдельные модули:
Чтобы добавить все модули mrgs:
Шаг 3. Установите зависимости
- Выполните
pod install(илиpod install --repo-updateесли необходимо) - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSAdvertising;или#import <MRGSAdvertising/MRGSAdvertising.h>
Шаг 1. Добавьте зависимости
Добавьте зависимость в ваш Cartfile:
binary "https://mrgs-nexus.my.games/repository/ios-sdks/MRGSAdvertising/MRGSAdvertising.json" ~> 5.0.0Шаг 2. Установите зависимости
- Выполните
carthage update --use-xcframeworks - Добавьте загруженные фреймворки в свой проект (убедитесь, что опция "do not embed" включена)
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSAdvertising;или#import <MRGSAdvertising/MRGSAdvertising.h>
- Загрузите последнюю версию библиотеки. Распакуйте архив.
-
Добавьте
MRGSAdvertising.xcframeworkиз скачанного архива в ваш проект (Перетащите библиотеки в раздел "Linked frameworks and Libraries") (для совместимости в архиве также находится MRGSAdvertising.framework - fat framework старого вида) -
В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGSAdvertising;или#import <MRGSAdvertising/MRGSAdvertising.h> - Также, вы можете добавить из архива файлы
MRGServiceKit.hиmodule.modulemapв свой проект, либо в настройках проекта укажите путь до них в разделеBuild Settings -> Header search paths. Теперь вместо импорта каждого из наших фреймворков по отдельности, вы можете импортировать только один заголовочный файл:@import MRGServiceKit;
Android:
Добавьте зависимость в
build.gradleфайл:Скопируйте файл MRGSAdvertising.aar в директорию libs вашего проекта. Добавьте необходимые зависимости в файл build.gradle
dependencies { //... implementation(name: 'MRGSAdvertising', ext:'aar') implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' implementation 'androidx.vectordrawable:vectordrawable:1.1.0' } - Нажмите
Запрос трекинга пользователя на iOS 14+
Для более точного трекинга рекламы, конверсий, и др. необходим IDFA. На iOS 14+ необходимо запрашивать данное разрешение у пользователя. В случае, если вы хотите показать попап запроса на разрешения трекинга (получения IDFA) в iOS 14, можете воспользоваться нашими методами показа.
Шаг 2. Создайте объект рекламы🔗
Первым делом необходимо создать объект работы с рекламой. Вы можете работать со статической рекламой, или с видеорекламой и playable ads.
Для инициализации объекта воспользуйтесь методами:
//Статическая реклама
MRGSAdvertising* staticAD = [[MRGSAdvertisingManager sharedInstance] getAdvertising]; //Взять рекламу из общего массива
//Видеореклама или playable ad
MRGSAdvertising* videoAD = [[MRGSAdvertisingManager sharedInstance] createAdvertising:YES]; //YES указывает, что этот объект будет получать только видеоконтент и playable ads
Только для iOS и Android
Обратите внимание. Работа с видеорекламой аналогична отображению статического баннера. Основное отличие в том, что надо использовать не заранее созданные объект, а создать его вручную, указав что он будет работать только с видеоконтентом.
Шаг 3. Установите делегаты🔗
Затем необходимо установить делегат загрузки (протокол MRGSAdvertisingLoadDelegate) и делегат показа (протокол MRGSAdvertisingShowDelegate). Для установки воспользуйтесь методами:
// Set the delegate to be called on successful or unsuccessful download operation
// Conforms to MRGSAdvertising.ILoadDelegate
MRGSAdvertising.GetBanner().LoadDelegate = this;
// Set a delegate that will be called at the end of the view
// Conforms to MRGSAdvertising.IShowDelegate
MRGSAdvertising.GetBanner().ShowDelegate = this;
Шаг 4. Загрузите рекламу🔗
После установки всех необходимых параметров, необходимо загрузить рекламу с сервера MRGS.
Для того, чтобы произвести загрузку, воспользуйтесь методом:
После загрузки рекламы у объекта делегата будет вызван один из методов:
Убедитесь в наличии настроенной рекламы на сервере
При первой интеграции в случае, если вам приходит ошибка загрузки, необходимо убедиться, что креативы и кампании заведены на сервере MRGS. В случае возникновения таких проблем, для проверки и заведения тестовых кампаний обратитесь к контактному лицу, указанному на странице с шагами интеграции.
Шаг 5. Покажите рекламу🔗
После того, как реклама была загружена, Вы можете показать ее пользователю, для этого воспользуйтесь методом:
// Static
// Show ads. Optianally, you can set a payload that will be sent to your server after the ad has been shown.
MRGSAdvertising.GetBanner().ShowContent();
// Video
// Show ads. Optianally, you can set a payload that will be sent to your server after the ad has been shown.
MRGSAdvertising.GetVideo().ShowContent("test_payload");
После этого будет открыто окно рекламы. Для того, чтобы узнать о завершении показа и действии пользователя, будет вызван метод у объекта делегата
По флагу skipped можно понять, был ли досмотрен ролик до конца или нет, если ваша система подразумевает выдачу награды только в случае полного просмотра ролика.
Важно
Перед вызовом метода показа рекламы необходимо выключить убавить (mute) звук в игре, так как в баннере может использоваться видео с проигрыванием музыки. После срабатывания callback метода завершения показа звук можно опять включить.
Пример🔗
void LoadAdverts{
// Static
MRGSAdvertising.GetBanner().LoadDelegate = this;
MRGSAdvertising.GetBanner().ShowDelegate = this;
MRGSAdvertising.GetBanner().LoadContent();
// Video
MRGSAdvertising.GetVideo().LoadDelegate = this;
MRGSAdvertising.GetVideo().ShowDelegate = this;
MRGSAdvertising.GetVideo().LoadContent();
}
public void OnAdvertisingLoaded()
{
MRGSLog.Instance.AddLog("MRGS OnAdvertisingLoaded: ");
if (MRGSAdvertising.GetBanner().CanShowContent()){
MRGSAdvertising.GetBanner().ShowContent();
}
if (MRGSAdvertising.getVideo().CanShowContent()){
//Video Content Loaded
// Mute the sound in the app, as there may be music in the video
MRGSAdvertising.GetVideo().ShowContent();
}
}
public void OnAdvertisingLoadingError()
{
MRGSLog.Instance.AddLog("MRGS OnAdvertisingLoadingError: ");
}
public void OnAdvertisingFinished(bool skipped)
{
MRGSLog.Instance.AddLog("MRGS OnAdvertisingFinished: " + skipped);
}
@property (nonatomic, strong) MRGSAdvertising* videoAD;
- (void)viewDidLoad {
//Статическая реклама
MRGSAdvertising* staticAD = [[MRGSAdvertisingManager sharedInstance] getAdvertising];
[staticAD setLoadDelegate:self]; // где self - это объект реализующий протокол MRGSAdvertisingLoadDelegate
[staticAD setShowDelegate:self]; // где self - это объект реализующий протокол MRGSAdvertisingShowDelegate
[staticAD loadContent]; // этот метод проверит наличие контента и загрузит его
//Видеореклама
videoAD = [[MRGSAdvertisingManager sharedInstance] createAdvertising:YES]; //YES указывает, что этот объект будет получать только видеоконтент
[videoAD setLoadDelegate:self]; // где self - это объект реализующий протокол MRGSAdvertisingLoadDelegate
[videoAD setShowDelegate:self]; // где self - это объект реализующий протокол MRGSAdvertisingShowDelegate
[videoAD loadContent]; // этот метод проверит наличие контента и загрузит его
}
#pragma mark - Advertising delegate
- (void)onAdvertisingLoaded:(MRGSAdvertising*)advertising {
if(advertising == videoAD){
//Video Content Loaded
//Убрать звук в игре, так как в видео может быть музыка
}
[advertising showContentFromUIViewController:self];
//Или
//[[[MRGSAdvertisingManager sharedInstance] getAdvertising] showContentFromUIViewController:self]; //Получение рекламы из общего массива
}
- (void)onAdvertisingLoadingError:(MRGSAdvertising*)advertising {
NSLog(@"Advertising loading error!");
}
- (void)onAdvertisingFinished:(MRGSAdvertising*)advertising wasSkipped:(BOOL)skipped {
NSLog(@"Advertising finished! User %@", skipped ? @"skipped" : @"not skipped);
//Продолжаем работу
}
public class AdvertisingManager implements MRGSAdvert.LoadDelegate, MRGSAdvert.ShowDelegate {
private final MRGSAdvert staticAds;
private final MRGSAdvert videoAds;
public AdvertisingManager() {
staticAds = MRGSAdvertisingFactory.getMRGSAdvertising();
videoAds = MRGSAdvertisingFactory.createMRGSAdvertising(true);
staticAds.setLoadDelegate(this);
staticAds.setShowDelegate(this);
videoAds.setLoadDelegate(this);
videoAds.setShowDelegate(this);
}
public void loadAdverts() {
staticAds.loadContent();
videoAds.loadContent();
}
public void showStaticAds() {
if (staticAds.canShowContent()) videoAds.showContent();
}
public void showVideoAds() {
if (videoAds.canShowContent()) videoAds.showContent();
}
@Override
public void onAdvertisingLoaded() {
//Можно показать рекламу
}
@Override
public void onAdvertisingLoadingError() {
}
@Override
public void onAdvertisingFinished(boolean skipped) {
}
}
Дата создания: 2020-02-05