博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS版Unity游戏引擎的集成Admob管理库教程
阅读量:5764 次
发布时间:2019-06-18

本文共 4365 字,大约阅读时间需要 14 分钟。

hot3.png

一:IOS

1:转到“File”(文件)→“Build Settings”(构建设置),依次选择IOS平台和Build(构建)。这将会导出Xcode项目。

 

2:打开导出的 Xcode 项目,并按照IOS快速入门指南中的部分来添加 Google 移动广告 SDK。

 

3:在Xcode中,转到“Product”(产品)→“Run”(运行)以运行您的项目。

现在您已为IOS成功导入该插件!

二:Unity插件API

您可以在Google移动广告插件中使用常用的C#API来请求横幅广告和插页式广告。这段代码只需编写一次即可,然后可以分别部署到IOS设备中。

1:基本的横幅广告请求

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

using GoogleMobileAds.Api;

private void RequestBanner()
{
    #if UNITY_ANDROID
        string adUnitId = "INSERT_ANDROID_BANNER_AD_UNIT_ID_HERE";

    #elif UNITY_IPHONE
        string adUnitId = "INSERT_IOS_BANNER_AD_UNIT_ID_HERE";

    #else

        string adUnitId = "unexpected_platform";

   #endif

// Create a 320x50 banner at the top of the screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();

// Load the banner with the request.
bannerView.LoadAd(request);

}

AdPosition枚举会指定横幅广告的展示位置。

请注意,不同广告单元的使用方式要取决于具体的平台。具体来说,在使用AdMob 时,您需要使用IOS广告单元在IOS设备上发送广告请求。

三:基本的插页式广告请求

以下是加载插页式广告所需的最少代码。

using GoogleMobileAds.Api;

private void RequestInterstitial()
{

#if UNITY_ANDROID

string adUnitId = "INSERT_ANDROID_INTERSTITIAL_AD_UNIT_ID_HERE";

#elif UNITY_IPHONE
string adUnitId = "INSERT_IOS_INTERSTITIAL_AD_UNIT_ID_HERE";

#else
string adUnitId = "unexpected_platform";

#endif
// Initialize an InterstitialAd.
InterstitialAd interstitial = new InterstitialAd(adUnitId);

// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();

// Load the interstitial with the request.
interstitial.LoadAd(request);

}

与横幅广告不同,插页式广告需要显式展示。请在游戏的适当停止点(例如当前关卡结束时)检查插页式广告是否已准备好进行展示。展示插页式广告的一个好时机是在游戏结束时:

private void GameOver()

{
  if (interstitial.IsLoaded()) {
    interstitial.Show();
  }
}

四:自定义广告尺寸

您可以为广告指定一个自定义的尺寸而不使用AdSize常量。

AdSize adSize = new AdSize(250, 250);

BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

1:测试广告

我们建议您在开发过程中请求测试广告,以免产生不当的广告展示。要请求测试广告,请在构建广告请求时将加密的设备 ID 添加到AddTestDevice方法。无论是 Android还是IOS,当您的应用运行并发送有效请求时,此 ID 只能在日志中找到。

以下说明了如何在构建广告请求时加入测试设备。

AdRequest request = new AdRequest.Builder().AddTestDevice(AdRequest.TestDeviceSimulator) // Simulator.

.AddTestDevice("2077ef9a63d2b398840261c8221a0c9b")  // My test iPod  Touch 5.

.Build();

2:广告请求定位

要向广告请求提供额外的定位信息,请在构建请求时设置这些定位参数。此广告请求示例显示了可以使用哪些定位方法。

AdRequest request = new AdRequest.Builder().SetGender(Gender.Male).SetBirthday(new DateTime(1985, 1, 1)).TagForChildDirectedTreatment(true).AddExtra("excl_cat", "cars,sports") // Category exclusions for DFP.

.Build();

3:广告事件

BannerView和InterstitialAd都包含您可以注册的相同广告事件。这些事件是EventHandler类型。以下示例说明如何在横幅广告上设置广告事件:

private void RequestBanner()

{

BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

// Called when an ad request has successfully loaded.
bannerView.AdLoaded += HandleAdLoaded;

// Called when an ad request failed to load.
bannerView.AdFailedToLoad += HandleAdFailedToLoad;

// Called when an ad is clicked.
bannerView.AdOpened += HandleAdOpened;

// Called when the user is about to return to the app after an ad click.
bannerView.AdClosing += HandleAdClosing;

// Called when the user returned from the app after an ad click.
bannerView.AdClosed += HandleAdClosed;

// Called when the ad click caused the user to leave the application.
bannerView.AdLeftApplication += HandleAdLeftApplication;
}
public void HandleAdLoaded(object sender, EventArgs args)
{
    print("HandleAdLoaded event received.");
    // Handle the ad loaded event.
}

AdFailedToLoad事件包含特殊的事件参数。该事件会传递一个AdFailedToLoadEventArgs实例,此实例具有一个说明错误内容的Message。

public void HandleAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)

{
   print("Interstitial Failed to load: " + args.Message);
     // Handle the ad failed to load event.
};

您只需注册自己感兴趣的事件。

五:显示和隐藏横幅广告

默认情况下,横幅广告是可见的。要暂时隐藏横幅广告,请调用:

bannerView.Hide();

 

要重新显示该广告,请调用:

bannerView.Show();

1:清除横幅广告和插页式广告

当完成BannerView或InterstitialAd后,请在放弃对其的引用之前调用Destroy()方法。

bannerView.Destroy();

interstitial.Destroy();

这会通知插件应该将此对象作为垃圾进行收集。不调用此方法将导致内存泄漏。

2:AdMob 中介支持

要使用 Unity 插件执行中介功能,您必须按照中介快速入门指南 (IOS) 中的介绍,为每个第三方广告网络下载并添加SDK和适配器库。以下是针对不同设备的不同操作:

对于IOS,将所需的库添加到 Xcode 项目中,该项目是您为IOS构建项目时由 Unity生成的。

 

Unity 是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发 工具,是一个全面整合的专业游戏引擎。正是以为Unity可以把游戏发布去Android、IOS、WindowsPhone8等等,所以可以利用 Unity集成KeyMob IOS平台。该平台将整合国内外主流移动广告平台,并对广告功能进行统一管理、动态配置,广告主和开发者都可以通过简单的操 作轻松实现对多家广告平台的搭配使用。

 

 

 

 

 

转载于:https://my.oschina.net/u/2505907/blog/534312

你可能感兴趣的文章
基于Android平台的动态生成控件和动态改变控件位置的方法
查看>>
linux 死机分析
查看>>
BOM
查看>>
iOS: Block的循环引用
查看>>
mysql实战02 | 日志系统:一条SQL更新语句是如何执行的?
查看>>
ECC椭圆曲线详解(有具体实例)
查看>>
Linux常见命令(二)
查看>>
PyCharm切换解释器
查看>>
jmp far ptr s所对应的机器码
查看>>
css详解1
查看>>
MySQL类型转换
查看>>
HashSet HashMap 源码阅读笔记
查看>>
变量声明提升1
查看>>
轻量级的Java 开发框架 Spring
查看>>
JS之路——浏览器window对象
查看>>
Chrome教程(二)使用ChromeDevTools命令菜单运行命令
查看>>
数据结构及算法基础--快速排序(Quick Sort)(二)优化问题
查看>>
你对position的了解到底有多少?
查看>>
随笔2013/2/19
查看>>
Windows Phone的Silverlight Toolkit 安装及其使用
查看>>