Vungle SDK v. 5 - Corona 入门指南

目录

开始之前

  • 我们建议您使用最新的 Corona build 版本进行集成。Vungle Android 和 iOS SDK v. 5.3.2 从 Corona 每日构建 2017.3179 开始提供。
  • 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 Services 后,再将以下权限添加到 AndroidManifest 中。Vungle 会使用这些信息为用户定制最适合的广告。

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

重要事项:如果使用 Corona Enterprise 进行开发,必须添加 Android 支持库 v4,以确保集成成功。

步骤 2:添加代码

初始化 SDK

注意:系统会自动为每个应用程序创建一个默认广告位置。无论是否打算利用该广告位置功能,您都必须在此初始化步骤中提供其广告位置参考 ID。如果创建了多个广告位置,请提供所有参考 ID。

我们建议您在启动应用程序后立即初始化 SDK,以便为 SDK 提供足够时间来为自动缓存的广告位置下载广告资产。初始化 SDK 需要:

  • 导入 Vungle 广告
  • 应用程序 ID
  • 将在应用程序中使用的所有广告位置的参考 ID

您可以在 Vungle 管理面板中找到这些 ID(请参阅广告位置的设置和报告)。对于 Amazon 平台,请使用 Vungle 管理面板中的 Amazon 应用程序 ID

示例代码:

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

-- Amazon application ID is under the Android platform
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 初始化之后,它会自动对您在 Vungle 管理面板中选定为“自动缓存”的广告位置请求广告。我们建议选择观看次数最多的广告位置用于自动缓存。

广告被成功缓存后,即会调用其广告位置参考 ID 与您选定的“自动缓存”广告位置相匹配的 adAvailable 事件。对于自动缓存的广告位置,此回调方法仅在广告可用性从 true 变为 false 或者从 false 变为 true 时才会被调用。SDK 会一直为自动缓存的广告位置请求广告。对于其他广告位置,此回调方法仅在“加载失败”(在这种情况下,adAvailable 会返回 NO)时才被调用。

为广告位置加载广告

对于非自动缓存的广告位置,应调用 ads.load() 方法来加载广告。系统仅在 ads.load() 被发布且该广告位置无可用广告时,才把一个广告位置参考 ID 字符串作为参数,并尝试为该广告位置加载广告。

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:广告位置参考 ID
    isError:如果广告无法播放,则为 true;如果开始播放广告,则为 false

  • adLog
    type: adLog
    message:广告活动消息

  • adInitialize
    type: adInitialize

  • adAvailable
    type: adAvailable
    placementID:广告位置参考 ID
    isAdPlayable:如果广告可播放,则为 true:否则为 false

  • adEnd
    type: adEnd
    placementID:广告位置参考 ID
    didDownload:如果用户点击了下载按钮,则为 true;否则为 false
    completedView:如果用户观看了 80% 以上的视频则为 true;否则为 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

广告位置

字符串

您可以自定义一条提示信息,当用户试图关闭未播放完的激励式视频时,屏幕上会显示这条信息。(奖励式广告在有些情况下又称为激励式广告;这两个术语实际指的是同一类广告。在 SDK 代码和报告 API 中,我们统一使用“激励式”广告这一术语。

注意:此设置仅适用于标准的 Vungle 广告。对于 Dynamic Template 广告,可在管理面板中进行同样的自定义设置。

isAutoRotation

布尔值

对于 Android,如果为 true(默认),视频广告将随设备方向自动旋转。如果为 false,将使用广告的首选方向。

对于 iOS,请参见下面的方向键。

isSoundEnabled

布尔值

如果为 true(默认),则播放视频广告时将启用声音(取决于设备的声音设置)。如果为 false,播放视频时为静音。请注意,用户可以在播放过程中调成静音或取消静音。

immersive

布尔值

仅限 Android,在 KitKat+ 设备上启用或禁用沉浸模式。

large

布尔值

仅限 iOS,增大广告功能控制按钮(如静音或关闭)的尺寸。

orientation

整数

仅限 iOS,设置 4 = 横向,0 = 纵向,或 5 = 自动旋转。

userTag

字符串

设置用户 ID 以对观看激励式广告的用户进行奖励。

ordinal

字符串

设置用于跟踪会话中已显示广告条数的有序数据。自定义报告可按需提供。


示例代码:

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)
还有其它问题?提交请求

评论