AI Search

统一

将 InMobi SDK 与 Unity 集成非常简单。

您可以通过 Unity 插件在 Android 和 iOS 应用上从 InMobi 获取以下几种广告类型:

  • 横幅广告
  • 插屏广告(静态插屏广告和全屏视频广告)
  • 激励视频广告

要运行最新版本的 Unity 插件,您需要以下条件:

  • Unity 5 或更高版本
  • 要在 iOS 上部署,需要 Xcode 12.0 及更高版本、iOS 12 及更高版本以及 InMobi iOS SDK 9.2.1 或更高版本。
  • 要在 Android 上部署,需要 Android 操作系统版本 4.1(API 级别 16)及更高版本,以及 InMobi Android SDK 9.2.1 或更高版本。
SDK 版本

iOS - 10.0.1

Android - 10.0.1

尺寸

iOS - 692 KB(.IPA 文件膨胀)

Android - 375.341 KB(.APK 膨胀)

插件

Unity 软件包,适用于 SDK 10.8.8 或更高版本

将插件添加到您的应用

  1. 在 Unity 编辑器中打开你的项目。
  2. 选择“资产导入包”> “自定义包”,然后搜索InMobiAdsUnityPlugin.unitypackage您下载的文件。

  3. 确保选中所有文件,然后单击“导入”

运行您的项目

  • iOS:
    • 导航至“文件” >“构建设置”,选择 iOS 平台,然后选择“构建”以导出 Xcode 项目和相应的 CocoaPods xcworkspace。
    • 打开导出的 xcworkspace,然后在 Xcode 中导航到“产品运行”来运行您的项目。
  • 安卓:
    • 导航至文件构建设置,选择 Android 平台,然后选择 构建并运行

Unity插件

您可以使用 InMobi Ads 插件中的通用 C# API 来请求横幅广告、插页式广告和激励视频广告。代码只需编写一次,即可部署到 Android 和 iOS 平台。

提供人口统计数据

Class中提供了多个 API,InMobiPlugin可以将人口统计信息传递给 InMobi SDK,这有助于我们更好地进行广告定向。

其中一些如下:

<span class="hljs-comment">//Set Age</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">SetAge</span>(<span class="hljs-params"><span class="hljs-built_in">int</span> age</span>)</span>{
inmobiPluginClient.SetAge (age);
}
<span class="hljs-comment">//Set PostalCode</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">SetPostalCode</span>(<span class="hljs-params"><span class="hljs-built_in">string</span> postalCode</span>)</span>{
inmobiPluginClient.SetPostalCode (postalCode);
}
<span class="hljs-comment">//Set Year of Birth</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">SetYearOfBirth</span>(<span class="hljs-params"><span class="hljs-built_in">int</span> yearOfBirth</span>)</span>{
inmobiPluginClient.SetYearOfBirth (yearOfBirth);
}
<span class="hljs-comment">//Set Gender GENDER_MALE or GENDER_FEMALE</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">SetGender</span>(<span class="hljs-params"><span class="hljs-built_in">string</span> gender</span>)</span>{
inmobiPluginClient.SetGender (gender);
}

正在初始化 InMobi SDK

您可以使用InMobiPlugin此类初始化 InMobi SDK。初始化 InMobi SDK 需要账户 ID。

以下是初始化 InMobi SDK 的示例代码:

<span class="hljs-function"><span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">initializeInMobiAds</span> ()</span> {

<span class="hljs-comment">//Account id used here is test account id   </span>

InMobiPlugin inmobiPlugin = <span class="hljs-keyword">new</span> InMobiPlugin(); 
    
    inmobiPlugin.OnInitializationCompleted += <span class="hljs-keyword">this</span>.HandleInitializationStatus; 
    
    Dictionary<<span class="hljs-built_in">string</span>, <span class="hljs-built_in">object</span>=<span class="hljs-string">""</span>> consentObject = <span class="hljs-keyword">new</span> Dictionary<<span class="hljs-built_in">string</span>, <span class="hljs-built_in">object</span>=<span class="hljs-string">""</span>>(); 

