Делегированные методы — Unity

Последнее обновление:

Делегированные методы Chartboost SDK предлагают больше гибкости в контроле над интеграцией. Пользуйтесь ими, чтобы ваша реклама воспринималась именно так, как вы хотите!


Содержание


Обзор

Делегированные методы и методы конфигурации Chartboost SDK предлагают больше гибкости в контроле над интеграцией. Например, вы можете:

  • Регистрировать отладочные сообщения, когда ваша игра пытается загрузить рекламную вставку
  • Не отображать рекламу, когда пользователь играет в вашу игру впервые
  • Определять, нажал пользователь на рекламе или просто закрыл ее, и реагировать соответствующим образом
  • Не отображать рекламу или страницу «Другие приложения» там и в то время, когда это может помешать игре

Доступные методы Chartboost Unity SDK можно увидеть в файле Chartboost.cs, который входит в число импортированных файлов подключаемого модуля Unity (Chartboost > Scripts > Chartboost.cs). Хороший образец реализации многих таких методов есть в файле-примере сцены ChartboostExample.cs (Chartboost > Examples > ChartboostExample.cs), который входит в загружаемый пакет SDK.


Методы конфигурации SDK

Эти методы позволяют влиять на функциональность и настройки Chartboost SDK:

// Проверяет, кэширована ли рекламная вставка в данной CBlocation.
public static bool hasInterstitial(CBLocation location)

// Проверяет, кэширована ли страница «Другие приложения» в данной CBlocation.
public static bool hasMoreApps(CBLocation location) 

// Проверяет, кэшировано ли вознаграждаемое видео в данной CBLocation.
public static bool hasRewardedVideo(CBLocation location)

// Проверяет, отображаются ли какие-нибудь экраны
public static bool isAnyViewVisible()

// Включает или отключает функцию автоматического кэширования (по умолчанию: включена).*
public static void setAutoCacheAds(bool autoCacheAds)

// Получает текущее поведение автоматического кэширования (по умолчанию: включен).*
public static bool getAutoCacheAds()

// Задает настраиваемый идентификатор для передачи в теле POST во всех запросах к серверу Chartboost API.
public static void setCustomId(String customId)

// Получает текущий настраиваемый идентификатор, который передается в теле POST для всех запросов к серверу Chartboost API.
public static String getCustomId()

// Определяет, следует ли Chartboost SDK отображать рекламную вставку при первом сеансе.
public static void setShouldRequestInterstitialsInFirstSession(bool shouldRequest)

//  Определяет, должен ли Chartboost SDK отображать экран загрузки при подготовке к отображению UI страницы «Другие приложения».
public static void setShouldDisplayLoadingViewForMoreApps(bool shouldDisplay)

// Определяет, следует ли Chartboost SDK пытаться извлечь видео с серверов Chartboost API.
public static void setShouldPrefetchVideoContent(bool shouldPrefetch)

// Задает управление тем, как полноэкранные рекламные блоки должны взаимодействовать с панелью состояния (по умолчанию: CBStatusBarBehaviorIgnore).
// Только iOS
public static void setStatusBarBehavior(CBStatusBarBehavior statusBarBehavior)

* Подробнее о настройках AutoCacheAds и, в целом, о кэшировании рекламы можно узнать здесь.


Настройка делегатов SDK

Chartboost Unity SDK реализует функциональность делегатов через делегаты и события стиля C#. Прежде чем использовать какой-либо делегированный метод, следует сначала подписаться на соответствующие события SDK в MonoBehaviour, как показано ниже:

void OnEnable() {
// Принимать все события, связанные с показами
 Chartboost.didFailToLoadInterstitial += didFailToLoadInterstitial;
 Chartboost.didDismissInterstitial += didDismissInterstitial;
 Chartboost.didCloseInterstitial += didCloseInterstitial;
 Chartboost.didClickInterstitial += didClickInterstitial;
 Chartboost.didCacheInterstitial += didCacheInterstitial;
 Chartboost.shouldDisplayInterstitial += shouldDisplayInterstitial;
 Chartboost.didDisplayInterstitial += didDisplayInterstitial;
 Chartboost.didFailToLoadMoreApps += didFailToLoadMoreApps;
 Chartboost.didDismissMoreApps += didDismissMoreApps;
 Chartboost.didCloseMoreApps += didCloseMoreApps;
 Chartboost.didClickMoreApps += didClickMoreApps;
 Chartboost.didCacheMoreApps += didCacheMoreApps;
 Chartboost.shouldDisplayMoreApps += shouldDisplayMoreApps;
 Chartboost.didDisplayMoreApps += didDisplayMoreApps;
 Chartboost.didFailToRecordClick += didFailToRecordClick;
 Chartboost.didFailToLoadRewardedVideo += didFailToLoadRewardedVideo;
 Chartboost.didDismissRewardedVideo += didDismissRewardedVideo;
 Chartboost.didCloseRewardedVideo += didCloseRewardedVideo;
 Chartboost.didClickRewardedVideo += didClickRewardedVideo;
 Chartboost.didCacheRewardedVideo += didCacheRewardedVideo;
 Chartboost.shouldDisplayRewardedVideo += shouldDisplayRewardedVideo;
 Chartboost.didCompleteRewardedVideo += didCompleteRewardedVideo;
 Chartboost.didDisplayRewardedVideo += didDisplayRewardedVideo;
 Chartboost.didCacheInPlay += didCacheInPlay;
 Chartboost.didFailToLoadInPlay += didFailToLoadInPlay;
 Chartboost.didPauseClickForConfirmation += didPauseClickForConfirmation;
 Chartboost.willDisplayVideo += willDisplayVideo;
 #if UNITY_IPHONE
 Chartboost.didCompleteAppStoreSheetFlow += didCompleteAppStoreSheetFlow;
 #endif
}

Также нужно не забывать отписываться от этих событий:

void OnDisable() {
// Убирает обработчик событий
 Chartboost.didFailToLoadInterstitial -= didFailToLoadInterstitial;
 Chartboost.didDismissInterstitial -= didDismissInterstitial;
 Chartboost.didCloseInterstitial -= didCloseInterstitial;
 Chartboost.didClickInterstitial -= didClickInterstitial;
 Chartboost.didCacheInterstitial -= didCacheInterstitial;
 Chartboost.shouldDisplayInterstitial -= shouldDisplayInterstitial;
 Chartboost.didDisplayInterstitial -= didDisplayInterstitial;
 Chartboost.didFailToLoadMoreApps -= didFailToLoadMoreApps;
 Chartboost.didDismissMoreApps -= didDismissMoreApps;
 Chartboost.didCloseMoreApps -= didCloseMoreApps;
 Chartboost.didClickMoreApps -= didClickMoreApps;
 Chartboost.didCacheMoreApps -= didCacheMoreApps;
 Chartboost.shouldDisplayMoreApps -= shouldDisplayMoreApps;
 Chartboost.didDisplayMoreApps -= didDisplayMoreApps;
 Chartboost.didFailToRecordClick -= didFailToRecordClick;
 Chartboost.didFailToLoadRewardedVideo -= didFailToLoadRewardedVideo;
 Chartboost.didDismissRewardedVideo -= didDismissRewardedVideo;
 Chartboost.didCloseRewardedVideo -= didCloseRewardedVideo;
 Chartboost.didClickRewardedVideo -= didClickRewardedVideo;
 Chartboost.didCacheRewardedVideo -= didCacheRewardedVideo;
 Chartboost.shouldDisplayRewardedVideo -= shouldDisplayRewardedVideo;
 Chartboost.didCompleteRewardedVideo -= didCompleteRewardedVideo;
 Chartboost.didDisplayRewardedVideo -= didDisplayRewardedVideo;
 Chartboost.didCacheInPlay -= didCacheInPlay;
 Chartboost.didFailToLoadInPlay -= didFailToLoadInPlay;
 Chartboost.didPauseClickForConfirmation -= didPauseClickForConfirmation;
 Chartboost.willDisplayVideo -= willDisplayVideo;
 #if UNITY_IPHONE
 Chartboost.didCompleteAppStoreSheetFlow -= didCompleteAppStoreSheetFlow;
 #endif
}

Можно подписаться как на все события выше, так и только на одно, которое вам нужно. Затем можно переходить к реализации соответствующих делегированных методов для управления откликами по каждому событию.


Делегированные методы для статичных вставок и видеовставок

// Вызывается до того, как вставка отображается на экране.
bool shouldDisplayInterstitial(CBLocation location)

// Вызывается после того, как вставка отображается на экране.
void didDisplayInterstitial(CBLocation location)

// Вызывается после того, как вставка загружена с серверов Chartboost API
// и сохранена в локальный кэш.
void didCacheInterstitial(CBLocation location)

