谷歌移动广告Unity插件帮助谷歌移动广告提供了一种方法在Unity项目部署为原生的Android和iOS应用程序。插件功能包括: 

 • 一个包和交叉平台(Android / iOS)支持 

 • 模拟广告调用运行时内部Unity编辑 

 • 支持横幅广告 

 • 支持插播式广告 

 • 自定义横幅尺寸 

 • 横幅广告事件监听器 

 • AdRequest定位方法 

 • 一个示例项目演示插件集成 

 该插件包含乐一个能够轻松导入插件的.unitypackage文件,以及那些想要迭代的源代码。 

 下载地址:https://github.com/ 


 要求 

 •Unity 4.5 

 •一个广告单元ID 

 •部署在Android: 

 •Android的SDK3.2或更高版本 

 •谷歌播放服务器4.0或更高版本 

 • 部署在iOS: 

 •XCode5.1或以上 

 •谷歌移动广告SDK7.0.0或更高版本 


 集成的插件安装到你的游戏 

 1.在Unity编辑器中打开你的项目。 

 2.导航到资源 - >导入包 - >自定义套餐。 

 3.选择GoogleMobileAdsPlugin.unitypackage文件。 

 4.导入的所有的文件插件通过选择导入,确保检查任何冲突文件。 


 Android的设置 

 1.添加google-play-services_lib文件夹,位于 

 ANDROID_SDK_LOCATION/extras/google/google_play_services/libproject,到你的项目插件/Android的文件夹中。 


 2.[为用户运行一个早于5.0版本的Unity]导航到你的项目目录Temp/StagingArea,并复制AndroidManifest.xml到Assets/Plugins/Android. 以下<meta-data>标签添加到AndroidManifest.xml文件: 

 <uses-permission android:name="android.permission.INTERNET"/> 

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 


 ios的设置 

 没有预先建立的设置要求。 


 运行项目 

 如果你正在运行的Hello World示例项目,你应该能够立即运行项目。 

 在Android上构建并运行,单击文件 - >生成设置,选择Android平台,切换平台,然后生成并运行。 

 在ios上构建并运行,单击文件 - >生成设置,选择ios平台,切换平台,然后生成。这将导出一个XCode项目。你需要做到以下几点才可以运行它: 

 1.从Xcode的项目导航器,在项目上单击右键,然后选择文件添加到""。 

 2.浏览并选择GoogleMobileAds.framework。 

 3.设置启用模块(C和objective - C)在构建是的设置。 

 如果这些步骤不起作用,开发文档总是有最先进的最新信息关于如何引用谷歌移动广告的iOS库。 


 谷歌移动广告统一Unity API 

 本指南的其余部分假定你现在正在尝试编写自己的代码来集成谷歌移动广告到游戏中。 


 基本横幅流程 

 下面是创建一个横幅所需的最少的代码。 

 <activity android:name="com.keymob.sdk.core.KeymobActivity"   android:theme="@android:style/Theme.Dialog" 

 android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> 

 activity android:name="com.millennialmedia.android.MMActivity" 

 android:theme="@android:style/Theme.Translucent.NoTitleBar" 

 android:configChanges="keyboardHidden|orientation|keyboard|screenSize" ></activity> 

 AdPosition枚举指定在何处放置横幅。 


 基本插播式流程 

 这里是最小横幅代码来创建一个插播广告。 

 import com.keymob.networks.AdManager; 

 import com.keymob.networks.core.*; 

 import com.keymob.sdk.core.AdTypes; 

 AdManager.getInstance().showRelationBanner(BannerSizeType.BANNER, BannerPositions.BOTTOM_CENTER,0); 

 不像横幅,插播需要明确显示。在你的应用程序适当的停止点,准备展示它之前检查插播广告: 

 keymob.isInterstitialReady(function (isReady) { 

             if (isReady) { 

                alert("Interstitial is load success,you can show it now"); 

             } 

         }); 


 自定义广告尺寸 

 除了常数的广告尺寸,还可以创建自定义尺寸: 

 keymob.isInterstitialReady(function (isReady) { 

             if (isReady) { 

                 keymob.showInterstitial(); 

             } 

         }); 


 横幅放置位置 

 以下常量列出可用的广告位置: 

 AdPosition.Top 

 AdPosition.Bottom 

 AdPosition.TopLeft 

 AdPosition.TopRight 

 AdPosition.BottomLeft 

 AdPosition.BottomRight 


 广告请求定位 

 如果你想提供自定义定位到广告请求,构建请求时添加定位选项。此示例广告请求表明您是否有什么选择目标,你只需要使用有意义的应用程序的选项。 

 function onAdReceive(message) { 

         if(message.adtype==keymob.AdTypes.INTERSTITIAL){ 

             alert(message.adtype + message.adapter+" ,you can show it now"); 

         } 

         //keymob.showInterstitial();//show it when received 

     } 

 document.addEventListener(keymob.AdEvent.ON_LOADED_SUCCESS, onAdReceive, false); 


 测试广告 

 要求测试广告, 构建广告请求时添加你的加密设备ID。这个ID只能在Android和iOS应用程序运行并发出请求时在日志中找到。一旦你得到你的设备ID,将它传递给AddTestDevice。 

 让我们假设我的蹩脚设备ID是0123456789ABCDEF0123456789ABCDEF,我也想在模拟器上测试广告。下面是如何设置的要求: 

 class AdEventListener implements IAdEventListener { 

         @Override 

         public void onLoadedSuccess(int arg0, Object arg1, 

         PlatformAdapter arg2) { 

         Log.d(TAG, arg2+" onLoadedSuccess for type "+arg0 +" withdata "+arg1); 

         if(arg0==AdTypes.INTERSTITIAL) 


 广告活动 

 BannerView和InterstitialAd包含相同的广告活动,您可以注册。这些事件类型的事件,这里我们将演示设置广告活动横幅: 

 @Override 

 public void onLoadedFail(int arg0, Object arg1, PlatformAdapter arg2) { 

 Log.d(TAG, arg2+" onLoadedFail for type "+arg0 +" withdata "+arg1);} 


 @Override 

 public void onAdOpened(int arg0, Object arg1, PlatformAdapter arg2) { 

 Log.d(TAG, arg2+" onAdOpened for type "+arg0 +" withdata "+arg1);} 


 @Override 

 public void onAdClosed(int arg0, Object arg1, PlatformAdapter arg2) { 

 Log.d(TAG, arg2+" onAdClosed for type "+arg0 +" withdata "+arg1);} 

 唯一的事件有特殊事件参数是AdFailedToLoad。它通过AdFailedToLoadEventArgs的事例描述错误信息。 

 public void onOtherEvent(String eventName, int adtype, Object data, 

             PlatformAdapter adapter) { 

             Log.d(TAG, adapter+" onLoadedSuccess for type"+adtype +" withEvent "+eventName); 

         } 

 你只需要注册为你所关心的事件。 


 横幅生命周期 

 默认情况下,横幅是可见的。暂时隐藏一个横幅: 

 bannerView.Hide(); 

 再次显示: 

 bannerView.Show(); 

 当你完成了一条横幅,请确保你的下降参照之前摧毁它: 

 bannerView.Destroy(); 

 这让插件知道你不再需要的对象,并能代表你做任何必要的清理。 


 插播广告生命周期 

 类似的横幅,插播也有破坏方法: 

 interstitial.Destroy(); 

 重要的是要明确破坏范围的插播之前让它出去,这样就可以将正确发布插件。