<span class="hljs-meta">#<span class="hljs-keyword">if</span> UNITY_ANDROID </span>

consentObject.Add(InMobiPlugin.IM_GDPR_CONSENT_AVAILABLE, <span class="hljs-literal">true</span>); 

<span class="hljs-meta">#<span class="hljs-keyword">elif</span> (UNITY_5 && UNITY_IOS) || UNITY_IPHONE </span>

    consentObject.Add(InMobiPlugin.IM_GDPR_CONSENT_AVAILABLE, “<span class="hljs-literal">true</span>”); 
<span class="hljs-meta">#<span class="hljs-keyword">endif</span> </span>

    consentObject.Add(InMobiPlugin.IM_GDPR_CONSENT_IAB, <span class="hljs-string">"IAB_STRING"</span>); 
    inmobiPlugin.Init(<span class="hljs-string">"4028cb8b2c3a0b45012c406824e800ba"</span>, consentObject); 
}  
 
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleInitializationStatus</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, SdkInitializationStatusArgs args</span>)</span> { 

Debug.Log(<span class="hljs-string">"SDK Initialization status code : "</span> + args.status.Code + <span class="hljs-string">" and reason : "</span> + 
        args.status.Reason); 
}

在您继续之前,让我们先了解几件事:

什么是 consentObject? - consentObject是一个字典,用于表示发布商向 SDK 提供的所有类型的同意信息。如果您希望通过来自欧洲经济区 (EEA) 的流量获利,则此键是必需的。您可以在此处consentObject阅读更多关于 GDPR 法规的信息

钥匙 类型 推理
GDPR 同意 细绳 授权字符串是一串数字,用于标识广告技术供应商的授权状态。
该字符串必须符合此处所述的 IAB 合同要求。
gdpr_consent_available 字符串(iOS) 对于 iOS,该值应以字符串形式传递:“true”:用户已同意收集和使用数据。“false”:用户未同意收集和使用数据。
除“true”和“false”之外的任何值均无效,并将被视为用户未提供的值。 
可通过字符串常量 IM_GDPR_CONSENT_IAB 访问此键。 
布尔值(Android) 对于 Android 系统,该值应以布尔值形式传递:true 表示用户已同意收集和使用数据;false 表示用户未同意收集和使用数据。
除 true 和 false 之外的任何值均无效,并将被视为用户未提供的值。
此键可通过字符串常量 IM_GDPR_CONSENT_IAB 访问。
GDPR 细绳 请求是否受 GDPR 法规约束(0 = 否,1 = 是),省略表示未知。

笔记

根据《通用数据保护条例》(“GDPR”),在其应用上收集数据的发布商必须具备收集和处理欧洲经济区(“EEA”)用户个人数据的合法依据。请确保在向 InMobi 向欧洲地区发送广告请求之前,已获得用户的适当同意,并按照我们推荐的 SDK 实现方式进行相应说明。如果您未获得欧洲用户的任何同意,请勿传递任何用户的统计信息。

在向 InMobi 发出任何广告请求之前,必须先初始化 InMobi SDK。建议在应用启动时就进行初始化。

年龄限制 API

为了符合《儿童在线隐私保护法》(COPPA) 的规定,您可以指定用户是否为儿童。如果用户在美国未满 13 周岁,或在其他地区未满适用年龄,请设置为 true。


<span class="hljs-comment">// Set age restriction for COPPA compliance</span>
<span class="hljs-comment">// Set to true if the user is a child (under 13 in US)</span>
inMobiPlugin.<span class="hljs-title class_">SetAgeRestriction</span>(<span class="hljs-literal">true</span>);

发布商信号

出版商信号

发布商信号允许您传递上下文数据,以改进广告定位和收益。您可以传递有关用户行为、流量来源和其他属性的信息,从而帮助提升广告效果。

设置发布商信号

创建一个包含信号键值对的字典,然后将其传递给 SDK。此方法必须在 InMobi SDK 成功初始化后调用。请确保在每次广告请求之前调用此函数并更新值。


