天天看點

【Unity】Google Play接入廣告的注意事項

官網文檔(前提:注冊GoogleAdMob賬号、確定能連海外網絡)

https://developers.google.com/admob/unity/start?hl=zh-CN

1、一定要按照文檔流程走,一步都不能少!特别是類似

【Unity】Google Play接入廣告的注意事項

2、SDK初始化方法差別:

...
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        //使用中介廣告的初始化方式,無需指定APPID
        MobileAds.Initialize(initStatus => { }); 
        //非中介廣告的初始化形式,以下id是2019年11月9日官網提供的橫幅Banner廣告測試ID(示例ID)
      /*#if UNITY_ANDROID
            string appId = "ca-app-pub-3940256099942544~3347511713";
        #elif UNITY_IPHONE
            string appId = "ca-app-pub-3940256099942544~1458002511";
        #else
            string appId = "unexpected_platform";
        #endif */
        //MobileAds.Initialize(appId);
    }
}
           

3、以橫幅廣告為例:請求、打開、關閉

//橫幅對象
GoogleMobileAds.Api.BannerView bannerView;

//橫幅請求
public void SendRequest()
{
//adUnitId是官網提供的測試廣告ID
// Create a 320x50 banner at the top of the screen.
bannerView = new GoogleMobileAds.Api.BannerView(adUnitId, GoogleMobileAds.Api.AdSize.Banner, GoogleMobileAds.Api.AdPosition.Top);

       
 // Create an empty ad request.
//GoogleMobileAds.Api.AdRequest request = new GoogleMobileAds.Api.AdRequest.Builder().AddTestDevice("D2274BD43A961E608AB96AF29D9E6239").Build();
//上面的初始化方式是加了測試裝置ID的,D2274BD43A961E608AB96AF29D9E6239是測試裝置ID,
//使用它能讓你在沒有通過稽核時就能使用正式廣告ID測試,裝置測試ID是通過在AS模拟器上進行測試橫幅廣告
//(此時廣告ID用的還是官網提供的測試廣告ID)在logcat上的列印輸出得到的。具體在官網文檔說明。

    //請求建構(不加裝置測試ID的建構方式)
    GoogleMobileAds.Api.AdRequest request = new GoogleMobileAds.Api.AdRequest.Builder().Build();//在模拟器上,廣告ID不需要測試ID【測試廣告ID使用官方提供的】

    //發起請求
    bannerView.LoadAd(request);
}

//顯示橫幅
public void Show(){
    bannerView.Show();
}

//隐藏橫幅
public void Hide(){
    bannerView.Hide();
}
           

2022年10月9日更新補充說明:測試廣告ID官方會提供,下面連結文檔裡就會有說明,例如:

【Unity】Google Play接入廣告的注意事項

注意:裝置測試ID擷取方法https://developers.google.com/admob/unity/test-ads?hl=zh-CN#enable_test_devices

簡單來說,在SDK初始化處指定了你的APPID(即步驟2的非中介方式初始化)後,進行使用步驟3的測試代碼(必須要用官網提供的橫幅廣告測試ID,以及不需要指定裝置測試ID的請求建構方式)進行廣告請求步驟,最後調用廣告Show方法顯示出廣告.

2022年10月9日更新:已經不需要顯式指定APPID初始化。

【Unity】Google Play接入廣告的注意事項

觀察發現,橫幅廣告上會有一個标簽"Test Ad"/"測試廣告"表示你目前是測試模式,此時Google Admob背景是不會進行記錄此廣告的請求報告單的!

隻有在Google Admob應用關聯Google Play應用後,使用正式廣告ID才會有廣告請求報告單在Google Admob背景上。

極其重要,測試正式廣告時安卓手機必須要有Google Play Service 即谷歌服務,不然會報錯!
【Unity】Google Play接入廣告的注意事項

這個時候我們就能在Android Studio的logcat視窗:

【Unity】Google Play接入廣告的注意事項

11-09 19:17:38.289 9168-9168/com.Milk.GoogleAdmobSdk I/Ads: Use AdRequest.Builder.addTestDevice("D2274BD43A961E608AB96AF29D9E6239") to get test ads on this device.

其中,D2274BD43A961E608AB96AF29D9E6239就是裝置測試ID!

注意:你要準備好一條資料線和安卓手機進行連接配接到Android Studio進行測試,才能拿到裝置測試ID,不然是無法查找到的

其他報錯問題記錄:

  1、 java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener

     解決方法:等待Resolve視窗執行下載下傳com.google.android相關的封包件即可

【Unity】Google Play接入廣告的注意事項
(這個就是Resolve視窗)

打開方式:

【Unity】Google Play接入廣告的注意事項

這個東西必須要連VPN去下載下傳的,其實上面所有操作都必須在能連海外網絡前提下進行,不然可能是有很多檔案無法下載下傳完整,導緻的問題

2022年1月13日補充說明:

【Unity】Google Play接入廣告的注意事項

必須要持有這個AndroidManifest

【Unity】Google Play接入廣告的注意事項

 這裡填寫的廣告ID是你建立的廣告ID 而不是測試的。

2022年10月9日更新:填寫的是廣告APPID

【Unity】Google Play接入廣告的注意事項
【Unity】Google Play接入廣告的注意事項

同理這裡也是你建立的廣告ID。

2022年10月9日更新:這2個也是填寫廣告APPID

添加測試廣告ID代碼案例,在初始化ads之前進行。

List<string> deviceIds = new List<string>();
deviceIds.Add("85******************************67"); //測試裝置ID
RequestConfiguration requestConfiguration = new RequestConfiguration
                .Builder()
                .SetTestDeviceIds(deviceIds)//添加測試ID,正式包需去除
                .build();
//将 requestConfiguration 設定為 MobileAds(全局)。
MobileAds.SetRequestConfiguration(requestConfiguration);

//初始化
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(initStatus => { });
           

85******************************67:測試裝置ID,它在Debug模式打包出去的apk裡執行請求廣告就會列印出來,在上面已經說到。

測試廣告必須在debug模式下打包測試,release調試模式是無法正常測試的。

繼續閱讀