Начало работы с Vungle SDK v. 6 — Unity

Содержание

 

Перед началом работы

  • Подключаемый модуль Vungle Unity для iOS поддерживает:
    • iOS 8
    • Unity 4 и Unity 5.4.1 или более поздних версий
    • Vungle SDK требует привязки фреймворков WebKit.framework к проекту. При разработке продуктов для IOS 7 отметьте этот проект как «необязательный». Для этого нажмите проект в навигаторе проектов и выберите GeneralLinked Frameworks and Libraries (Общие →Привязанные фреймворки и библиотеки). Выберите WebKit.framework и установите для параметра Status (Статус) значение Optional.

  • Подключаемый модуль Vungle Unity для Android:
    • Требует наличия Java 1.7 для Android
    • Поддерживает Unity 4 и Unity 5.3.2 или более поздних версий

  • Подключаемый модуль Vungle Unity для Windows:
    • Windows (Universal 8.1 или Phone 8.1) поддерживает Unity 4 и Unity 5.3.2+
    • Windows 10 UWP поддерживает Unity 5.3.2+
    • Прежде чем перейти к остальной части этой статьи, выполните инструкции в разделе «Подготовка Vungle для Windows SDK v.2.0+ к подключаемому модулю Unity». Затем вернитесь на эту страницу и выполните оставшиеся действия.

  • Скачайте пример приложения: https://github.com/Vungle/Unity-Plugin/tree/sdk6.

 

Шаг 1. Настройка проекта Unity с подключаемым модулем Vungle Unity

Добавление подключаемого модуля Vungle Unity в проект Unity

Откройте свой проект в Unity и дважды щелкните скачанный файл VunglePlugin.unitypackage, чтобы добавить подключаемый модуль Vungle Unity в приложение. Когда откроется окно Import Unity Package (Импорт пакета Unity), нажмите кнопку All (Все), чтобы выбрать все элементы перед импортом.

 

Указание правильной платформы в параметрах сборки

Во избежание ошибок компиляции на следующем шаге убедитесь, что ваш проект Build Settings (cmd + Shift + B) предназначен для платформы iOS или Android.

Amazon Appstore

Пакет Vungle Android SDK поддерживает Amazon OS 5.4 и более поздние версии. Вы можете отправить пакет приложения для Android (APK) в магазин Amazon Appstore с дополнительной настройкой конфигурации Unity Amazon Appstore. Инструкции по подключаемому модулю Unity см. по следующей ссылке: https://docs.unity3d.com/Manual/UnityIAPAmazonConfiguration.html.

Сервисы Google Play

Включение сервисов Google Play в ваш проект позволяет Vungle обеспечить более органичное взаимодействие пользователя с рекламным объявлением, но не является обязательным. Мы рекомендуем использовать версию 11.0.1 и выше.

О том, как добавить сервисы Google Play, см. в руководстве по настройке Google, доступной на портале разработчиков: http://developer.android.com/google/play-services/setup.html#Setup. В приложении следует убедиться, что на устройстве имеется достаточно новая версия сервисов Google Play. Vungle SDK может дополнительно использовать API расположений и рекламных объявлений из сервисов Google Play.

  • android.gms:play-services-location:11.0.1
  • android.gms:play-services-ads:11.0.1
  • Для play-services 7.8.0 и более ранних версий: сохраните библиотеку поддержки
  • Для play-services 8.4.0 и более поздних версий: библиотека поддержки не требуется

Мы успешно скомпилировали автономный пакет SDK для компиляции со следующими версиями сервисов Google Play 7.8.0, 8.4.0, 9.8.0, 10.2.4 и 11.0.1.

После добавления сервисов Google Play добавьте следующие разрешения в AndroidManifest.xml. Программное обеспечение Vungle использует эту информацию для подбора оптимальных рекламных объявлений для каждого пользователя.

  • <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 

Добавление аппаратного ускорения (только для Android)

Аппаратное ускорение включено по умолчанию, если ваше целевой уровень API имеет значение 14 или выше. Этот параметр должен быть включен, чтобы SDK правильно отображал рекламу с динамическим шаблоном и Flex native. Убедитесь, что этот параметр не имеет значение false в вашем проекте.

Пример кода:

<application android:hardwareAccelerated="true" ...>

 

Шаг 2. Добавление кода

В этом пошаговом руководстве мы инициализируем весь наш код, связанный с Vungle, в сценарии, прикрепленном к основному объекту игры Game Object. Подключаемый модуль Vungle Unity Plugin можно вызвать из любых сценариев, которые вы считаете подходящими.

 

Инициализация SDK

Примечание. Для каждого приложения создается размещение по умолчанию. На данном шаге инициализации необходимо указать идентификатор размещения, независимо от того, планируете ли вы использовать функции размещения. Если вы создаете несколько размещений, укажите все идентификаторы.

Инициализируйте SDK при запуске приложения, чтобы осталось достаточно времени для кэширования рекламы (для размещения с автоматическим кэшированием). Для инициализации SDK вам потребуются:

  • все идентификаторы приложений для всех платформ, которые нужно поддерживать;
  • все идентификаторы размещений, которые будут использоваться в приложении, для всех платформ (активные и неактивные).

