Vungle SDK - Unity集成指南

目录

开始之前

要求

Vungle SDK iOS v6.5.2

  • Unity 5.4.1 或更高版本, 2017, 2018, 和 2019
  • iOS9或更高版本
  • Vungle SDK要求您的工程依赖WebKit.framework framework。如果您计划为iOS7开发应用,那么请将该framework设置为'Optional'。具体操作如下:点击工程的Project Navigator,前往GeneralLinked Frameworks and Libraries。选择WebKit.framework并设置 Status 为‘Optional’。

Vungle SDK Android v6.5.2

  • Unity 5.3.2或更高版本, 2017, 2018, 和 2019
  • Android 4.0 (Ice Cream Sandwich - API version 14 和更高版本)
  • Amazon OS 5.4 和更高版本
  • Android要求Java 1.7

Vungle SDK Windows v6.5.2

  • Unity 5.3.2 或更高版本,2017, 2018, 和 2019
  • Windows 10 UWP 和 Universal 8.1

下载Plugin

此处下载 Vungle plugin for Unity。

示例工程

请查看我们的示例工程:https://github.com/Vungle/Unity-Plugin

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

将 Vungle Unity 插件添加到 Unity 项目中

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

在构建设置中选择面向的正确平台。

为了避免编译问题,请确认你的工程Build Settings (cmd + Shift + B) 设置为正确的 iOS, Android, 或 UWP platform。

Amazon 应用商店

Vungle Android SDK支持 Amazon OS 5.4和更高版本。您只需要做一些额外的设置,就可以提交Android APK到Amazon Appstore。详情请查看Unity instructions

Google Play Services

添加Google Play Services到您的工程,能否让Vungle提供更个性化的广告给用户,但这不是必须的。我们建议使用 16.0.0 或更高版本。

如果要添加Google Play Services,我们建议查看文档Google's setup guide on the developer portal

Android依赖

Vungle Android SDK要求添加以下依赖,您可以选择手动集成或使用Maven Gradle集成。

implementation 'androidx.appcompat:appcompat:1.1.0' 
// When appcompat is not used, core and localbroadcastmanager can be used instead 
// implementation "androidx.core:core:1.1.0" 
// implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"

添加Hardware Acceleration (Android only)

Hardware acceleration默认是开启的,如果您的应用Target API是14或更高版本。这个设置能够让Vungle SDK正确的展示我们的Dynamic Template广告,请务必不要关闭。

示例代码:

<application android:hardwareAccelerated="true" ...>

步骤 2:添加代码

接下来,要初始化Vungle相关代码,并附加到Game Object中。您就开始能够调用 Vungle Unity Plugin相关代码。

初始化 SDK

越早初始化SDK,应用就越有足够的时间来缓存广告。您需要使用Vungle App ID来初始化SDK。您可以从此处获取ID(refer to "Setting Up and Reporting on Placements")。

系统会自动为每个应用程序创建一个默认广告位置。

示例代码:

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;
#elif UNITY_ANDROID
appID = androidAppID;
#elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO
appID = windowsAppID;
#endif
Vungle.init(appID);}

当 SDK 成功完成初始化后,会调用以下事件:

public static event Action onInitializeEvent;

请查看相关文档 Event Handling

请联系您的客户经理来优化缓存表现。

当缓存成功时, adPlayableEvent会触发并返回Placement Reference ID。(请查看文章Check Ad Availability for a Placement

加载广告

请使用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 == "ios_placement_id") { 
    playButtonPlacement1.enabled = adPlayable; 
  } 
};

须知: 当该事件触发时,意味着已经有广告缓存成功了。优化后的广告位会自动缓存广告,无需开发者做额外处理。当adPlayable 返回 false 时,则该Placement的缓存失败了。

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

public static bool isAdvertAvailable(string placementID);

 

播放广告

重要:请勿低啊用播放方法,直到 adPlayableEvent 回调返回 'true'。如果在adPlayableEvent回调返回'true'前调用播放,则会由于无法播放广告而影响用户体验。

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

public static void playAd(string placementID);

示例代码:

Vungle.playAd (placementID);

回调

你可以设置回调事件来获取Vungle SDK所触发的相关事件。

  • 以下回调是在播放广告时触发的。可以在此处进行游戏音效的静音。
    public static event Action onAdStartedEvent;
  • 以下回调,是在广告关闭时触发的。可以在此处奖励用户,也可以在此处进行音效的恢复。
    public static event Action<string, AdFinishedEventArgs> onAdFinishedEvent;
    AdFinishedEventArgs会返回如下参数:
    public class AdFinishedEventArgs : EventArgs { 
      //Represents a BOOL whether or not the user clicked the download button. 
      public bool WasCallToActionClicked{ get; set;} 
      //Represents a bool whether or not the video can be considered a completed view. 
      public bool IsCompletedView{ 
        get; set;
      } 
    }
  • 当 SDK 更改了广告可用性状态时,会触发以下事件。isAdPlayable 布尔值表示存在新的可播放 placementID
    public static event Action<string, bool> adPlayableEvent;
    请查看Check Ad Availability for a Placement文章来获取更多细节。
  • 当 SDK 成功完成初始化后,会触发以下事件:
    public static event Action onInitializeEvent;

示例代码:

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.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 “关闭”按钮文本的字符串标题:用于在用户过早关闭激励式广告体验时所显示的警告对话框按钮。

 

设置最小磁盘空间

在SDK 6.4.0以后,Vungle就引入了最小磁盘空间的概念来决定SDK是否初始化或缓存广告。SetMinimumDiskSpaceForInitialization默认是 51 MB。 SetMinimumDiskSpaceForAd默认是50 MB。该设置单位为bytes (而不是 MB)。

Vungle.SetMinimumDiskSpaceForInitialization(minValue);
Vungle.SetMinimumDiskSpaceForAd(minValue); 
Vungle.init(appID);

禁用Hardware ID

对于SDK 6.4.0之后,开发者可以禁止Vungle SDK后去Hardware ID。

//Set false to opt in for Hardware ID collection by SDK or true to opt out
Vungle.EnableHardwareIdPrivacy(m_disableHardwareID);

GDPR 推荐实施方法说明

在2019年5月25日, the General Data Protection Regulation (GDPR) 在欧盟开始实行。为了符合GDPR要求,开发者有两个选择。

  • 方法一(推荐): 开发者控制GDPR设置的整个流程,然后再将用户的选择传递给Vungle。详情请查看以下示例代码:
  • 选项 2:允许 Vungle 处理相关需求。Vungle 在向欧洲用户播放广告之前会显示征求同意的对话框,并记住用户的同意或拒绝选择,以用于后续的广告。

使用Vungle的API来处理用户GDPR设置,请使用Vungle.Consent来设置用户当前选择。

// The Consent enum is used to represent the user's current GDPR opt-in status 
public enum Consent { 
  Undefined = 0, 
  Accepted = 1, 
  Denied = 2 
} 
// Sets the user's consent status 
void updateConsentStatus(Vungle.Consent consent); 
// Sets the user's consent status and also sets a string to track GDPR version 
void updateConsentStatus(Vungle.Consent consent, string consentMessageVersion); 
// Gets the user's consent status 
Vungle.Consent getConsentStatus();

 

Powered by Creativity Driven by Performance Sign Up Here

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!

这篇文章有帮助吗?