【Unity】Google Play接入广告的注意事项

官网文档(前提:注册GoogleAdMob账号、确保能连海外网络)

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

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

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官方会提供,下面链接文档里就会有说明,例如:

注意:设备测试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初始化。

观察发现,横幅广告上会有一个标签"Test Ad"/"测试广告"表示你目前是测试模式,此时Google Admob后台是不会进行记录此广告的请求报告单的!

只有在Google Admob应用关联Google Play应用后,使用正式广告ID才会有广告请求报告单在Google Admob后台上。

极其重要,测试正式广告时安卓手机必须要有Google Play Service 即谷歌服务,不然会报错!

这个时候我们就能在Android Studio的logcat窗口:

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相关的包文件即可

(这个就是Resolve窗口)

打开方式:

这个东西必须要连VPN去下载的,其实上面所有操作都必须在能连海外网络前提下进行,不然可能是有很多文件无法下载完整,导致的问题

2022年1月13日补充说明:

必须要持有这个AndroidManifest

 这里填写的广告ID是你创建的广告ID 而不是测试的。
2022年10月9日更新:填写的是广告APPID

同理这里也是你创建的广告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调试模式是无法正常测试的。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值