Эти идентификаторы можно найти на панели управления Vungle (см. статью Настройка размещений и отчеты по ним).

Пример кода:

public class VungleScript : MonoBehaviour { string appID = "";
string iosAppID = "ios_app_id";
string androidAppID = "android_app_id";
string windowsAppID = "windows_app_id"; #if UNITY_IPHONE appID = iosAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "ios_placement_id_1", false }, { "ios_placement_id_2", false }, { "ios_placement_id_3", false } }; #elif UNITY_ANDROID appID = androidAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "android_placement_id_1", false }, { "android_placement_id_2", false }, { "android_placement_id_3", false } }; #elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO appID = windowsAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "windows_placement_id_1", false }, { "windows_placement_id_2", false }, { "windows_placement_id_3", false } }; #endif string[] array = new string[placements.Keys.Count]; placements.Keys.CopyTo(array, 0); Vungle.init(appID, array);
}

После успешной инициализации SDK вызывается следующее событие:

public static event Action onInitializeEvent;

См. раздел Обработка событий в данной статье.

После инициализации пакет Vungle SDK автоматически запрашивает рекламное объявление для размещения, которое имеет статус Автокэширование на панели управления Vungle. Рекомендуем выбирать для автоматического кэширования самое часто просматриваемое размещение.

После успешного кэширования рекламы вызывается событие adPlayableEvent с идентификатором размещения, имеющего статус Автокэширование. (См. раздел Проверка доступности рекламы для размещения в данной статье.)

 

Загрузка рекламы для размещения

Чтобы загрузить рекламу для размещений без автоматического кэширования, вызовите метод loadAd.

public static void loadAd(string placementID)

Убедитесь, что используется идентификатор placementID, связанный с правильной платформой.

Пример кода:

string placementID; #if UNITY_IPHONE placementID = "ios_placement_id"; #elif UNITY_ANDROID placementID = "android_placement_id"; #elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO placementID = "windows_placement_id"; #endif Vungle.loadAd(placementID);

 

Проверка доступности рекламы для размещения

После того как SDK завершит кэширование рекламы для размещения, вызывается следующее событие:

public static event Action<string, bool> adPlayableEvent;

Пример кода:

Vungle.adPlayableEvent += (placementID, adPlayable) => { if(placementID == "ios_placement_id") { playButtonPlacement1.enabled = adPlayable; } };

Примечание. Это событие вызывается для размещения со статусом Автокэширование, только когда реклама становится доступна. SDK будет продолжать запрашивать рекламу для размещения с автоматическим кэшированием. Для всех остальных размещений это событие вызывается при появлении ошибки Load Failed (Сбой загрузки). В этом случае adPlayable возвращает false.

Проверить доступность рекламы для размещения можно также с помощью следующего метода:

public static bool isAdvertAvailable(string placementID);

Воспроизведение рекламы

Важно! Не воспроизводите рекламу, пока функция adPlayableEvent, описанная выше, не вернет значение true. Если вы попытаетесь воспроизвести рекламу до того, как функция adPlayableEvent вернет значение true, при попытке загрузки реклама будет подвержена неблагоприятному воздействию. При развертывании на Android вместо этого используйте значение, возвращенное из isAdvertAvailable(), чтобы обеспечить доступность объявления (поскольку adPlayableEvent не вернет false, когда нет доступных рекламных объявлений).

Если для размещения есть доступная реклама, вы можете воспроизвести ее с помощью следующего метода:

public static void playAd(string placementID);

Пример кода:

Vungle.playAd (placementID);

 

Обработка событий

