1. 程式人生 > >Unity3d 遊戲中整合Firebase 統計和Admob廣告最新中文教程

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

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 外掛的功能功能基本講解完畢,希望大家能更加順利