Unity3d 集成Firebase 统计和Admob广告最新中文教程

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\":\"haaa\"}");

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 插件的功能功能基本讲解完毕,希望大家能更加顺利

附效果图


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • www.youtube.com/watch 盛晓玫有一天 盛晓玫 - 有一天_土豆_高清视频在线观看 有一天你若真...
    惠忠阅读 409评论 0 0
  • 北大杨众筹语:中国式众筹和google异曲同工:google当年是因为设计了一套算法通过一个网页的链接来评估一个网...
    吴桂斌阅读 296评论 0 0
  • 昨天下午儿子放学出来就高兴地告诉我,他拿到免作业的卡了,今天数学课本上的题可以不做。看孩子高兴的样子我也没说...
    陈俊宇妈妈阅读 236评论 0 0