Начало работы с Vungle SDK v. 5 — Corona

Содержание

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

  • Рекомендуем использовать для интеграции последнюю сборку модуля Corona. Версия Vungle SDK v. 5.3.0 для Android и iOS доступна начиная с текущей сборки Corona 2017.3154.
  • Подключаемый модуль Vungle Corona для iOS поддерживает iOS 8 и более поздних версий (с ограничением для Corona SDK).
  • Подключаемый модуль Vungle Corona для Android поддерживает Android 4.0.3 (Ice Cream Sandwich с API версии 15) и более поздних версий (с ограничением для Corona SDK).
  • Подключаемый модуль Vungle Corona для Android поддерживает Amazon OS 5.4 и более поздние версии, добавлено начиная с текущей версии 2017.3124.
  • Скачайте пример приложения: https://github.com/Vungle/Corona-Plugin/tree/sdk5.

Шаг 1. Обновление build.settings

Добавьте следующую запись в таблицу подключаемых модулей в build.settings. После добавления SDK подключится к серверу, чтобы интегрировать подключаемый модуль Vungle SDK 5+ на этапе сборки:

plugins =
{ ["plugin.vungle"] = { publisherId = "com.vungle",
},
..
}

Только для Android

В Android при использовании этого модуля автоматически добавляются следующие разрешения:

androidPermissions = {
    "android.permission.INTERNET",
    "android.permission.WRITE_EXTERNAL_STORAGE",
    "android.permission.ACCESS_NETWORK_STATE"
},

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

androidPermissions = {
"android.permission.ACCESS_COARSE_LOCATION",
"android.permission.ACCESS_FINE_LOCATION" /
},

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

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

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

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

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

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

Пример кода:

local ads = require "plugin.vungle"
platform = system.getInfo( "platformName" )
placements = {}

if (platform == "Android") then
    appData = {
        appID="YOUR_ANDROID_APP_ID",
        placements={“PLMT_DEFAULT","PLMT_1","PLMT_2"}
    }
else
    appData = {
        appID="YOUR_IOS_APP_ID",
        placements={“PLMT_DEFAULT","PLMT_1","PLMT_2"}
}

-- vungleAdListner is optional
ads.init("vungle", appData.appID .. "," .. appData.placements[1] .. "," .. appData.placements[2] .. "," .. appData.placements[3] [, vungleAdListener])

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

event.type == "adAvailable"

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

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

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

Чтобы загрузить рекламу для размещений без автоматического кэширования, вызовите метод ads.load(). В качестве аргумента передается строка идентификатора размещения и предпринимается попытка загрузить рекламу для конкретного размещения, только когда выполнен вызов ads.load() и реклама недоступна для этого размещения.

ads.load( "PLMT_1” )

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

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

Выделив достаточно времени для завершения скачивания рекламных ресурсов, вы можете воспроизвести рекламу путем вызова ads.show(). Прежде чем пытаться воспроизвести рекламу, нужно проверить, есть ли готовая реклама для этого размещения. Используйте для этого вызов event.adPlayble.

Пример кода:

if (event.placementID == appData.placements[1]) then
    if ( event.adPlayable == true ) then
        ads.show( "PLMT_DEFAULT")
    end
end

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

В можете передать в ads.init() дополнительные прослушиватели событий, настроив прослушиватели до инициализации. Список доступных прослушивателей событий приведен ниже.

  • adStart
    type: adStart
    placementID: идентификатор размещения
    isError: true, если рекламу не удается воспроизвести; false, если начинается воспроизведение рекламы

  • adLog
    type: adLog
    message: сообщение о рекламной активности

  • adInitialize
    type: adInitialize 

  • adAvailable
    type: adAvailable
    placementID: идентификатор размещения
    isAdPlayable: true, если реклама доступна для воспроизведения; false в противном случае

  • adEnd
    type: adEnd
    placementID: идентификатор размещения
    didDownload: true, если пользователь нажал кнопку скачивания; false в противном случае
    completedView: true, если пользователь посмотрел не менее 80 % видео; false в противном случае

  • vungleSDKlog
    type: vungleSDKlog
    message: сообщение о событии SDK

Пример кода:

local function vungleAdListener( event )
    if ( event.type == "adStart" and not event.isError ) then
        -- adStart event is called and ad will play
    end
    if ( event.type == "adStart" and event.isError ) then
        -- Ad has not finished caching and will not play
    end
    if ( event.type == "adLog") then
        -- adLog event is called to pass ad activity information
    end
    if ( event.type == "adInitialize") then
        -- adInitilizaed is called when placement has successfully initialized
    end
    if ( event.type == "adAvailable" ) then
        -- adAvailable is called when playablility changes to/from true/false
        -- Usage example: setting a flag to true when download completes
        --   Check event.placementID and event.isAdPlayable to set a flag to true
        --   Then check this flag later in your app and play an ad when it is true
    end
    if ( event.type == "adEnd" ) then
        -- adEnd is called when the end card is closed and and control is return to the hosting app

    end
    if ( event.type == "vungleSDKlog" ) then
        -- vungleSDKlog is called when logging event from SDK takes place
    end
end

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

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

Ключ

Значение

Описание

alertTitle

alertText

alertContinue

placement

Строка

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

Примечание. Этот параметр применим только к стандартной рекламе Vungle. Аналогичная настройка для рекламы с динамическим шаблоном возможна на панели управления.

isAutoRotation

Логич.

Для Android: при значении true (по умолчанию) видеореклама будет автоматически поворачиваться в соответствии с ориентацией устройства. При значении false будет использоваться предпочитаемая ориентация рекламы.

Для iOS: см. ключ orientation ниже.

isSoundEnabled

Логич.

При значении true (по умолчанию) звук во время показа видеорекламы будет включен (в соответствии с системными звуковыми настройками). При значении false видео будет воспроизводиться без звука. Обратите внимание, что пользователь может сам отключить или включить звук во время воспроизведения.

immersive

Логич.

Только для Android. Включает и выключает режим комфортного просмотра на устройствах KitKat+.

large

Логич.

Только для iOS. Отображает кнопки большего размера для управления функциями рекламы, например для отключения звука или закрытия.

orientation

Целое число

Только для iOS. Задает значение 4 для альбомной ориентации, 0 — для книжной или 5 — для автоматического поворота.


Пример кода:

if (platform == "Android") then
    options = {
        placementId = placements[i],
        isAutoRotation = isAutoRotate,
        immersive = isImmersive,
        isSoundEnabled = not isMuted
    }
else
    options = {
        placementId = placements[i],
        large = large.isOn,
        isSoundEnabled = not muted.isOn
    }
end
if (not isempty(alertTitle.text)) then
            options.alertTitle = alertTitle.text
end
if (not isempty(alertText.text)) then
    options.alertText = alertText.text
end
if (not isempty(alertClose.text)) then
    options.alertClose = alertClose.text
end
if (not isempty(alertContinue.text)) then
    options.alertContinue = alertContinue.text
end
if (not isempty(placement.text)) then
    options.placement = placement.text
end

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

Комментарии