<span class="hljs-comment">// Create a dictionary with all required signals and corresponding values</span>
<span class="hljs-title class_">Dictionary</span><<span class="hljs-built_in">string</span>, <span class="hljs-built_in">object</span>=<span class="hljs-string">""</span>> publisherSignals = <span class="hljs-keyword">new</span> <span class="hljs-title class_">Dictionary</span><<span class="hljs-built_in">string</span>, <span class="hljs-built_in">object</span>=<span class="hljs-string">""</span>>();

<span class="hljs-comment">// User monetization signals</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"iap"</span>, <span class="hljs-literal">true</span>);              <span class="hljs-comment">// User has made IAP</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"ua_type"</span>, <span class="hljs-string">"paid"</span>);        <span class="hljs-comment">// User is acquired via paid medium</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"iap_type"</span>, <span class="hljs-string">"minnow"</span>);     <span class="hljs-comment">// User has made low purchases</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"iaa_type"</span>, <span class="hljs-string">"whale"</span>);      <span class="hljs-comment">// User has seen high number of ads</span>

<span class="hljs-comment">// Session and impression depth signals</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"s_dep_rew"</span>, <span class="hljs-number">4</span>);           <span class="hljs-comment">// User has seen 4 rewarded ads in current session</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"i_dep_rew"</span>, <span class="hljs-number">10</span>);          <span class="hljs-comment">// User has seen 10 rewarded ads in lifetime</span>

<span class="hljs-comment">// Performance signals</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"ctr_rew"</span>, <span class="hljs-number">9.25</span>);          <span class="hljs-comment">// Historical CTR for user is 9.25%</span>
publisherSignals.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"abp_5_rew"</span>, <span class="hljs-number">0.01720</span>);     <span class="hljs-comment">// Average winning bid price for last 5 rewarded auctions was $0.01720, eCPM is $17.2</span>

<span class="hljs-comment">// Pass the signals to InMobi SDK</span>
inMobiPlugin.<span class="hljs-title class_">PutPublisherSignals</span>(publisherSignals);
<<span class="hljs-regexp">/string,></</span><span class="hljs-built_in">string</span>,>

获取出版商信号

您可以检索当前设置的信号,以验证正在传递哪些数据。


<span class="hljs-comment">// Check what signals are set already</span>
<span class="hljs-title class_">Dictionary</span><<span class="hljs-built_in">string</span>, <span class="hljs-built_in">object</span>=<span class="hljs-string">""</span>> currentSignals = inMobiPlugin.<span class="hljs-title class_">GetPublisherSignals</span>();</<span class="hljs-built_in">string</span>,>

重置发布者信号

必要时清除用户的所有信号数据。


<span class="hljs-comment">// Clear all the signals data for the user</span>
inMobiPlugin<span class="hljs-selector-class">.ResetPublisherSignals</span>();

符合 GDPR 价值观

您必须在每个会话中提供 consentObject。SDK 不会持久化同意信息,它只会将 consentObject 保存在内存中。如果应用重新启动,SDK 将丢失 consentObject。在会话期间,可以按如下方式更新 consentObject:

Dictionary<<span class="hljs-built_in">string</span>, <span class="hljs-built_in">object</span>=<span class="hljs-string">""</span>> consentObject = <span class="hljs-keyword">new</span> Dictionary<<span class="hljs-built_in">string</span>, <span class="hljs-built_in">object</span>=<span class="hljs-string">""</span>>(); 

    <span class="hljs-meta">#<span class="hljs-keyword">if</span> UNITY_ANDROID</span>

        consentObject.Add(InMobiPlugin.IM_GDPR_CONSENT_AVAILABLE, <span class="hljs-literal">true</span>);

    <span class="hljs-meta">#<span class="hljs-keyword">elif</span> (UNITY_5 && UNITY_IOS) || UNITY_IPHONE</span>

        consentObject.Add(InMobiPlugin.IM_GDPR_CONSENT_AVAILABLE, “<span class="hljs-literal">true</span>”); 

    <span class="hljs-meta">#<span class="hljs-keyword">endif</span> </span>

    consentObject.Add(InMobiPlugin.IM_GDPR_CONSENT_IAB, <span class="hljs-string">"IAB_STRING"</span>); 

    inmobiPlugin.UpdateGdprConsentObject(consentObject);

