Vungle(SDK v. 5.1 或更高版本)- Adobe Air 入门指南

请遵循这些指引来将我们的 Vungle Adobe Air 插件集成到一个基本的示例应用程序。这里引用的源代码可以在我们的公共 GitHub 存储库中获得

目录

开始之前

  • Vungle 扩展要求 Adobe AIR SDK 4.0 或更高版本。如需了解关于如何在 Flash Builder 或 Flash Professional 中更新 AIR SDK 的指引,请参阅“补充说明”部分。

  • 如果您使用的系统是 Android,Vungle AIR 扩展需要开发系统中安装有 JDK 6 或 JDK 7(取决于您正在使用的 Flash 版本)。运行程序需要 Android 3.0(Honeycomb - API 版本 11)或更新版本

  • 您可以参阅 ActionScript 3 类文档

  • 为示例应用程序类审核 example/VungleExample.as。(如果您是 Flash Professional 用户,并且不知道如何使用文档类,请查阅本指南末尾的“在 Animate 或 Flash Professional CS6 中使用 VungleExample.as 文档类?”)

步骤 1:添加扩展库

首先为移动项目创建一个新的 AIR 并添加本地扩展。

如果面向 Android: 您还需要添加 Google Play Services 库至您的项目。因为许多其他扩展已经含有此库,它可能已经存在。如要添加扩展,请重复以下步骤,但使用 com.vungle.extensions.android.GooglePlayServices.ane 来代替 com.vungle.extensions.Vungle.ane

对于 Animate 和 Flash Professional CS6 或更高版本

  1. 为 Android 或 iOS 项目创建一个新的 AIR。
  2. 选择文件 → 发布设置...
  3. 选择脚本旁边的扳手图标以进入‘ActionScript 设置’。
  4. 库路径选项卡中,点击浏览本地扩展(ANE)文件并选择 vungle.extensions.Vungle.ane 文件。点击 OK
  5. 选择目标旁边的扳手图标以进入‘播放器设置’。
  6. 如果面向 Android:在权限选项卡中,启用‘网络’,‘WRITE_EXTERNAL_STORAGE’,和‘ACCESS_NETWORK_STATE’。
  7. 为本应用程序选项选择手动管理权限和清单补充,并点击 OK

对于 Flash Builder 4.6 或更高版本

  1. 项目属性中,在Actionscript 构建路径下,选择本地扩展。 
  2. 选择添加 ANE... 并前往 vungle.extensions.Vungle.ane 文件。
  3. 选择 Actionscript 构建打包 → Google Android
  4. 本地扩展选项卡中,选择扩展旁边的打包选项。
  5. 如果面向 iOS,为 'Apple iOS' 目标重复步骤 3 和 4。

步骤 2:升级您的应用程序描述符

为了运行 Vungle,需要为您的应用程序修改应用程序 XML 文件。修改由您的 IDE 创建的 XML 文件,涉及以下更改。

注:如果您是 Flash Professional 用户,请确保您已遵循以上针对添加扩展库(对于 Animate 和 Flash Professional CS6 或更高版本)的步骤;否则,当您进行修改时,Flash 可能撤销您的修改。

  1. 在应用程序描述符文件中,设置您的 AIR SDK 至 4.0(或更新版本):
    <application xmlns="http://ns.adobe.com/air/application/4.0">
  2. 在描述符中添加一个链接到扩展:
    <extensions>
    <extensionID>com.vungle.extensions.Vungle</extensionID>
    </extensions>
  3. 如果面向 Android:您还需要添加 Google Play Services 扩展。并在此添加其扩展 ID。
    <extensions>
    <extensionID>com.vungle.extensions.Vungle</extensionID>
    <extensionID>com.vungle.extensions.android.GooglePlayServices</extensionID>
    </extensions>

对于面向 Android 的 AIR 应用程序

如果面向 Android,请更新 android XML 元素中的 Android 清单补充至:

  • 添加 INTERNETWRITE_EXTERNAL_STORAGE,和 ACCESS_NETWORK_STATE 权限
  • 添加 VideoFullScreenAdActivity,MraidFullScreenAdActivity,and MraidFullScreenAdActivity 活动定义
  • 添加 google-play-services 版本元数据标签:
    
    <android>
    <manifestAdditions><![CDATA[
    
    <manifest android:installLocation="auto">
    
    <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <application>
       <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
       <activity android:name="com.vungle.publisher.VideoFullScreenAdActivity"
         android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
         android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
       <activity android:name="com.vungle.publisher.MraidFullScreenAdActivity"
         android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
         android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
       <activity android:name="com.vungle.publisher.FlexViewAdActivity"
         android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
         android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
     </application>
    
    </manifest>
    ]]></manifestAdditions>
    </android>