// Вызывается после неудачной попытки загрузить вставку
// с серверов Chartboost API.
void didFailToLoadInterstitial(CBLocation location, CBImpressionError error)

// Вызывается после того, как вставка была прекращена.
void didDismissInterstitial(CBLocation location)

// Вызывается после того, как вставка была закрыта.
void didCloseInterstitial(CBLocation location)

// Вызывается после того, как вставка была нажата.
didClickInterstitial(CBLocation location)

Делегированные методы для страницы «Другие приложения»

// Вызывается до того, как страница «Другие приложения» отображается на экране.
bool shouldDisplayMoreApps(CBLocation location)

// Вызывается после того, как страница «Другие приложения» отображается на экране.
void didDisplayMoreApps(CBLocation location)

// Вызывается после того, как страница «Другие приложения» загружена с серверов Chartboost API
// и сохранена в локальный кэш.
void didCacheMoreApps(CBLocation location)

// Вызывается после того, как страница «Другие приложения» была прекращена.
void didDismissMoreApps(CBLocation location)

// Вызывается после того, как страница «Другие приложения» была закрыта.
void didCloseMoreApps(CBLocation location)

// Вызывается после того, как страница «Другие приложения» была нажата.
void didClickMoreApps(CBLocation location)

// Вызывается после неудачной попытки загрузить страницу «Другие приложения»
// с серверов Chartboost API.
void didFailToLoadMoreApps(CBLocation location, CBImpressionError error)

Делегированные методы для видео с вознаграждением за просмотр

(подробнее о Chartboost Video см. эту страницу)

// Вызывается до того, как вознаграждаемое видео отображается на экране.
bool shouldDisplayRewardedVideo(CBLocation location)

// Вызывается после того, как вознаграждаемое видео отображается на экране.
void didDisplayRewardedVideo(CBLocation location)

// Вызывается после того, как вознаграждаемое видео загружено с серверов Chartboost API
// и сохранено в локальный кэш.
void didCacheRewardedVideo(CBLocation location)

// Вызывается после неудачной попытки загрузить вознаграждаемое видео
// с серверов Chartboost API.
void didFailToLoadRewardedVideo(CBLocation location, CBImpressionError error)

// Вызывается после того, как вознаграждаемое видео было прекращено.
void didDismissRewardedVideo(CBLocation location)

// Вызывается после того, как вознаграждаемое видео было закрыто.
void didCloseRewardedVideo(CBLocation location)

// Вызывается после того, как вознаграждаемое видео было нажато.
void didClickRewardedVideo(CBLocation location)

// Вызывается после полного просмотра вознаграждаемого видео – то есть, когда пользователь получил право на вознаграждение.
void didCompleteRewardedVideo(CBLocation location, int reward)

// Реализуется для уведомления о том, что видео будет отображаться на экране для 
// данного CBLocation. После этого можно, например, отключать эффекты или звуки.
void willDisplayVideo(CBLocation location)

Другие делегированные методы

// Вызывается после того, как страница App Store была прекращена при отображении встроенного App Sheet.
// Только iOS
void didCompleteAppStoreSheetFlow()

// Вызывается после того, как зарегистрирован клик, но пользователь не перенаправлен в App Store.
void didFailToRecordClick(CBLocation location, CBImpressionError error)

// Вызывается после того, как успешно инициализирован SDK и завершено предварительное извлечение видео.
void didInitialize(bool status)

Делегированные методы Встроенной рекламы

// Вызывается после того, как объект Встроенной рекламы загружен с серверов Chartboost API
// и сохранен в локальный кэш.
void didCacheInPlay(CBLocation location)

// Вызывается после неудачной попытки Встроенной рекламы загрузить данные
// с серверов Chartboost API.
void didFailToLoadInPlay(CBLocation location, CBImpressionError error)

Методы возрастной проверки

// Определяет, следует ли Chartboost SDK блокировать по возрастной проверке.
public static void setShouldPauseClickForConfirmation(bool shouldPause)

// Вызывается, если Chartboost SDK приостанавливает действия при клике в ожидании подтверждения от пользователя. Применяется
// для реализации возрастной проверки в игре.
void didPauseClickForConfirmation()

// Проверяет, пройдена ли возрастная проверка. Если указано, Chartboost будет ждать 
// этот вызов, прежде чем отобразить iOS App Store.
public static void didPassAgeGate(bool pass)