集成横幅广告

以下是创建和加载横幅广告所需的最简代码:

<span class="hljs-keyword">private</span> void RequestBanner ()
{
  <span class="hljs-comment">// These placement Ids are configured to always serve test ads.</span>
  #<span class="hljs-keyword">if</span> UNITY_ANDROID
  string placementId = <span class="hljs-string">"1467162141987"</span>;
  #elif UNITY_IPHONE
  string placementId = <span class="hljs-string">"1464947431995"</span>;
  #endif
  <span class="hljs-comment">// Create a 320x50 banner at the bottom of the screen.</span>
  <span class="hljs-keyword">this</span>.bannerAd = new BannerAd (placementId, <span class="hljs-number">320</span>, <span class="hljs-number">50</span>, (int)InMobiAdPosition.BottomCenter);
  <span class="hljs-comment">// Register for ad events.</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdLoadSucceeded += <span class="hljs-keyword">this</span>.HandleOnAdLoadSucceeded;    <span class="hljs-comment">// Called when ad is loaded successfully</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdLoadFailed += <span class="hljs-keyword">this</span>.HandleAdLoadFailed;            <span class="hljs-comment">// Called when ad fails to load</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdFetchSuccessful += <span class="hljs-keyword">this</span>.HandleAdFetchSuccessful;  <span class="hljs-comment">// Called when ad content is fetched successfully</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdFetchFailed += <span class="hljs-keyword">this</span>.HandleAdFetchFailed;          <span class="hljs-comment">// Called when ad fetch fails</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdImpression += <span class="hljs-keyword">this</span>.HandleAdImpression;            <span class="hljs-comment">// Called when ad impression is recorded</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdDisplayed += <span class="hljs-keyword">this</span>.HandleAdDisplayed;              <span class="hljs-comment">// Called when ad is displayed on screen</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdDismissed += <span class="hljs-keyword">this</span>.HandleAdDismissed;              <span class="hljs-comment">// Called when ad is dismissed</span>
<span class="hljs-keyword">this</span>.bannerAd.OnAdInteraction += <span class="hljs-keyword">this</span>.HandleAdInteraction;          <span class="hljs-comment">// Called when user interacts with ad</span>
<span class="hljs-keyword">this</span>.bannerAd.OnUserLeftApplication += <span class="hljs-keyword">this</span>.HandleUserLeftApplication; <span class="hljs-comment">// Called when user leaves app via ad</span>
<span class="hljs-comment">// Load a banner ad.</span>
  <span class="hljs-keyword">this</span>.bannerAd.LoadAd ();
}

InMobiAdPosition枚举类型指定横幅的放置位置。

笔记

iOS 和 Android 平台都需要一个唯一的广告位 ID。其余 API 在两个平台上保持一致。

添加 SetExtras 方法


<span class="hljs-comment">// Set extras for ad targeting. All values must be passed as string.</span>
<span class="hljs-title class_">Dictionary</span><<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>=<span class="hljs-string">""</span>> extras = <span class="hljs-keyword">new</span> <span class="hljs-title class_">Dictionary</span><<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>=<span class="hljs-string">""</span>>();
extras.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"tp"</span>, <span class="hljs-string">"admob"</span>);           <span class="hljs-comment">// Mediation partner name</span>
extras.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"tp_ver"</span>, <span class="hljs-string">"19.0.0"</span>);      <span class="hljs-comment">// Mediation partner SDK version</span>
<span class="hljs-variable language_">this</span>.<span class="hljs-property">bannerAd</span>.<span class="hljs-title class_">SetExtras</span>(extras);

<<span class="hljs-regexp">/string,></</span><span class="hljs-built_in">string</span>,>

整合插页式广告

