Unity3d 游戏中集成Firebase 统计和Admob广告最新中文教程
之前写过俩相关的教程,最近发现插件官方更新了不少内容,所以也更新一篇Firebase Admob Unity3d插件的教程,希望能帮到大家。
Firebase Admob Unity3d插件是一个Unity用户更方便使用Firebase 统计和Firebase admob广告的插件,接口非常的简洁简单,使用c#,无需另外编写java和oc代码
一、2种方式安装Firebase Admob Unity3d插件
1.直接下载https://github.com/unity-plugins/Firebase-Admob-Unity/ ,然后把Plugins文件夹复制到你Unity3d项目的Plugins目录中
2.下载Firebase Admob Unity3d 插件包admob_unity_plugin.unitypackage,然后通过unity编辑器的菜单Assets -> Import Package -> Custom Package.
导入unitypackage包中的文件
二、修改Unity3d Firebase Admob插件要求的配置信息
把插件导入到项目后有几个地方需要修改
针对unity3d android项目的修改
1.修改Assets\Plugins\Android\AndroidManifest.xml,替换里面的com.google.android.gms.ads.APPLICATION_ID值为你的admob app id值,
这个值在admob后台创建创建admob app后会生成,格式类似于ca-app-pub-3940256099942544~3347511713
配置例子
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/>
这是admob 17开始要求的必须的配置信息,不配置app会奔溃
2.修改\Assets\Plugins\Android\res\values\strings.xml,替换里面的google_app_id的值为你的firebase app id,
这个值在firebase控制台创建app后生成,格式类似于1:263495946164:android:ab988918fd3cee93
配置例子
<string name="google_app_id">1:263495946164:android:ab988918fd3cee93</string>
这是firebase analysis要求的必须配置的内容,不配置无法统计
针对Unity3d IOS项目的修改,如果不修改,将无法正常工作
1.解压Assets\Plugins\iOS\GoogleMobileAds.framework.zip为Assets\Plugins\iOS\GoogleMobileAds.framework
2.修改替换Assets\Plugins\iOS\GoogleService-Info.plist,导出Xcode项目后把GoogleService-Info.plist添加到XCode项目
3.导出XCode项目后修改xcode项目的other link flags,添加 -ObjC 标记
三、Unity3D游戏集成Firebase统计功能
1.UNity3d中集成google firebase统计的基本统计功能
FirebaseAnalytic firebase=FirebaseAnalytic.Instance();//init and start basic analysis
创建firebase统计实例,并开始基础统计功能。基础统计包括启动,活跃,新增,留存等信息。
2.通过Firebase 在Unity3d中统计自定义事件
FirebaseAnalytic.Instance().logEvent("startevent", "{\"player\":\"james\"}");
firebase统计支持自定义事件的统计,从而可以自己统计哪个按钮被点击了之类的事件。第一个参数是事件名称,第二个参数是事件的内容,是一个json对象字符串
3.Firebase 统计更多用户属性
FirebaseAnalytic.Instance().setUserProperty("age", "20");
firebase core还可以统计一些用户属性,第一个参数是属性,第二个参数是属性值。
更多的功能接口可以查看Unity3d firebase plugin 中的FirebaseAnalytic.cs文件
四、Unity使用Firebase 广告功能
AdProperties properties=new AdProperties();
properties.isTesting=true;
//properties.isForChildDirectedTreatment=true;
//properties.isUnderAgeOfConsent=true;
//properties.isAppMuted=true;
//properties.nonPersonalizedAdsOnly=true;
Admob.Instance().initSDK("Your Admob App ID",properties);
Unity使用Firebase Admob广告第一步是初始化SDK,初始化只需要在app启动的时候初始化一次。
初始化sdk包括俩个参数,第一个是admob id,在admob官方网站创建app时会生成,格式类似于ca-app-pub-3940256099942544~1458002511,
第二个参数是对admob进行的一些设置的AdProperties对象,可以进行例如是否是测试模式,是否是针对儿童的应用,是否停用个性化广告,以及视频是否默认静音等等的设置
四、Unity3d集成Firebase横幅广告功能
Admob.Instance().showBannerRelative("Your Admob Banner ID",AdSize.BANNER, AdPosition.BOTTOM_CENTER);
通过相对定位的方式展示广告,第一个参数是横幅广告的广告id,第二个是横幅广告的尺寸,第三个是广告显示的位置,第四个参数是广告的名称,
如果想在同一个Unity app界面上显示多个横幅,可以通过设置第四个参数实现。类似的还有绝对定位展示广告
Admob.Instance().showBannerAbsolute("admob banner id",AdSize.BANNER, 0, 120);
如果想移除横幅广告,则可以通过removeBanner接口实现,如果显示广告的时候设置了名称,则移除时需要输入横幅的名称
Admob.Instance().removeBanner();
五、Unity3d使用Firebase原生广告功能
Admob.Instance().showNativeBannerRelative("Your Admob Native ID",new AdSize(300,300), AdPosition.BOTTOM_CENTER);
显示原生广告有点类似横幅广告,可以通过相对定位和绝对定位的方式展示广告,
第一个参数是原生广告的广告id,第二个是原生广告的尺寸,第三个是广告显示的位置,第四个参数是广告的名称,
如果想在同一个界面上显示多个横幅,可以通过设置第四个参数实现。类似的还有绝对定位展示广告
Admob.Instance().showNativeBannerAbsolute("admob Native id",new AdSize(300,300), 0, 120);
如果想移除原生广告,则可以通过removeNativeBanner接口实现,如果显示admob广告的时候设置了名称,则移除时需要输入名称
Admob.Instance().removeNativeBanner();
六、Unity3d使用Firebase Admob插屏广告功能
Admob.Instance().loadInterstitial("Your Interstitial ID");
firebase admob全屏广告加载展示分2步,第一步是加载广告,加载的时候传入参数;第二步是等加载完后,在合适的时机调用showInterstitial
Admob.Instance().showInterstitial();
全屏广告是每次显示后都需要重新加载广告,展示前最好是都对广告是否已经加载完毕进行检测,所以比较推荐的代码是
if (Admob.Instance().isInterstitialReady())
{
Admob.Instance().showInterstitial();
}
七、Unity使用Firebase视频广告功能
Admob.Instance().loadRewardedVideo("Your Reward Video ID");
通过firebase admob unity3d集成admob 视频奖励广告分2步,第一步是加载广告,加载的时候传入参数广告id;第二步是等加载完后,在合适的时机调用showRewardedVideo
Admob.Instance().showRewardedVideo();
奖励视频广告是每次显示后都需要重新加载广告,展示前最好是都对广告是否已经加载完毕进行检测,所以比较推荐的代码是
if (Admob.Instance().isRewardedVideoReady())
{
Admob.Instance().showRewardedVideo();
}
八、Unity3d处理Firebase Admob广告事件
Firebase Unity3d插件支持广告的各种事件,你可以根据自己的需要进行处理。例如奖励视频广告获得奖励的物品数量,例如在全屏广告加载完毕的时候展示全屏广告
Admob.Instance().bannerEventHandler += onBannerEvent;
Admob.Instance().interstitialEventHandler += onInterstitialEvent;
Admob.Instance().rewardedVideoEventHandler += onRewardedVideoEvent;
Admob.Instance().nativeBannerEventHandler += onNativeBannerEvent;
void onInterstitialEvent(string eventName, string msg)
{
Debug.Log("handler onAdmobEvent---" + eventName + " " + msg);
// you can add display ad code here
}
void onBannerEvent(string eventName, string msg)
{
Debug.Log("handler onAdmobBannerEvent---" + eventName + " " + msg);
}
void onRewardedVideoEvent(string eventName, string msg)
{
Debug.Log("handler onRewardedVideoEvent---" + eventName + " rewarded: " + msg);
}
void onNativeBannerEvent(string eventName, string msg)
{
Debug.Log("handler onAdmobNativeBannerEvent---" + eventName + " " + msg);
}
Firebase Admob Unity3d 插件的功能功能基本讲解完毕,希望大家能更加顺利,更多内容还是要了解admob unity3d插件github链接
---------------------
作者:unityvrgame
来源:CSDN
原文:https://blog.csdn.net/unityvrgame/article/details/84202432
版权声明:本文为博主原创文章,转载请附上博文链接!
Unity3d 游戏中集成Firebase 统计和Admob广告最新中文教程的更多相关文章
- 在APP中集成iAd Banner展示广告盈利
如果你已经做了一款超牛X的APP.你也许还有一件是需要操心.APP够好了,怎么盈利呢?你可以对下载你的APP的用户收费.也可以完全的免费,然后在APP里放广告来实现盈利.现在来说,除非一款APP真的是 ...
- 在unity3d游戏中添加中文语音控制
最近打算尝试一下OLAMI在游戏中应用的可能性,这里做一下记录. unity官方教程中的几个项目很精简,但看起来很不错,里面有全套的资源.最后我选择了tanks-tutorial来做这个实验. 下载和 ...
- Unity3d游戏中自定义贝塞尔曲线编辑器[转]
关于贝塞尔曲线曲线我们再前面的文章提到过<Unity 教程之-在Unity3d中使用贝塞尔曲线>,那么本篇文章我们来深入学习下,并自定义实现贝塞尔曲线编辑器,贝塞尔曲线是最基本的曲线,一般 ...
- NDk编译opencv for Android,并引用在Unity3d游戏中的一般步骤
本文使用:Unity3d + opencv + Android Unity3d中可以调用opencv 编译好的.so 动态库,在生成Android apk时可以正常运行. 因为Android系统是 ...
- Unity3d游戏中添加移动MM支付SDK问题处理
原地址:http://www.tuicool.com/articles/I73QFb 由于移动mm的SDK将部分资源文件放在jar包中,导致Unity无法识别,提示failed to find res ...
- Unity3d 游戏中的实时降噪-对Square Enix文档的研究与实现
看到SE的技术文档关于降噪的决定研究一下,本次试验场景: 文章中提到了3中主要滤波方法,最后一种方法又有三种方式分别为Conventional geometry-aware filtering,Dist ...
- 【Unity与Android】02-在Unity导出的Android工程中接入Google Admob广告
我在上一篇文章 [Unity与Android]01-Unity与Android交互通信的简易实现) 中介绍了Unity与Android通讯的基本方法. 这一篇开始进入应用阶段,这次要介绍的是如何在An ...
- 喵的Unity游戏开发之路 - 推球:游戏中的物理
很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...
- [译]MVC网站教程(四):MVC4网站中集成jqGrid表格插件(系列完结)
目录 1. 介绍 2. 软件环境 3. 在运行示例代码之前(源代码 + 示例登陆帐号) 4. jqGrid和AJAX 5. GridSettings 6. ...
随机推荐
- WHAT is CPU负载?
WHAT?? 1.CPU负载都有哪些? cpu负载的定义:在一般情况下可以将单核心cpu的负载看成是一条单行的桥,数字1代表cpu刚好能够处理过来,即桥上能够顺利通过所有的车辆,桥外没有等待的车辆,桥 ...
- 使用Paramiko的问题
在使用Paramiko远程登录的时候,会报sudo: sorry, you must have a tty to run sudo 切换到root用户,使用visudo命令,然后就会打开一个文本,在文 ...
- 301ReidrectPages中重复记录导致的500 server error
在Umbraco平台开发一个系统时,遇到一个问题,报错500 server error, system is currently unable to handle this request. 按下F1 ...
- Sharepoint商务智能学习笔记之PowerPviot Service安装与配置(七)
1) PowerPviot Service多服务器部署注意事项 PowerPviot Service不是Sharepoint自带的服务,要想使用PowerPviot Service需要先在sharep ...
- request.form()和request()的区别
Request.Form:获取以POST方式提交的数据(接收Form提交来的数据):Request.QueryString:获取地址栏参数(以GET方式提交的数据)Request:包含以上两种方式(优 ...
- InnoDB信息说明
InnoDB是MySQL数据库发展至今一款至关重要的数据库存储引擎,其不仅支持事务特性,并且具有丰富的统计信息,便于数据库管理人员了解最近InnoDB存储引擎的运行状态. 早期版本的InnoDB存储引 ...
- Flask从入门到做出一个博客的大型教程(一)
本项目全部在虚拟环境中运行,因此请参照前面的文章,链接为https://blog.csdn.net/u014793102/article/details/80302975 建立虚拟环境后,再接着完成本 ...
- SAS笔记(8) 利用数组重构SAS数据集
在实际应用中,我们经常会把宽数据(一个患者一条观测)转化为长数据(一个患者多条观测)或者将长数据(一个患者多条观测)转换为宽数据(一个患者一条观测),在R中我们可以利用Reshape2包来实现.在SA ...
- [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题
[Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 2017年07月05日 15:57:44 阅读数:1494 http://www.cpp ...
- go语言web开发框架_Iris框架讲解(六):Session的使用和控制
在实际的项目开发中,我们会经常有业务场景使用到Session功能.在iris框架中,也为我们提供了方便使用,功能齐全的Session模块.Session模块的源码目录为kataras/iris/ses ...