Начало работы с GDPR (отображение с помощью WebView)🔗
Для интеграции GDPR необходимо выполнить несколько простых шагов
Пример отображения
Примеры того, как выглядит соглашение в данном формате вы можете найти на странице с описанием GDPR
Также напоминаем, что существует второй способ показа GDPR - Показ и отрисовка интерфейса Вашими средствами, с сообщениям нам о результатах действий.
Шаг 1. Импортируйте модуль GDPR🔗
-
Добавьте модуль MRGSGDPR
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, выберите пакетMRGSGDPRиз списка, затем нажмите "Install" - Импортируйте модуль:
using MRGS;
- Загрузите последнюю версию библиотеки. Распакуйте архив.
- (Для интеграции unitypackage) В Unity нажмите
Assets -> Import Package -> Custom Package, и выберите пакетgames.my.mrgs.gdpr.unitypackageиз скачанного архива. - (Для интеграции tgz) В Unity нажмите
Window -> Package Manager -> '+' -> Add package from tarball, и выберите пакетgames.my.mrgs.gdpr-<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 - Выберите модуль MRGSGDPR из "MRGS Package Collection".
- Или вы можете выбрать пакет «MRGS» из "MRGS Package Collection" (содержит все модули mrgs в качестве продуктов), а затем выбрать только продукт "MRGS/GDPR".
Отдельными пакетами
- В Xcode выберите File > Add Packages
- В строке поиска в правом верхнем углу вставьте URL:
https://mrgs-gitea.my.games/mrgs/mrgsgdpr-ios-sdk.git - Добавьте модуль в свой проект
- Или вы можете вставить URL
https://mrgs-gitea.my.games/mrgs/ios-sdks.git, чтобы подключить пакет "MRGS", который содержит все модули mrgs в качестве продуктов, а затем выбрать только продукт "MRGS/GDPR".
Шаг 2. Добавьте поддержку категорий ObjectiveC
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSGDPR;или#import <MRGSGDPR/MRGSGDPR.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 добавьте последнюю версию MRGSGDPR:
Чтобы добавить через subspecs:
Для добавления через отдельные модули:
Чтобы добавить все модули mrgs:
Шаг 3. Установите зависимости
- Выполните
pod install(илиpod install --repo-updateесли необходимо) - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSGDPR;или#import <MRGSGDPR/MRGSGDPR.h>
Шаг 1. Добавьте зависимости
Добавьте зависимость в ваш Cartfile:
Шаг 2. Установите зависимости
- Выполните
carthage update --use-xcframeworks - Добавьте загруженные фреймворки в свой проект (убедитесь, что опция "do not embed" включена)
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSGDPR;или#import <MRGSGDPR/MRGSGDPR.h>
- Загрузите последнюю версию библиотеки. Распакуйте архив.
-
Добавьте
MRGSGDPR.xcframeworkиз скачанного архива в ваш проект (Перетащите библиотеки в раздел "Linked frameworks and Libraries") (для совместимости в архиве также находится MRGSGDPR.framework - fat framework старого вида) -
Добавьте bundle с ресурсами:
- Добавьте
MRGSGDPRResources.bundleв проект, перетащив его в структуру проекта. - Перейдите к разделу "Copy Bundle Resources" во вкладке "Build Phases", нажмите "+", и выберите необходимый бандл.
- Добавьте
-
В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGSGDPR;или#import <MRGSGDPR/MRGSGDPR.h> - Также, вы можете добавить из архива файлы
MRGServiceKit.hиmodule.modulemapв свой проект, либо в настройках проекта укажите путь до них в разделеBuild Settings -> Header search paths. Теперь вместо импорта каждого из наших фреймворков по отдельности, вы можете импортировать только один заголовочный файл:@import MRGServiceKit;
Android:
Добавление в проект
Добавьте зависимость в
build.gradleфайл: - Нажмите
Шаг 2. Настроить параметры показа🔗
В первую очередь необходимо выставить все необходимые Вам настройки:
| Делегат | Перед началом показа необходимо выставить делегат, чтобы получить уведомление после выбора пользователя. |
| Разрешение на рекламу | Если Вы хотите, чтобы в соглашении также был запрос на добавление персональных данных в рассылку рекламы и новостей издателя, установите соответствующий флаг withAdvertising (По умолчанию False). Для рассылки рекламы и новостей будет показан другой дефолтный файл из MRGS SDK |
| Геолокация показа | Если вы хотите настроить показ только в странах европейского союза, используйте флаг onlyEU (По умолчанию YES, то есть показывать только европейцам). |
| Локализация | Локализация соглашения работает только при работе с HTML-файлами. Выбор локализации html основывается по текущему выбранному языку на девайсе пользователя. Если по каким-то причинам вам не подходит текущий вариант локализации, Вы можете передать свою собственную локализацию при помощи MRGSGDPRLocalization. Если язык на девайса пользователя не поддерживается и не был передан MRGSGDPRLocalization то будет использоваться локализация на английском языке ("en"). Если вы используете кастомные HTML-файлы, и хотите, чтобы они были автоматически локализованы, то Вам необходимо обновить их в соответствии с нашими дефолтными образцами (которые лежат в ресурсах), добавив вместо текста соглашения специальные теги, на место которых будет подставлен текст (в противном случае будет показан ваш файл без изменений). Названия тегов смотрите в наших дефолтных файлах соглашения. (Чтобы получить список поддерживаемых нами языков в формате ISO, воспользуйтесь методом getSupportedLocalizations). |
| Включение показа COPPA | Подробнее смотрите на странице COPPA. |
Пример настройки параметров:
// Initialize GDPR
MRGSGDPR.Instance.Setup("<PROJECT_ID>", "<PROJECT_SECRET>");
// Optional if you prefer listeners to callbacks.
MRGSGDPR.Instance.ShowDelegate = this;
// Default value: true
MRGSGDPR.Instance.OnlyEu = true;
// Extra params which you can use later to show agreement
MRGSGDPRShowParams showParams = new MRGSGDPRShowParams
{
// Default value: false
WithAdvertising = true,
// Default value: Color.white
BackgroundColor = Color.red,
// Optional if you would like to use default localizations
Localization = new MRGSGDPRLocalization("en")
{
Header = "Terms and Privacy",
ContinueButton = "OK"
// ...
// Use more fields for localization
}
};
MRGSGDPR.getInstance().Delegate = this;
MRGSGDPR.getInstance().withAdvertising(true); //По умолчанию false
MRGSGDPR.getInstance().SetBackgroundColor(255, 0, 0); // Default value is white color
MRGSGDPR.getInstance().onlyForEU(true);//По умолчанию true
MRGSGDPR.getInstance().setLocalizationLanguage("en"); //По умолчанию en (идентификатор языка указывается в формате ISO)
// Initialize GDPR
[[MRGSGDPR sharedInstance] setupWithAppId:<PROJECT_ID> secret:@"<PROJECT_SECRET>"];
// Optional if you prefer listeners to callbacks.
[MRGSGDPR sharedInstance].showDelegate = self;
// Default value: true
[MRGSGDPR sharedInstance].onlyEU = true;
// Extra params which you can use later to show agreement
MRGSGDPRShowParams* showParams = [[MRGSGDPRShowParams alloc] init];
// Default value: false
showParams.withAdvertising = true;
// Default value: white
showParams.backgroundColor = [UIColor redColor];
// Optional if you would like to use default localizations
showParams.localization = [[MRGSGDPRLocalization alloc] initWithLanguage:@"fr"];
showParams.localization.header = @"Terms and Privacy";
showParams.localization.continueButton = @"OK";
// ...
// Use more fields for localization
MRGSGDPR* gdpr = [MRGSGDPR sharedInstance];
gdpr.delegate = self;
gdpr.withAdvertising = YES; //По умолчанию NO
gdpr.backgroundColorForWebView = [UIColor redColor]; //По умолчанию белый цвет
gdpr.onlyEU = YES; //По умолчанию YES
gdpr.localizationLanguage = "en" //По умолчанию en (идентификатор языка указывается в формате ISO)
import games.my.mrgs.gdpr.MRGSGDPR;
import games.my.mrgs.gdpr.MRGSGDPRLocalization;
import games.my.mrgs.gdpr.MRGSGDPRShowParams;
final MRGSGDPR gdpr = MRGSGDPR.getInstance();
// Initialize GDPR
gdpr.setup(Context, "<PROJECT_ID>", "<PROJECT_SECRET>");
// Optional if you prefer listeners to callbacks.
gdpr.setOnShowListener(this);
// Default value: true
gdpr.onlyEU(true);
// Extra params which you can use later to show agreement
final MRGSGDPRShowParams showParams = new MRGSGDPRShowParams();
// Default value: false
showParams.withAdvertising(true);
// Default value: white
showParams.setBackgroundColor(255, 0, 0);
// Optional if you would like to use default localizations
final MRGSGDPRLocalization localization = new MRGSGDPRLocalization.Builder()
.setHeader("Terms and Privacy")
.setContinueButton("OK")
// ...
// You can use other setters here.
.build();
showParams.setLocalization(localization);
import games.my.mrgs.gdpr.MRGSGDPR;
final MRGSGDPR gdpr = MRGSGDPR.getInstance();
gdpr.setDelegate(this);
gdpr.onlyEU(true); //По умолчанию true
gdpr.setBackgroundColor(255, 0, 0); //По умолчанию белый цвет
gdpr.withAdvertising(true); //По умолчанию false
gdpr.setLocalizationLanguage("en"); //По умолчанию (идентификатор языка указывается в формате ISO)
Задний фон
Если вы хотите установить другой цвет фона при загрузке HTML (обычно необходимо для "тяжелых" файлов, которые долго грузятся), вы можете воспользоваться свойством backgroundColor/BackgroundColor (iOS/Unity), методом setBackgroundColor (Android).
Версия соглашения
Обратите внимание, версия соглашения получается с сервера MRGS и у каждого проекта может быть своя собственная версия. Вы можете менять версию в MRGS консоли, если вы хотите показать пользователям обновленное соглашение. Обновлять MRGS SDK для этого не требуется.
Локализация html
Локализация через MRGSGDPRLocalization стала доступна с версии MRGS 6.9.0, а до этого можно было выбрать только желаемую локализацию, передав нам нужный язык, или попытаться подменить наши файлы с локализацией на свои собственные.
Шаг 3 Показать соглашение🔗
Вы можете выбрать - показывать наш стандартный HTML с соглашением, или использовать свой HTML стилизованный под интерфейс приложения.
Шаг 3.1 Стандартный HTML🔗
Воспользуйтесь методом для показа соглашения:
// Show default agreement with default settings.
MRGSGDPR.Instance.ShowAgreement();
// Show default agreement with default settings and callback
MRGSGDPR.Instance.ShowAgreement(completion: (result, error) => {
// Handle result here.
// One of received params will be null.
});
// Show default agreement with extra settings to change behavior.
MRGSGDPR.Instance.ShowAgreement(param: showParams);
// Show default agreement with extra settings to change behavior and callback.
MRGSGDPR.Instance.ShowAgreement(param: showParams, (result, error) => {
// Handle result here.
// One of received params will be null.
});
// Show default agreement with default settings.
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self];
// Show default agreement with default settings and callback
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self completionHandler:^(MRGSGDPRShowResult * _Nullable result, NSError * _Nullable error) {
// Handle result here.
// One of received params will be nil.
}];
// Show default agreement with extra settings to change behavior.
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self params:showParams];
// Show default agreement with extra settings to change behavior and callback.
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self
params:showParams
completionHandler:^(MRGSGDPRShowResult * _Nullable result, NSError * _Nullable error) {
// Handle result here.
// One of received params will be nil.
}];
import android.app.Activity;
import games.my.mrgs.gdpr.MRGSGDPR;
import games.my.mrgs.gdpr.MRGSGDPRLocalization;
import games.my.mrgs.gdpr.MRGSGDPRShowParams;
// Show default agreement with default settings.
MRGSGDPR.getInstance().showAgreement(Activity);
// Show default agreement with default settings and callback
MRGSGDPR.getInstance().showAgreement(Activity, (result, error) -> {
// Handle result here.
// One of received params will be null.
});
// Show default agreement with extra settings to change behavior.
MRGSGDPR.getInstance().showAgreement(Activity, showParams);
// Show default agreement with extra settings to change behavior and callback.
MRGSGDPR.getInstance().showAgreement(Activity, showParams, (result, error) -> {
// Handle result here.
// One of received params will be null.
});
Шаг 3.2 Свой HTML🔗
Куда класть кастомный HTML файл?
Для Unity:
Кастомный HTML файл необходимо положить в StreamingAssets или воспользуйтесь способами ниже для нативных приложений. В метод нужно передать название файла с расширением (либо относительный путь от вышеуказанных директорий). Например "myFile.html"
Для iOS:
Кастомный HTML файл вы можете положить в любое удобное место (обычно это mainBundle), а в метод передать полный путь к файлу в формате NSURL.
Для Android:
В Android assets. В методе указать только его название с расширением(либо относительный путь от вышеуказанных директорий). Например "myFile.html"
Как правильно сверстать кастомный HTML файл?
За основу мы предлагаем взять наше стандартное соглашение, в нем присутствуют все необходимые элементы (включая элементы для локализации) и переходы. Вы также можете скачать примеры наших файлов по ссылке.
Самое главное, что нужно учесть - переход далее при нажатии на кнопку. При использовании кастомного файла GDPR, мы понимаем,что пора закрывать окно и вызывать callback по GET-параметрам, то есть по наличию в строке запроса после нажатия кнопки ключа checkboxAgree. Пример: HTML/Path.html?checkboxAgree=on&checkboxContact=on. Проще всего это сделать с помощью формы, стандартный механизм позволяет добавить отмеченные поля в GET. Можно взять наш стандартный файл соглашения за основу.
Обратите внимание, что кнопка принятия соглашения должна иметь отклик (визуально реагировать на нажатие), иначе приложение может не пройти ревью.
Также, советуем проверить, как выглядит соглашение на корейском языке, т.к. в корейском необходимо специальным образом обрабатывать переносы строк, мы автоматически поправим ваш кастомный файл для корейского языка, но тем не менее, советуем перепроверять результат.
// Will be shown if user has never accepted any agreements before
showParams.InitialAgreementFile = "your_agreement.html";
// Will be shown if user has accepted agreements and there's a new agreement version
// on MRGS server
showParams.AgreementUpdateFile = "your_agreement_update.html";
// Will be shown if user has accepted agreements and publisher was changed.
showParams.PublisherUpdateFile = "your_publisher_update.html";
// Show default agreement with extra settings to change behavior.
MRGSGDPR.Instance.ShowAgreement(param: showParams);
// Show default agreement with extra settings to change behavior and callback.
MRGSGDPR.Instance.ShowAgreement(param: showParams, (result, error) => {
// Handle result here.
// One of received params will be null.
});
NSURL* bundleUrl = [[NSBundle mainBundle] bundleURL];
// Will be shown if user has never accepted any agreements before
showParams.initialAgreementFilePath = [bundleUrl URLByAppendingPathComponent:@"your_agreement.html"];
// Will be shown if user has accepted agreements and there's a new agreement version
// on MRGS server
showParams.agreementUpdateFilePath = [bundleUrl URLByAppendingPathComponent:@"your_agreement_update.html"];
// Will be shown if user has accepted agreements and publisher was changed.
showParams.publisherUpdateFilePath = [bundleUrl URLByAppendingPathComponent:@"your_publisher_update.html"];
// Show default agreement with extra settings to change behavior.
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self params:showParams];
// Show default agreement with extra settings to change behavior and callback.
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self
params:showParams
completionHandler:^(MRGSGDPRShowResult * _Nullable result, NSError * _Nullable error) {
// Handle result here.
// One of received params will be nil.
}];
import android.app.Activity;
import games.my.mrgs.gdpr.MRGSGDPR;
import games.my.mrgs.gdpr.MRGSGDPRLocalization;
import games.my.mrgs.gdpr.MRGSGDPRShowParams;
// Will be shown if user has never accepted any agreements before
showParams.setInitialAgreementFile("your_agreement.html");
// Will be shown if user has accepted agreements and there's a new agreement version
// on MRGS server
showParams.setUpdateAgreementFile("your_agreement_update.html");
// Will be shown if user has accepted agreements and publisher was changed.
showParams.setPublisherUpdateFile("your_publisher_update.html");
// Show default agreement with extra settings to change behavior.
MRGSGDPR.getInstance().showAgreement(Activity, showParams);
// Show default agreement with extra settings to change behavior and callback.
MRGSGDPR.getInstance().showAgreement(Activity, showParams, (result, error) -> {
// Handle result here.
// One of received params will be null.
});
Важно
Вызывать метод показа нужно на каждом старте приложения. В случае, если пользователь уже согласился с GDPR, мы сразу вызовем метод делегата.
Шаг 4. Обработать результат🔗
Результат будет передан в слушатель событий как только пользователь нажмет кнопку:
// Optional implementation of IOnShowDelegate
// If you prefer listeners to callback
public void OnAgreementAccepted(MRGSGDPRShowResult result)
{
// User accepted agreement
// Handle result here.
}
public void OnAgreementError(MRGSError error)
{
// User rejected agreement or there were an unknown issue
// Handle result here.
}
// Or you can use callback instead of IOnShowDelegate
MRGSGDPR.Instance.ShowAgreement(completion: (result, error) => {
// Handle result here.
// One of received params will be null.
if (error != null)
{
// User rejected agreement or there were an unknown issue
}
if (result != null)
{
// User accepted agreement
}
});
// Or using await:
var res = await MRGSGDPR.Instance.ShowAgreementAsync();
// Optional implementation of MRGSGDPRShowDelegate
// If you prefer listeners to callback
- (void)didAcceptAgreement:(MRGSGDPRShowResult*)result {
// User accepted agreement
// Handle result here.
}
- (void)didReceiveAgreementError:(NSError*)error {
// User rejected agreement or there were an unknown issue
// Handle result here.
}
// Or you can use callback instead of IOnShowDelegate
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self completionHandler:^(MRGSGDPRShowResult * _Nullable result, NSError * _Nullable error) {
// Handle result here.
// One of received params will be nil.
if (error != nil) {
// User rejected agreement or there were an unknown issue
}
if (result != nil) {
// User accepted agreement
}
}];
// Optional implementation of MRGSGDPR.OnShowListener
// If you prefer listeners to callback
@Override
public void onAgreementAccepted(@NonNull MRGSGDRPShowResult result) {
// User accepted agreement
// Handle result here.
}
@Override
public void onAgreementError(@NonNull MRGSError error) {
// User rejected agreement or there were an unknown issue
// Handle result here.
}
// Or you can use callback instead of MRGSGDPR.OnShowListener
MRGSGDPR.getInstance().showAgreement(..., (result, error) -> {
// Handle result here.
// One of received params will be null.
if (error != null) {
// User rejected agreement or there were an unknown issue
}
if (result != null) {
// User accepted agreement
}
});
Note
Если пользователь уже принял последнее соглашение, то сразу будет вызван метод делегата об успешном завершении, то есть Вам не нужно делать никаких проверок, мы сделаем все за Вас.
Получение информации по ранее принятому соглашению🔗
Чтобы узнать версию, с которой согласился пользователь, воспользуйтесь методом:
Пример🔗
void Awake () {
MRGSGDPR.Instance.Setup("<PROJECT_ID>", "<PROJECT_SECRET>");
// Optional if you prefer callbacks to listeners.
// MRGSGDPR.Instance.ShowDelegate = this;
MRGSGDPR.Instance.OnlyEu = true;
MRGSGDPRShowParams showParams = new MRGSGDPRShowParams
{
WithAdvertising = true,
BackgroundColor = Color.white,
// Optional if you would like to use default localizations
Localization = new MRGSGDPRLocalization("en")
{
Header = "Terms and Privacy",
ContinueButton = "OK"
// ...
// Choose more field for localization
}
};
MRGSGDPR.Instance.ShowAgreement(param: showParams, (result, error) => {
// Handle result here.
// One of received params will be null.
});
}
void Awake () {
MRGSGDPR.getInstance().Delegate = this;
MRGSGDPR.getInstance().showDefaultAgreement(MRGS_APP_ID);
}
public void OnUserHasAcceptedGDPR(bool withAdvertising)
{
// Start loading application/game
// Initialize MRGS
initMrgs();
}
public void OnGDPRError()
{
// User declined the agreement. Close the application
Application.Quit();
}
// Initialize GDPR
[[MRGSGDPR sharedInstance] setupWithAppId:<PROJECT_ID> secret:@"<PROJECT_SECRET>"];
// Optional if you prefer listeners to callbacks.
// [MRGSGDPR sharedInstance].showDelegate = self;
// Default value: true
[MRGSGDPR sharedInstance].onlyEU = true;
// Extra params which you can use later to show agreement
MRGSGDPRShowParams* showParams = [[MRGSGDPRShowParams alloc] init];
// Default value: false
showParams.withAdvertising = true;
// Default value: white
showParams.backgroundColor = [UIColor redColor];
// Optional if you would like to use default localizations
showParams.localization = [[MRGSGDPRLocalization alloc] initWithLanguage:@"fr"];
showParams.localization.header = @"Terms and Privacy";
showParams.localization.continueButton = @"OK";
// ...
// Use more fields for localization
[[MRGSGDPR sharedInstance] showAgreementAtViewController:self
params:showParams
completionHandler:^(MRGSGDPRShowResult * _Nullable result, NSError * _Nullable error) {
// Handle result here.
// One of received params will be nil.
}];
- (void)viewDidLoad {
MRGSGDPR* gdpr = [MRGSGDPR sharedInstance];
gdpr.delegate = self;
UIViewController *rootController = [UIApplication sharedApplication].keyWindow.rootViewController;
[gdpr showDefaultAgreementAtViewController:rootController forAppId:MRGS_APP_ID];
}
- (void)userHasAcceptedGDPR:(MRGSGDPR*)gdpr withAdvertising:(BOOL)flag {
// Start loading application/game
// Initialize MRGS
[self initMRGS];
}
- (void)errorShowingAgreement:(MRGSGDPR*)gdpr {
// User declined the agreement. Close the application
}
import android.app.Activity;
import androidx.annotation.NonNull;
import games.my.mrgs.MRGSError;
import games.my.mrgs.gdpr.MRGSGDPR;
import games.my.mrgs.gdpr.MRGSGDPRLocalization;
import games.my.mrgs.gdpr.MRGSGDPRShowParams;
import games.my.mrgs.gdpr.MRGSGDRPShowResult;
final MRGSGDPR gdpr = MRGSGDPR.getInstance();
gdpr.setup(Context, "<PROJECT_ID>", "<PROJECT_SECRET>");
// Optional if you prefer listeners to callbacks.
// gdpr.setOnShowListener(this);
gdpr.onlyEU(true);
final MRGSGDPRShowParams showParams = new MRGSGDPRShowParams();
showParams.withAdvertising(true);
showParams.setBackgroundColor(255, 0, 0);
// Optional if you would like to use default localizations
final MRGSGDPRLocalization localization = new MRGSGDPRLocalization.Builder()
.setHeader("Terms and Privacy")
.setContinueButton("OK")
// ...
// You can other setters here.
.build();
showParams.setLocalization(localization);
// Show default agreement with extra settings to change behavior and callback.
MRGSGDPR.getInstance().showAgreement(Activity, showParams, (result, error) -> {
// Handle result here.
// One of received params will be null.
});
import games.my.mrgs.gdpr.MRGSGDPR;
public class MainActivity implements MRGSGDPR.MRGSGDPRDelegate {
@Override
public void onCreate(Bundle savedInstanceState) {
final MRGSGDPR gdpr = MRGSGDPR.getInstance();
gdpr.setDelegate(this);
gdpr.showDefaultAgreementAtActivity(this, MRGS_APP_ID);
}
@Override
public void userHasAcceptedGDPR(boolean withAdvertising) {
// Start loading application/game
// Initialize MRGS
initMRGS();
}
@Override
public void errorShowingAgreement() {
// User declined the agreement. Close the application
finish();
}
}
Дата создания: 2020-02-05