请注意,插屏广告和全屏视频广告的集成方式相同。以下是加载插屏广告所需的最简代码:

  <span class="hljs-keyword">private</span> void RequestInterstitial ()
{
  <span class="hljs-comment">// These placement Ids are configured to always serve test ads.</span>
  #<span class="hljs-keyword">if</span> UNITY_ANDROID
  string placementId = <span class="hljs-string">"1469137441636"</span>;
  #elif UNITY_IPHONE
  string placementId = <span class="hljs-string">"1467548435003"</span>;
  #endif
  <span class="hljs-comment">// Create an interstitial.</span>
  <span class="hljs-keyword">this</span>.interstitialAd = new InterstitialAd (placementId);
  <span class="hljs-comment">// Register for ad events.</span>
  <span class="hljs-keyword">this</span>.interstitialAd.OnAdLoadSucceeded += <span class="hljs-keyword">this</span>.HandleOnAdLoadSucceeded;    <span class="hljs-comment">// Called when ad is loaded successfully</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnAdLoadFailed += <span class="hljs-keyword">this</span>.HandleAdLoadFailed;            <span class="hljs-comment">// Called when ad fails to load</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnAdFetchSuccessful += <span class="hljs-keyword">this</span>.HandleAdFetchSuccessful;  <span class="hljs-comment">// Called when ad content is fetched successfully</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnAdFetchFailed += <span class="hljs-keyword">this</span>.HandleAdFetchFailed;          <span class="hljs-comment">// Called when ad fetch fails</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnAdImpression += <span class="hljs-keyword">this</span>.HandleAdImpression;            <span class="hljs-comment">// Called when ad impression is recorded</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnAdDisplayed += <span class="hljs-keyword">this</span>.HandleAdDisplayed;              <span class="hljs-comment">// Called when ad is displayed on screen</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnAdDismissed += <span class="hljs-keyword">this</span>.HandleAdDismissed;              <span class="hljs-comment">// Called when ad is dismissed</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnAdInteraction += <span class="hljs-keyword">this</span>.HandleAdInteraction;          <span class="hljs-comment">// Called when user interacts with ad</span>
<span class="hljs-keyword">this</span>.interstitialAd.OnUserLeftApplication += <span class="hljs-keyword">this</span>.HandleUserLeftApplication; <span class="hljs-comment">// Called when user leaves app via ad</span>
  <span class="hljs-keyword">this</span>.interstitialAd.OnAdDisplayFailed += <span class="hljs-keyword">this</span>.HandleAdDisplayFailed;
  <span class="hljs-keyword">this</span>.interstitialAd.OnAdWillDisplay += <span class="hljs-keyword">this</span>.HandleAdWillDisplay;
  <span class="hljs-comment">// Load an interstitial ad.</span>
  <span class="hljs-keyword">this</span>.interstitialAd.LoadAd ();
}

插页式广告需要明确显示,但在此之前,需要通过调用isReady ()如下所示的函数来检查插页式广告是否已准备就绪:

  <span class="hljs-keyword">if</span> (<span class="hljs-keyword">this</span>.interstitialAd.isReady ()) {
   <span class="hljs-keyword">this</span>.interstitialAd.Show ();
  } <span class="hljs-keyword">else</span> {
   MonoBehaviour.print (<span class="hljs-string">"Interstitial is not ready yet"</span>);
  }

插页式广告的最佳展示位置是关卡末尾或会话末尾。

添加 SetExtras 方法


<span class="hljs-comment">// Set extras for ad targeting. All values must be passed as string.</span>
<span class="hljs-title class_">Dictionary</span><<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>=<span class="hljs-string">""</span>> extras = <span class="hljs-keyword">new</span> <span class="hljs-title class_">Dictionary</span><<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>=<span class="hljs-string">""</span>>();
extras.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"tp"</span>, <span class="hljs-string">"admob"</span>);           <span class="hljs-comment">// Mediation partner name</span>
extras.<span class="hljs-title class_">Add</span>(<span class="hljs-string">"tp_ver"</span>, <span class="hljs-string">"19.0.0"</span>);      <span class="hljs-comment">// Mediation partner SDK version</span>
<span class="hljs-variable language_">this</span>.<span class="hljs-property">interstitialAd</span>.<span class="hljs-title class_">SetExtras</span>(extras);

