最近我一直专注于利用Unity3D手机游戏开发,并认为有必要增加一些插件来监控用户操作和货币化。在网上搜索了一段时间后,我决定利用谷歌分析和谷歌Admob。然而,确实需要一些时间将他们整合到Unity3D项目中,因此,列出以下我所做的事情,希望能有所帮助。
将Google AdMob融入到Unity3D项目为iOS
1.注册谷歌Admob(https://apps.admob.com/),并得到发行商ID。
2.下载最新的Admob插件Unity3D开发的网站(github.com/unity-plugins/Unity-Admob)。
3.导入AdMob插件到Unity3D项目。
4.添加C#代码展示广告,记得在代码中修改publisherID。
5.在Unity3D项目中建立一个Xcode项目。
6.按照自述文件中列出的说明才能编译:
(1)添加SDK文件到Xcode项目
(2)在构建设置的其它链接器标记上添加“-ObjC”标记
(3)导入库和框架所需的SDK,包括: AdSupport, AudioToolbox, AVFoundation, CoreGraphics,Coretelephony,MessageUI,StoreKit,SystemConfiguration
7.在你的设备上生成项目并测试你的应用程序。
在完成这些步骤的时候,会出现一些问题
问题1:
构建项目时,链接器输出“库中没有找到-liphone-lib”,并终止了建设进程。
原因:从Admob SDK将文件添加到Xcode时,在构建设置库搜索路径参数不是以正确的的方式修改。
解决方案:
修改库搜索路径参数构建设置,删除\”字符的开头和结束位置,所以它是完全的$(SRCROOT)/Libraries
问题2:
代码调用的方法AdMobPlugin.CreateBannerView和设置参数positionAtTop为false,希望广告横幅将显示在屏幕的底部。失望的是这个参数根本不工作,广告一直显示在顶部。
愿意:
在实现CreateBannerView时候SDK是不完整的,该标记不能正常工作。
解决方案:
在Xcode项目开放AdMobPlugin.mm文件并修改createGADBannerViewWithPubId,方法是这样的:
activity android:name="com.millennialmedia.android.MMActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|keyboard|screenSize" ></activity>
<!-- Keymob -->
<activity android:name="com.keymob.sdk.core.KeymobActivity" android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
现在一切正常工作
不过还有一点要注意,当我们创建一个新的AdBannerView将不会被破坏,这肯定会导致内存不足。
将Google AdMob融入到Unity3D项目为iOS
1.注册谷歌Admob(https://apps.admob.com/),并得到发行商ID。
2.下载最新的Admob插件Unity3D开发的网站(github.com/unity-plugins/Unity-Admob)。
3.导入AdMob插件到Unity3D项目。
4.添加C#代码展示广告,记得在代码中修改publisherID。
5.在Unity3D项目中建立一个Xcode项目。
6.按照自述文件中列出的说明才能编译:
(1)添加SDK文件到Xcode项目
(2)在构建设置的其它链接器标记上添加“-ObjC”标记
(3)导入库和框架所需的SDK,包括: AdSupport, AudioToolbox, AVFoundation, CoreGraphics,Coretelephony,MessageUI,StoreKit,SystemConfiguration
7.在你的设备上生成项目并测试你的应用程序。
在完成这些步骤的时候,会出现一些问题
问题1:
构建项目时,链接器输出“库中没有找到-liphone-lib”,并终止了建设进程。
原因:从Admob SDK将文件添加到Xcode时,在构建设置库搜索路径参数不是以正确的的方式修改。
解决方案:
修改库搜索路径参数构建设置,删除\”字符的开头和结束位置,所以它是完全的$(SRCROOT)/Libraries
问题2:
代码调用的方法AdMobPlugin.CreateBannerView和设置参数positionAtTop为false,希望广告横幅将显示在屏幕的底部。失望的是这个参数根本不工作,广告一直显示在顶部。
愿意:
在实现CreateBannerView时候SDK是不完整的,该标记不能正常工作。
解决方案:
在Xcode项目开放AdMobPlugin.mm文件并修改createGADBannerViewWithPubId,方法是这样的:
activity android:name="com.millennialmedia.android.MMActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|keyboard|screenSize" ></activity>
<!-- Keymob -->
<activity android:name="com.keymob.sdk.core.KeymobActivity" android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
现在一切正常工作
不过还有一点要注意,当我们创建一个新的AdBannerView将不会被破坏,这肯定会导致内存不足。