Unity Admob 打包Android&Ios要点记录

前言

此文章使用的版本为,Unity5.6.7f1、网络上有特殊需求,请自行解决

参考的主要网址来源于:https://developers.google.com/admob/unity/start

主要步骤为

后台申请广告 -> 环境部署&相关下载 -> Unity导入SDK并部署 -> 测试打包 -> 提取设备ID并填写 -> 无部署打包

最终目标即是最后一步,用以践行从Unity打包之后应该注意防止重复的操作,从而来节约宝贵的生命。

申请广告

去Admob申请开发者,创建应用 -> 创建需要展示的广告位。

此时需要使用到的有appid和广告位的id.

本地环境的部署

这里的环境指的是除基本的环境之外,还需要下载安装的东西

  1. Unity的Android&Ios打包环境下载(此处最好都下载,因为随后sdk导入后,会有代码依赖,没有下载此在项目中报错)
  2. Ios环境之下,安装 CocoaPods 。安装命令为 sudo gem install cocoapods,如有疑问,点击这里
  3. 下载Admob的Unity插件:跳转网址

Unity导入及相关操作

导入下载的Unity插件在你的项目中。如无意外,Android的配置Google服务会自动下载,手动的位置在这里Assets > Play Services Resolver > Android Resolver > Resolve

Android 配置

Assets/Plugins/Android/GoogleMobileAdsPlugin 目录下的 AndroidManifest.xml 文件中。您可以在 AdMob 界面中找到应用 ID。对于 android:value,请插入您自己的 AdMob 应用 ID,并加上英文引号,将 [ADMOB_APP_ID] 改为你的Android应用ID

 

IOS 配置

Assets/GoogleMobileAds/Editor 目录下的 PlistProcessor.cs 文件中,将ADMOB_APPLICATION_ID改为你的ios应用ID

2020-05-25 补充:由于使用了CocoaPods进行项目的维护,开始觉得下载拉取慢,于是网上找教程搜到了清华镜像一类的解决方案,经过测试,我成功的浪费了两天时间,这其中包括了:

删除原来的git库(cocoapods) -》 使用国内的重新git clone -》在我的项目中 pod install -> 报错,查找解决方案,最终无果 -> 删除cocoapods(包括相关的库,全删,删干净) -> 重新拉取github的原始的cocoapods(这之间有去设置git 下载速度慢以及相关设置,实测Git下载速度最终能达到100kb/s)-> 安装与设置cocoapods -> 在我的项目中 pod install -> 成功!

通用广告脚本

2020-05-25补充:

升级SDK v5.1.0,Unity IOS 编辑器上实例化报错,搜索相关问题之后,Google的回答是在真机上不没有问题;我对此的评价是:不负责的回答,预编译可以用,工作量小,能模拟虚拟环境,以至项目能够继续开发。

新版本SDK,支持了实时回调:即不用管Android是否在主线程上,在广告成功的回调中直接调用游戏的代码即可。

我在此提供一个广告通用的脚本,有需要的可以直接拿去使用:(新版本使用RewardedAd 类 替换 RewardBasedVideoAd类)

这是一个通用模块,首先:你还需要做以下事情 :

  1. 你需要在替换你的Android&Ios的广告相关的id。
  2. 在你的场景中新建游戏对象,并且挂上这个脚本,在检视板里勾上isTestModel。

中介的使用

Google Admob 广告中介,核心的解决广告填充不到位的问题,相当于广告联盟,区别于广告联盟的地方是你需要单独去第3方网站注册与在前端建立一广告、应用,提取广告帐户Key和广告的Key填入中介中。

https://developers.google.com/admob/unity/mediation 广告中介Doc位置,点击单个的广告会弹出相应的教程

Unity Ads 加入中介时遇到的问题

Unity后台找半天找不到Api Key,请参考这个网址:https://support.unity3d.com/hc/en-us/articles/115000564946-How-do-I-find-my-Unity-Ads-API-key-

Applovin 加入中介

尼玛,还得打个包前台才显示应用创建页面。

最后之前

Android打包可以直接Build。

Ios打包步骤这里需要强调一下:

  1. Unity里面Build Setting里,请填好你的Team ID,以免每次都在XCode里面修改。
  2. Unity > Build
  3. 导出工程所在地,请注意,直接打开xcworkspace,直接打开xcworkspace,直接打开xcworkspace,然后Build到真机即可
  4. Android和IOS都是在Log里面,提取设备ID,重新填入到代码,然后重加包

Android & IOS的Log类似如下

将Log里面的ID添加到代码里面的 test_deviceId 里,然后重新打包,并测试你的广告。

最后

上面提供的脚本中,你仍然需要做的几件事:

  1. 你需要在TODO的界面加入你自身应用的逻辑。
  2. 在你的场景需要的地方,调用这个脚本提供的广告显示与隐藏的相关代码。
  3. 上线之前isTestModel属性设置为false.

祝君好运!