<<span class="hljs-regexp">/string,></</span><span class="hljs-built_in">string</span>,>

整合激励视频广告

以下是加载激励视频广告的最小代码:

  <span class="hljs-keyword">private</span> void RequestRewardBasedVideo ()
{
  <span class="hljs-comment">// These placement Ids are configured to always serve test ads.</span>
  #<span class="hljs-keyword">if</span> UNITY_ANDROID
  string placementId = <span class="hljs-string">"1453753057988"</span>;
  #elif UNITY_IPHONE
  string placementId = <span class="hljs-string">"1465883204802"</span>;
  #endif
  <span class="hljs-keyword">this</span>.rewardedVideoAd = new RewardedVideoAd (placementId);
  <span class="hljs-comment">// Register for ad events.</span>
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdLoadSucceeded += <span class="hljs-keyword">this</span>.HandleOnAdLoadSucceeded;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdLoadFailed += <span class="hljs-keyword">this</span>.HandleAdLoadFailed;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdFetchSuccessful += <span class="hljs-keyword">this</span>.HandleAdFetchSuccessful;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdFetchFailed += <span class="hljs-keyword">this</span>.HandleAdFetchFailed;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdDisplayed += <span class="hljs-keyword">this</span>.HandleAdDisplayed;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdDismissed += <span class="hljs-keyword">this</span>.HandleAdDismissed;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdImpression += <span class="hljs-keyword">this</span>.HandleAdImpression;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdInteraction += <span class="hljs-keyword">this</span>.HandleAdInteraction;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnUserLeftApplication += <span class="hljs-keyword">this</span>.HandleUserLeftApplication;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdDisplayFailed += <span class="hljs-keyword">this</span>.HandleAdDisplayFailed;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdWillDisplay += <span class="hljs-keyword">this</span>.HandleAdWillDisplay;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.OnAdRewardActionCompleted += <span class="hljs-keyword">this</span>.HandleRewardActionCompleted;
  <span class="hljs-keyword">this</span>.rewardedVideoAd.LoadAd ();
}

激励视频广告的工作方式与插屏广告类似,需要在拨打电话前检查是否准备就绪show ()

  <span class="hljs-function"><span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">ShowRewardBasedVideo</span> ()</span>
{
  <span class="hljs-keyword">if</span> (<span class="hljs-keyword">this</span>.rewardedVideoAd.isReady ()) {
   <span class="hljs-keyword">this</span>.rewardedVideoAd.Show ();
  } <span class="hljs-keyword">else</span> {
   MonoBehaviour.print (<span class="hljs-string">"Rewarded video ad is not ready yet"</span>);
  }
}

事件处理

