Vungle SDK v. 5 - Unity 入门

目录

开始之前

  • 针对 iOS 的 Vungle Unity 插件支持:
    • iOS 8
    • Unity 4 和 Unity 5.4.1 或更高版本
    • Vungle SDK 需要您将WebKit.framework 框架链接到您的项目。如果您是为 IOS 7 进行部署,则必须将此框架设置为“可选”。若要执行此操作,在项目导航中点击您的项目并转到一般链接的框架和库。选择WebKit.framework ,然后将状态设置为“可选”。

  • 针对 Android 的 Vungle Unity 插件支持:
    • 需要针对 Android 的 Java 1.7
    • 支持 Unity 4 和 Unity 5.3.2 及更高版本

  • 适用于 Windows 的 Vungle Unity 插件:
    • Windows(Universal 8.1 或 Phone 8.1)支持 Unity 4 和 Unity 5.3.2+
    • Windows 10 UWP 支持 Unity 5*.3*.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 平台。

Amazon 应用商店

Vungle Android SDK 支持 Amazon OS 5.4 及更高版本。您可以将 Android APK(具有 Unity Amazon 应用商店配置的其他设置)提交至 Amazon 应用商店。请参阅此处的 Unity 说明。

Google Play Services

项目添加 Google Play Services 之后,Vungle 能够为终端用户提供更加个性化的广告体验,但这不作要求。建议使用版本 11.0.1 或更高版本。

如要添加 Google Play Services,我们建议您查阅 Google 设置指南。在您的应用程序中,请确保设备已安装版本足够新的 Google Play Services。Vungle SDK 随意使用来自 Google Play Services 的广告位置和广告 API。

  • android.gms:play-services-location:11.0.1
  • android.gms:play-services-ads:11.0.1
  • 对于 Google Play Services 7.8.0 及以下版本:请保留支持库
  • 对于 play-services 8.4.0 及以上版本:不需要支持库

我们已经成功编译了独立的 SDK 以便与以下版本的 Google Play Services 进行编译:7.8.0、8.4.0、9.8.0、10.2.4 和 11.0.1。

添加 Google Play Services 后,将以下权限添加到AndroidManifest.xml.Vungle 使用此信息来为每个用户量身定制最佳广告体验:

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

步骤 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);

注意:奖励广告有些情况下是指激励广告;这两个术语始终指的是同一类广告。在 SDK 代码和我们的报告 API 中,我们使用术语“激励”。

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

密匙

说明

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 开启沉浸模式。

 

还有其它问题?提交请求

评论