cordova.plugin.yabbiads v1.1.0
YabbiAds Cordova Plugin
Руководство по Интеграции
Версия релиза 1.1.0 | Дата релиза 20.04.2023
Минимальные требования:
- Используйте Android API level 19 (Android OS 4.4) и выше.
- iOS 12.0 или выше.
- Используйте XCode 13 и выше.
Демо приложение
Используйте наше демо приложение в качестве примера.
Установка SDK
Установите плагин в ваш проект. Для этого используйте в терминале команду написанную ниже.
cordova plugin add cordova.plugin.yabbiads
Теперь наш плагин установлен и готов к использованию.
Инициализация SDK
Импортируйте YabbiAds
.
var YabbiAds = cordova.require('cordova.plugin.yabbiads.YabbiAdsPlugin');
Сбор данных пользователя
GDPR и CCPA
GDPR - Это набор правил, призванных дать гражданам ЕС больше контроля над своими личными данными. Любые издатели приложений, которые созданы в ЕС или имеющие пользователей, базирующихся в Европе, обязаны соблюдать GDPR или рискуют столкнуться с большими штрафами
Для того чтобы YabbiAds и наши поставщики рекламы могли предоставлять рекламу, которая наиболее релевантна для ваших пользователей, как издателю мобильных приложений, вам необходимо получить явное согласие пользователей в регионах, попадающих под действие законов GDPR и CCPA.
Установка разрешения на сбор данных
Если пользователь дал согласие на сбор данных, установите setUserConsent
в true
YabbiAds.setUserConsent(true);
Работа сторонних рекламных сетей
Для подключения сторонних рекламных сетей следуйте инструкциям по ссылке.
Для работы сторонних рекламных сетей необходимо добавить идентификаторы для каждой рекламной сети.
// Установите для показа полноэкранной рекламы Яндекса
YabbiAds.setCustomParams("yandex_interstitial_id", "замените_на_свой_id");
// Установите для показа рекламы с вознаграждением Яндекса
YabbiAds.setCustomParams("yandex_rewarded_id", "замените_на_свой_id");
// Установите для показа рекламы от IronSource
YabbiAds.setCustomParams("iron_source_app_id", "замените_на_свой_id");
// Установите для показа полноэкранной рекламы IronSource
YabbiAds.setCustomParams("iron_source_interstitial_placement_id", "замените_на_свой_id");
// Установите для показа рекламы с вознаграждением IronSource
YabbiAds.setCustomParams("iron_source_rewarded_placement_id", "замените_на_свой_id");
// Установите для показа рекламы от Mintegral
YabbiAds.setCustomParams("mintergral_app_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_api_key", "замените_на_свой_id");
// Установите для показа полноэкранной рекламы Mintegral
YabbiAds.setCustomParams("mintergral_interstitial_placement_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_interstitial_unit_id", "замените_на_свой_id");
// Установите для показа рекламы с вознаграждением Mintegral
YabbiAds.setCustomParams("mintergral_rewarded_placement_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_rewarded_unit_id", "замените_на_свой_id");
Используйте метод
setCustomParams
до вызова методаinitialize
.Инициализация
Теперь
YabbiAds
готова к инициализации. Используйте код ниже, чтобы SDK заработал в вашем проекте.
YabbiAds.initialize('publisher_id','interstitial_id', 'rewarded_id');
publisher_id
- идентификатор издателя. Обязателен для заполнения.interstitial_id
- идентификатор полноэкранной рекламы. Может оставаться пустой строкой.rewarded_id
- идентификатор полноэкранной рекламы с вознаграждением. Может оставаться пустой строкой.
- Замените
publisher_id
на идентификатор издателя из личного кабинета. - Замените
interstitial_id
на ключ соответствующий баннерной рекламе из личного кабинета. - Замените
rewarded_id
на ключ соответствующий видео с вознаграждением из личного кабинета.
Если вы не используете один из типов рекламы, вставьте вместо его идентификатора пустую строку ''
.
Ниже представлен полный код.
Мы рекомендуем вызывать инициализацию SDK в вызове слушателя deviceready
.
document.addEventListener('deviceready', onDeviceReady, false);
var YabbiAds;
function onDeviceReady() {
YabbiAds = cordova.require('cordova.plugin.yabbiads.YabbiAdsPlugin');
YabbiAds.setCustomParams("yandex_interstitial_id", "замените_на_свой_id");
YabbiAds.setCustomParams("yandex_rewarded_id", "замените_на_свой_id");
YabbiAds.setCustomParams("iron_source_app_id", "замените_на_свой_id");
YabbiAds.setCustomParams("iron_source_interstitial_placement_id", "замените_на_свой_id");
YabbiAds.setCustomParams("iron_source_rewarded_placement_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_app_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_api_key", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_interstitial_placement_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_interstitial_unit_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_rewarded_placement_id", "замените_на_свой_id");
YabbiAds.setCustomParams("mintergral_rewarded_unit_id", "замените_на_свой_id");
YabbiAds.setUserConsent(true);
YabbiAds.initialize("publisher_id", "interstitial_id", "rewarded_id");
}
Режим отладки
В режиме отладки SDK логирует ошибки и события. По умолчанию выключен.
Для включения режима отладки используйте метод enableDebug
.
YabbiAds.enableDebug(true);
Управление рекламой
Типы рекламы
Вы можете подключить 2 типа рекламы в свое приложение.
- Полноэкранная реклама - баннер на весь экран, который можно закрыть через несколько секунд.
- Полноэкранная реклама с вознаграждением - видео, после просмотра которого пользователю можно выдать награду.
Для удобного использования типов рекламы создайте переменную AdType
.
Эта переменная будет использоваться для работы с плагином.
const AdType = {
INTERSTITIAL: 1, // Полноэкранная реклама
REWARDED: 3, // Полноэкранная реклама с вознаграждением
};
Загрузка рекламы
Для загрузки рекламы используйте код представленный ниже.
Перед загрузкой мы рекомендуем проверять что рекламу можно загрузить.
Для полноэкранной рекламы.
var canLoadAd = YabbiAds.canLoadAd(AdType.INTERSTITIAL); if(canLoadAd) { YabbiAds.loadAd(AdType.INTERSTITIAL); }
Для полноэкранной рекламы с вознаграждением.
var canLoadAd = YabbiAds.canLoadAd(AdType.REWARDED); if(canLoadAd) { YabbiAds.loadAd(AdType.REWARDED); }
Показ рекламы
Для показа рекламы используйте код представленный ниже.
Перед показом мы рекомендуем проверять что реклама загружена и готова к просмотру.
Для полноэкранной рекламы.
var isAdLoaded = YabbiAds.isAdLoaded(AdType.INTERSTITIAL); if(isAdLoaded) { YabbiAds.showAd(AdType.INTERSTITIAL); }
Для полноэкранной рекламы с вознаграждением.
var isAdLoaded = YabbiAds.isAdLoaded(AdType.REWARDED); if(isAdLoaded) { YabbiAds.showAd(AdType.REWARDED); }
Уничтожение непоказанной рекламы
Если рекламу больше нет необходимости хранить в памяти, удалите ее используя следующий метод.
Для полноэкранной рекламы.
YabbiAds.destroyAd(AdType.INTERSTITIAL);
Для полноэкранной рекламы с вознаграждением.
YabbiAds.destroyAd(AdType.REWARDED);
Отслеживание статуса рекламы.
Для отслеживания статуса рекламы необходимо добавить слушатели событий, на каждый из доступных статусов.
Для полноэкранной рекламы.
window.addEventListener('onInterstitialLoaded', function (adInfo) { // вызывается когда реклама загружена и готова к показу. }); window.addEventListener('onInterstitialLoadFailed', function (adInfo) { // вызывается если в загрузке рекламы произошла ошибка. // узнайте подробнее об ошибке используя параметр adInfo.error. }); window.addEventListener('onInterstitialShown', function (adInfo) { // вызывается когда начался показ рекламы. }); window.addEventListener('onInterstitialShowFailed', function (adInfo) { // вызывается если при показе рекламы произошла ошибка. // узнайте подробнее об ошибке используя параметр adInfo.error. }); window.addEventListener('onInterstitialClosed', function (adInfo) { // вызывается когда реклама была закрыта пользователем. });
Для полноэкранной рекламы с вознаграждением.
window.addEventListener('onRewardedLoaded', function (adInfo) { // вызывается когда реклама загружена и готова к показу. }); window.addEventListener('onRewardedLoadFailed', function (adInfo) { // вызывается если в загрузке рекламы произошла ошибка. // узнайте подробнее об ошибке используя параметр adInfo.error. }); window.addEventListener('onRewardedShown', function (adInfo) { // вызывается когда начался показ рекламы. }); window.addEventListener('onRewardedShowFailed', function (adInfo) { // вызывается если при показе рекламы произошла ошибка. // узнайте подробнее об ошибке используя параметр adInfo.error. }); window.addEventListener('onRewardedClosed', function (adInfo) { // вызывается когда реклама была закрыта пользователем. }); window.addEventListener('onRewardedFinished', function (adInfo) { // вызывается когда реклама закончилось. });
Подготовьте ваше iOS приложение к публикации
Info.plist
Для более эффективного таргетинга рекламы вы можете добавить в свой Info.plist
проекта следующие ключи:
NSUserTrackingUsageDescription
- Начиная с iOS 14 использование IDFA требует разрешения от пользователя. Добавление описания поможет объяснить пользователю необходимость данного разрешения.
NSLocationWhenInUseUsageDescription
- Необходимо добавлять если в вашем приложении можно использовать данные геолокации.
В файле Info.plist
нажмите Add+
в любом поле первой колонки.
Добавьте Privacy - Tracking Usage Description
. В качестве его типа во второй колонке выберите String
. Добавьте описание, которое поможет пользователю понять для чего необходимо разрешение.
Нажмите Add+
в конце строки Privacy - Location When In Use Usage Description
. В качестве его типа во второй колонке выберите String
. Добавьте описание, которое поможет пользователю понять для чего необходимо разрешение.
Вы можете добавить ключ непосредственно в файл Info.plist
с помощью следующего кода:
<key>NSUserTrackingUsageDescription</key>
<string>We need this permission for better ad targetting</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need this permission for better ad targetting</string>
AppStore
При загрузке вашего приложения в App Store, вам требуется обновить настройки рекламного идентификатора (Advertising Identifier IDFA), чтобы соответствовать рекламной политике Apple.
- Откройте раздел Рекламный идентификатор.
- Выберите Да на панели справа.
- Активизируйте Размещение рекламы в приложении.
- Отметьте галочку подтверждения под Настройка ограничения трекинга в iOS.
Подготовьте ваше Android приложение к публикации
В соответствии с политикой Google, разрешения на определения местоположения могут запрашиваться только для функций, имеющих отношение к основному функционалу приложения. Вы не можете запрашивать доступ к данным о местоположении исключительно с целью предоставления рекламы или аналитики.
Если вы не используете местоположения как одну из основных функций вашего приложения:
- Добавьте следующий код в
AndroidManifest.xml
вашего приложения:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
- Обновите приложение в Google Play. В процессе публикации убедитесь, что в Google Play Console нет предупреждений о наличии разрешения местоположения.
Если ваше приложение использует местоположение, как одну из основных функций:
- Заполните форму декларации разрешений на местоположение в Google Play Console. Подробнее о форме декларации вы можете прочитать здесь.
- Обновите приложение в Google Play. В процессе публикации убедитесь, что в Google Play Console нет предупреждений о наличии разрешения местоположения.
Возможные ошибки
iOS
WKJavaScriptController
does not specify a Swift version and none of the targets.Для устранения ошибки введите в терминале команду
cordova prepare
. Затем перейдите в папкуplatforms/ios
. И сделайтеpod install
.
Ошибка при запуске
Symbol not found
:Перейдите в свой Pods таргет. Выберите из списка WKJavaScriptController. Перейдите во вкладку Build Settings и найдите в поиске параметр Build Libraries for Distribution. Установите значение Yes.
Если другие ваши зависимости не конфликтуют с параметром Build Libraries for Distribution вы можете добавить следующий код в свой Podfile проекта:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' end end end
Это выставит значение Yes у параметра Build Libraries for Distribution для всех ваших pod-ов.