步骤 3:集成 Vungle API

添加 Vungle API 到您的应用程序只需几行 ActionScript。

初始化 Vungle 扩展

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

当您的应用程序启动时,初始化 API。

  • 如果使用纯 ActionScript,请在文档类的构造符中进行。
  • 如果使用 Flex,请在主类的 initialize() 事件中调用。
  • 如果在 Flash 中使用时间轴代码,请在 Frame 1 上进行。
  1. 导入 API 类:
    导入 com.vungle.extensions.*;
    导入 com.vungle.extensions.events.*;
  2. 通过调用 create() 来初始化 API,然后从 Vungle 仪表板进入一个应用程序 ID 字符串和一个含有应用程序广告位置参考 ID 的阵列。如果您从同一个项目同时面向 iOS 和 Android,请按平台提供不同的 ID 及其广告位置阵列到 create() 方法。

    打包调用 Vungle.create() 到一个 try/catch 程序中,因为 Vungle 可能在创建过程中抛出一个错误(例如,如果在台式机上运行,扩展将抛出一个错误):
    try
    {
        // 使用您的应用程序 ID 来初始化
        Vungle.create("your_vungle_id", [“placement1”, “placement2”, “placement3”]);
     
    } catch (error:Error) {
        // 无法创建扩展。您在运行 iOS/Android 之外的程序吗?
    }

加载广告位置的广告

如要播放一个广告位置的广告,您必须先为那个广告位置加载一个广告。请注意,您设置的自动缓存广告位置不需要您调用此方法。SDK 将会自动为自动缓存的广告位置加载广告。

Vungle.vungle.loadAd(“non_auto_cached_placement”);

播放广告位置的广告

您将通过事件侦听器来了解何时广告已准备好播放。一旦广告位置可以用于播放,您就可以播放广告。

If (Vungle.vungle.isAdAvailable(“placement_id”)) {
    Vungle.vungle.playAd(“placement_id”);
}

添加事件侦听器

Vungle Extension 发送四个事件: VungleEvent.AD_PLAYABLEVungleEvent.AD_STARTED, VungleEvent.AD_FINISHEDVungleEvent.AD_FAILEDVungleEvent.AD_INIT,和 VungleEvent.AD_LOG

  1. 当一个广告准备播放时,AD_PLAYABLE 将被发送。
    Vungle.vungle.addEventListener(VungleEvent.AD_PLAYABLE, onAdPlayable);
    function onAdPlayable(e:VungleEvent):void
    {
        if (e.isAdPlayable) {
            trace(“ad is playable for placement: “ + e.placement);
            Vungle.vungle.playAd(e.placement);
        } else {
    	trace(“ad not playable for placement: “ + e.placement);
        }
    }
  2. 在一个广告被展示和被摒弃时,AD_STARTEDAD_FINISHED 事件将分别被发送:
    Vungle.vungle.addEventListener(VungleEvent.AD_STARTED, onAdStarted);
    Vungle.vungle.addEventListener(VungleEvent.AD_FINISHED, onAdFinished);
    
    function onAdStarted(e:VungleEvent):void
    {
        trace("ad displayed for placement: " + e.placement);
    }
    
    function onAdFinished(e:VungleEvent):void
    {
        trace("ad dismissed for placement: “ + e.placement + “, CTA = " + e.wasCallToActionClicked);
    
        if (e.wasSuccessfulView) {	
            trace("counts a completed view - present reward.");
        }
    }
  3. 当 Vungle SDK 完成初始化时,AD_INIT 将被发送。
    function onAdInit(e:VungleEvent):void
    {
        trace(“Vungle SDK is initialized: “ + e.isInitialized”);
    }
  4. 当 Vungle SDK 发出一条日志消息时,AD_LOG 将被发送。您可以使用它来进行调试。日志记录只在 iOS 系统的 Vungle SDK 中执行,因此,此事件限于特定平台。
    Vungle.vungle.setLoggingEnabled(true);
    Vungle.vungle.addEventListener(VungleEvent.AD_LOG, onAdLog);
    
    private function onAdLog(e:VungleEvent):void
    {
        log("ad log: " + e.message);
    }

更多选项

如您所见,调用 playAd() 方法时,您可以忽略一个拥有配置选项的对象。这些是 VungleAdConfig 中的可用属性:

选项

说明

方向

VungleOrientation

Android