您可以为横幅广告、插页式广告和激励视频广告设置以下广告事件。

 <span class="hljs-meta">#<span class="hljs-keyword">region</span> callback handlers</span>
   <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleOnAdLoadSucceeded</span>(<span class="hljs-params"><span class="hljs-built_in">object</span> sender, AdLoadSuccessEventArgs args</span>)</span>
{
    MonoBehaviour.print(<span class="hljs-string">"HandleOnAdLoadSucceeded event received"</span>);
    <span class="hljs-comment">// Access ad metadata from the event args</span>
    MonoBehaviour.print(<span class="hljs-string">"Creative ID: "</span> + args.AdMetaInfo.CreativeID);
    MonoBehaviour.print(<span class="hljs-string">"Bid: "</span> + args.AdMetaInfo.Bid);
    MonoBehaviour.print(<span class="hljs-string">"Bid Keyword: "</span> + args.AdMetaInfo.BidKeyword);
}
   <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdLoadFailed</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, AdLoadFailedEventArgs args</span>)</span>
{
  MonoBehaviour.print (<span class="hljs-string">"HandleAdLoadFailed event received with message: "</span> + args.Error);
}
   <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdDisplayed</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, EventArgs args</span>)</span>
{
  MonoBehaviour.print (<span class="hljs-string">"HandleAdDisplayed event received"</span>);
}
  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdDismissed</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, EventArgs args</span>)</span>
{
  MonoBehaviour.print (<span class="hljs-string">"HandleAdDismissed event received"</span>);
}
  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdInteraction</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, AdInteractionEventArgs args</span>)</span>
{
  MonoBehaviour.print (<span class="hljs-string">"HandleAdDismissed event received "</span> + args.Message);
}
  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleUserLeftApplication</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, EventArgs args</span>)</span>
{
  MonoBehaviour.print (<span class="hljs-string">"HandleUserLeftApplication event received"</span>);
}
<span class="hljs-meta">#<span class="hljs-keyword">endregion</span></span>
<span class="hljs-meta">#<span class="hljs-keyword">region</span> Interstitial specific callback handlers</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdReceived</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, EventArgs args</span>)</span>
{
  MonoBehaviour.print (<span class="hljs-string">"HandleAdReceived event received"</span>);
}
  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdWillDisplay</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, EventArgs args</span>)</span>
{
  MonoBehaviour.print (
   <span class="hljs-string">"HandleAdWillDisplay event received with message: "</span>);
}
  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdDisplayFailed</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, EventArgs args</span>)</span>
{
  MonoBehaviour.print (<span class="hljs-string">"HandleAdDisplayFailed event received"</span>);
}
   <span class="hljs-meta">#<span class="hljs-keyword">endregion</span></span>
  <span class="hljs-meta">#<span class="hljs-keyword">region</span> RewardBasedVideo specific callback handlers</span>
   <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleRewardActionCompleted</span> (<span class="hljs-params"><span class="hljs-built_in">object</span> sender, AdRewardActionCompletedEventArgs args</span>)</span>
{
  MonoBehaviour.print (
   <span class="hljs-string">"HandleRewardActionCompleted event received for "</span> + args.Rewards);
}
 
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdFetchSuccessful</span>(<span class="hljs-params"><span class="hljs-built_in">object</span> sender, AdFetchSuccessEventArgs args</span>)</span>
{
    <span class="hljs-comment">// Called when ad content is successfully fetched</span>
    <span class="hljs-comment">// Access ad metadata from the event args</span>
    MonoBehaviour.print(<span class="hljs-string">"HandleAdFetchSuccessful event received"</span>);
    MonoBehaviour.print(<span class="hljs-string">"Creative ID: "</span> + args.AdMetaInfo.CreativeID);
    MonoBehaviour.print(<span class="hljs-string">"Bid: "</span> + args.AdMetaInfo.Bid);
}

<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdFetchFailed</span>(<span class="hljs-params"><span class="hljs-built_in">object</span> sender, AdFetchFailedEventArgs args</span>)</span>
{
    <span class="hljs-comment">// Called when ad fetch fails</span>
    MonoBehaviour.print(<span class="hljs-string">"HandleAdFetchFailed event received"</span>);
    MonoBehaviour.print(<span class="hljs-string">"Error: "</span> + args.Error);
}

<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">HandleAdImpression</span>(<span class="hljs-params"><span class="hljs-built_in">object</span> sender, EventArgs args</span>)</span>
{
    <span class="hljs-comment">// Called when an ad impression is recorded</span>
    MonoBehaviour.print(<span class="hljs-string">"HandleAdImpression event received"</span>);
}

<span class="hljs-meta">#<span class="hljs-keyword">endregion</span></span>

笔记

args.Rewards特指激励视频广告)采用 JSON 字符串格式。

新的 EventArgs 类

班级 特性
广告获取成功事件参数 广告元数据信息
广告获取失败事件参数 错误(字符串)
广告加载成功事件参数 广告元数据信息

广告元数据属性

财产 类型 描述
创意ID 细绳 广告素材的唯一标识符
出价 双倍的 广告出价
竞价信息 JObject 补充投标信息
竞价关键词 细绳 与出价相关的关键词

本页内容

最后更新于 : 21 Jul, 2026