Вы можете настроить обработчики событий для всех 5 событий Vungle SDK, связанных с показом рекламы.

  • Когда SDK начинает воспроизводить видеорекламу, запускается следующее событие. Это подходящий момент, чтобы приостановить игру, воспроизведение звуковых эффектов, анимации и т. д.
    public static event Action onAdStartedEvent;
  • Когда SDK закрывает рекламу, запускается следующее событие. Это подходящий момент, чтобы вознаградить пользователей и возобновить игру, звуковые эффекты, анимацию и т. д.
    public static event Action<string, AdFinishedEventArgs> onAdFinishedEvent;

    Класс AdFinishedEventArgs состоит из следующих свойств, которые позволяют просмотреть результат воспроизведения рекламы:
    public class AdFinishedEventArgs : EventArgs { //Значение BOOL показывающее, нажал ли пользователь кнопку скачивания. public bool WasCallToActionClicked{ get; set;} //Передает логическое значение, показывающее, можно ли считать просмотр видео завершенным. public bool IsCompletedView{ get; set;} }
  • Когда SDK изменяет статус доступности рекламы, запускается следующее событие. Логическое значение isAdPlayable обозначает новую возможность воспроизведения для конкретного идентификатора размещения placementID.
    public static event Action<string, bool> adPlayableEvent;
    См. раздел «Проверка доступности рекламы для размещения» в данной статье для получения дополнительной информации.

  • После успешной инициализации SDK запускается следующее событие.
    public static event Action onInitializeEvent;

Пример кода:

void initializeEventHandlers() { Vungle.onAdStartedEvent += (placementID) => { DebugLog ("Ad " + placementID + " is starting! Pause your game animation or sound here."); }; Vungle.onAdFinishedEvent += (placementID, args) => { DebugLog ("Ad finished - placementID " + placementID + ", was call to action clicked:" + args.WasCallToActionClicked + ", is completed view:" + args.IsCompletedView); }; Vungle.adPlayableEvent += (placementID, adPlayable) => { DebugLog ("Ad's playable state has been changed! placementID " + placementID + ". Now: " + adPlayable); }; Vungle.onInitializeEvent += () => { adInited = true; DebugLog ("SDK initialized"); }; }

 

Функции OnPause и OnResume

Добавив код для функций onPause и onResume, можно возобновлять воспроизведение рекламы, приостановленной при переходе приложения в фоновый режим.

void OnApplicationPause(bool pauseStatus) { if (pauseStatus) { Vungle.onPause(); } else { Vungle.onResume(); } }

 

Параметры настройки

Метод playAd может также принимать словарь параметров, позволяющий настроить воспроизведение рекламы.

public static void playAd(Dictionary<string,object> options, string placementID);

Примечание. Рекламные объявления с вознаграждением в некоторых случаях называются рекламными объявлениями со стимулом, оба термина относятся к одному и тому же типу рекламных объявлений. В коде SDK и нашем интерфейсе Reporting API мы используем термин incentivized (со стимулом).

В словаре параметров могут содержаться следующие ключи:

Ключ

Описание

orientation

Задает ориентацию рекламы.

  • Для iOS используйте VungleAdOrientation:
    public enum VungleAdOrientation { Portrait = 1, LandscapeLeft = 2, LandscapeRight = 3, PortraitUpsideDown = 4, Landscape = 5, All = 6, AllButUpsideDown = 7 }
  • Для Android установите значение true для параметра matchVideo и значение false для параметра autoRotate.

userTag

Строка пользователя, которая передается для идентификации пользователей в вызове S2S (при наличии).

alertTitle

Строка, которая появляется при преждевременном закрытии стимулированной рекламы пользователем.

alertText

Строка, которая появляется при преждевременном закрытии стимулированной рекламы пользователем.

closeText

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

continueText

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

immersive

Логическое значение, которое устанавливает режим комфортного просмотра (принудительно скрывает панели навигации и состояния). (Только для Android)

flexCloseSec

Целое число, определяющее количество секунд, после которого реклама Flex View может закрыться автоматически. Этот параметр влияет только на рекламу Flex View. (Только для iOS)

 

GDPR: рекомендации по реализации

25 мая в Европейском союзе вступил в силу Общий регламент по защите данных (General Data Protection Regulation, GDPR). Разработчикам доступно два варианта соблюдения его требований.

  • Вариант 1 (рекомендуется): Издатель контролирует процесс согласия с GDPR на уровне пользователя, а затем сообщает о выборе пользователя Vungle. Для этого разработчики могут собирать данные о согласии пользователя, используя свой собственный механизм, а затем использовать API Vungle для обновления или запроса статуса согласия пользователя. Более подробная информация доступна в разделе «Рекомендованные инструкции по реализации GDPR».

  • Вариант 2: Разрешить Vungle обрабатывать требования. Vungle будет отображать диалоговое окно с запросом согласия перед воспроизведением рекламы для европейского пользователя и будет запоминать согласие или отказ пользователя для последующих показов.

Реализация GDPR с помощью инструкций API

Чтобы использовать API Vungle для обновления или запроса статуса согласия пользователя (как рекомендовано в Варианте 1, используйте перечислитель Vungle.Consent и укажите текущее значение для двух следующих функций.

// The Consent enum is used to represent the user's current GDPR opt-in status public enum Consent { Undefined = 0, Accepted = 1, Denied = 2 } // Sets the user's consent status void updateConsentStatus(Vungle.Consent consent); // Gets the user's consent status Vungle.Consent getConsentStatus(); 

 

Реклама Flex Feed

Для iOS

Чтобы программно закрыть рекламу Flex View, используйте функцию closeAd:

Vungle.closeAd(placementID);

Эта функция не работает на Android.

Для Android

Работа Flex View на Unity Android отличается от работы на Unity iOS или нативном Android. Из-за ограничения в методах обработки действий на Unity, Flex View не позволяет пользователю взаимодействовать с базовой игрой, пока отображается реклама Flex View. В рекламе Flex View основное действие приостанавливается, когда другое действие выполняется поверх него. Если пользователь покидает приложение, когда отображается реклама Flex View, а затем возвращается к приложению позднее, реклама по-прежнему будет отображаться, но игра в фоне будет показывать черный экран. Это происходит потому, что базовое действие приостанавливается до тех пор, пока реклама Flex View не будет закрыта.

По этой причине рекомендуется избегать рекламы Flex View на Unity Android.

Для Windows

Реклама Flex View не поддерживается в Windows.

 

Реклама Flex Feed

Реклама Flex View не поддерживается при интеграции Vungle через подключаемый модуль Unity.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0
Еще есть вопросы? Отправить запрос

Комментарии