●      VungleOrientation.AUTO_ROTATE

●      VungleOrientation.ANDROID_MATCH_VIDEO

iOS

●      VungleOrientation.IOS_LANDSCAPE

●      VungleOrientation.IOS_PORTRAIT

soundEnabled

布尔值

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

backButtonImmediatelyEnabled

布尔值

仅仅对于 Android 来说,如果为 true,则用户可以立即使用返回按钮退出广告。如果为 false(默认),在屏幕上的关闭按钮显示之前用户不可以使用返回按钮退出广告。

immersiveMode

布尔值

仅仅对于 Android 来说,如果设为 true,它将在 KitKat+ 设备上启用沉浸模式。它默认设置为 false

incentivizedUserId

字符串

您可以设置一个将被传递到您的应用程序的唯一用户 ID,以验证该用户是否应该因为观看了奖励广告而获得奖励。

incentivizedCancelDialogTitle

字符串

您可以自定义一条信息,当用户试图关闭未播放完的视频时,他们将会看到这条信息。

 

注:此选项仅适用于标准的 Vungle 广告,不支持动态模板广告。适用于动态模板广告的选项可在仪表板上进行配置,并且具有相同的选项。

incentivizedCancelDialogBodyText

incentivizedCancelDialogCloseButtonText

incentivizedCancelDialogKeepWatchingButtonText

示例代码:

var adConfig:VungleAdConfig = new VungleAdConfig();
            
adConfig.orientation = VungleOrientation.ANDROID_MATCH_VIDEO | VungleOrientation.IOS_LANDSCAPE;
adConfig.soundEnabled = false;

android: {
    adConfig.backButtonImmediatelyEnabled = true;
    adConfig.immersiveMode = true;
};

adConfig.incentivizedUserId = "vungle_test_user";
adConfig.incentivizedCancelDialogBodyText = "body_text";
adConfig.incentivizedCancelDialogCloseButtonText = "close_button_text";
adConfig.incentivizedCancelDialogKeepWatchingButtonText = "continue_button_text";
adConfig.incentivizedCancelDialogTitle = "title_text";

Vungle.vungle.playAd(placement, adConfig);

全局默认值

您可以使用全局配置对象来设置选项的默认值:

// set any configuration options you like
VungleAdConfig.globalConfig.orientation = VungleOrientation.ANDROID_MATCH_VIDEO;
VungleAdConfig.globalConfig.soundEnabled = false;

然后每个新的 VungleAdConfig 对象将以这些默认值来创建。没有选项的 playAd() 也使用全局配置。

注: 当您的应用程序处于测试模式时,您将无法下载任何通告的应用程序。此外,Dashboard 不会报告展示次数。这是因为测试广告仅用于验证您是否已正确集成 SDK。一旦您的应用程序在活动模式下上线,即可使用此功能。

补充说明

在 Animate 或 Flash Professional CS6 中使用 VungleExample.as 文档类

  1. 首先,根据本集成指南第 1-3 节的指引创建应用程序和添加扩展。
  2. 复制和粘贴到同一个文件夹以作为您的 .fla 文件。请不要复制和粘贴其内容到时间轴上。
  3. 请将第 20 行中的应用程序 ID 和广告位置 ID 修改为您自己的 Vungle ID。
  4. 在 Flash 属性中,在文档类下,输入 VungleExample' 并按下 OK
  5. 构建和安装应用程序。

在 Flash Professional CS6 中安装更新版本的 AIR SDK(4.0 或更高)

请沿此链接去寻找最新版本的 AIR SDK。如果您已经安装了 AIR 4.0 或更高版本,您可以跳过此步骤。否则,请遵循以下指引:

  1. 解压 AIR 4.0 或更新版本的 SDK 文件包到您硬盘上的一个位置。
  2. 启动 Flash Professional CS6。
  3. 选择帮助 → 管理 AIR SDK...
  4. 点击 +(加号)按钮并前往已解压的 AIR SDK 的所在位置。
  5. 点击 OK
  6. 选择文件 → 发布设置
  7. 目标下拉菜单中选择面向 iOS 的最新 AIR SDK。

在 Flash Builder 中安装更新版本的 AIR SDK(4.0 或更高)

请沿此链接去寻找最新版本的 AIR SDK。如果您已经安装了 AIR 4.0 或更高版本,您可以跳过此步骤。您还可以使用 Adobe 的最新指引来更新 Flash Builder AIR SDK

解决‘Adobe Animate 无效输入’错误

如果您收到如下图所示的错误,请参阅此文章

image2.png

还有其它问题?提交请求

评论