Vungle SDK v. 5 - Unity 入门指南

目录

开始之前

  • 针对 iOS 的 Vungle Unity 插件支持:
    • iOS 7
    • Unity 4 和 Unity 5.4.1 或更高版本
  • 针对 Android 的 Vungle Unity 插件支持:
    • 需要针对 Android 的 Java 1.7
    • 支持 Unity 4 和 Unity 5
  • 适用于 Windows 的 Vungle Unity 插件:
    • Windows(Universal 8.1 或 Phone 8.1)支持 Unity 4 和 Unity 5.3.2+
    • Windows 10 UWP 支持 Unity 5.2+
    • 在继续学习本文的其余内容前,请先按照为 Unity 插件准备 Vungle Windows SDK v.2.0+ 中的说明操作。然后再返回到这里,完成其余步骤。
  • 下载示例应用:https://github.com/Vungle/Unity-Plugin/tree/sdk5

步骤 1:使用 Vungle Unity 插件设置您的 Unity 项目

添加 Vungle Unity 插件到您的 Unity 项目

在 Unity 中打开您的项目,然后双击下载的 VunglePlugin.unitypackage 文件以添加 Vungle Unity 插件到您的应用程序。当导入 Unity 程序包窗口打开时,点击全部以选择一切,然后导入。

确保在您的构建设置中面向正确的平台。

为了避免下一步中的编译错误,请确保您的项目构建设置(cmd + Shift + B)面向的是 iOS 或 Android 平台。

步骤 2:添加代码

在本预排中,我们初始化了附属于主游戏对象的一个脚本中的所有与 Vungle 相关的代码。您可以从任何您认为合适的脚本中调用 Vungle Unity 插件

初始化 SDK

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

一旦您的应用程序启动,尽快初始化 SDK,以便给予 SDK 足够的时间来为自动缓存的广告位置缓存广告。为了初始化 SDK,您将需要:

  • 您需要支持的所有平台的所有应用程序 ID
  • 您想在应用程序中使用的针对所有平台的所有广告位置参考 ID(包括有效的和无效的)

您可以在 Vungle 仪表板中找到这些 ID(请参阅广告位置的设置和报告)。

示例代码:

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 成功初始化,它将调用以下事件:

公用静态事件 Action onInitializeEvent;

请参阅本文章的“事件处理”部分。

SDK 初始化之后,它将自动为您在 Vungle 仪表板中选为自动缓存的广告位置请求广告。我们建议选择观看次数最多的广告位置用于自动缓存。

一旦广告缓存成功,拥有匹配您的自动缓存广告位置的广告位置参考 ID 的 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 == ) {
    layButtonPlacement1.enabled = adPlayable;
  }
};

注:对于自动缓存的广告位置,只有在有一个广告变得可用时,此事件才将被调用。SDK 将会一直为自动缓存的广告位置请求广告。对于其他广告位置,此事件将在“加载失败”(在这种情况下,adPlayable 返回‘NO')时被调用。

您还可以通过以下方法来检查广告位置的广告可用性:

public static bool isAdvertAvailable(string placementID);

播放广告

当广告位置有一个可用的广告时,您可以使用以下方法来播放广告:

public static void playAd(string placementID);

示例代码:

Vungle.playAd ();

事件处理

您可以为广告展示周围的所有 5 个 Vungle SDK 事件设置事件处理器。

  • 当 SDK 开始播放视频广告时,以下事件将被引发。这是暂停广告情节、声音效果、动画等的极好位置。
    public static event Action onAdStartedEvent;
  • 当 SDK 关闭广告时,以下事件将被引发。这是奖励用户和恢复广告情节、声音效果、动画等的极好位置。
    public static event Action<string, AdFinishedEventArgs> onAdFinishedEvent;

    AdFinishedEventArgs 类由以下属性组成,供您检查广告播放的结果:
    public class AdFinishedEventArgs : EventArgs
    {
      //代表一个布尔值,即用户是否点击了下载按钮。
        public bool WasCallToActionClicked{ get; set;}
    
      //代表一个布尔值,即视频是否可以被认为得到了完整播放。
        public bool IsCompletedView{ get; set;}
    
    
    }
  • 当 SDK 更改了广告可用性状态时,以下事件将被引发。isAdPlayable 布尔值表示一个特定 placementID 的新可播放性。
    public static event Action<string, bool> adPlayableEvent;
    请参阅本文章的“检查广告位置的广告可用性”部分来了解更多信息。

  • 一旦 SDK 成功初始化,以下事件将被引发。
    公用静态事件 Action onInitializeEvent;
  • 当 SDK 输出日志时,以下事件将被引发。
    公用静态事件 Action onLogEvent;

示例代码:

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.onLogEvent += (log) => {
            DebugLog ("Log: " + log);
        };

        Vungle.onInitializeEvent += () => {
            adInited = true;
            DebugLog ("SDK initialized");
        };
    }

OnPause 和 OnResume 功能性

onPauseonResume 功能添加代码。这些功能能够使因应用程序进入后台运行而暂停的广告重新播放。

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

自定义选项

playAd 方法可以接受一个选项词典来自定义广告播放体验。

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

选项​​字典接受下面的密匙:

密匙

说明

orientation

设置广告的方向。

  • 对于 iOS,请使用 VungleAdOrientation:
    public enum VungleAdOrientation
    {
        Portrait = 1,
        LandscapeLeft = 2,
        LandscapeRight = 3,
        PortraitUpsideDown = 4,
        Landscape = 5,
        All = 6,
        AllButUpsideDown = 7
    }
  • 对于 Android,设置 matchVideo 为 true,设置 autoRotate 为 false。

userTag

被传递用于在 S2S 调用中识别用户的用户密钥(如果有的话)。

alertTitle

在用户过早关闭奖励推广的广告体验时,用作呈现的警告对话框标题的字符串。

alertText

在用户过早关闭奖励推广的广告体验时,用作呈现的警告对话框正文文本的字符串。

closeText

在用户过早关闭奖励推广的广告体验时,用作呈现的警告对话框关闭按钮文本的字符串标题。

continueText

在用户过早关闭奖励推广的广告体验时,用作呈现的警告对话框关闭按钮文本的字符串标题。

immersive

为 Android 开启沉浸模式。

 

还有其它问题?提交请求

评论