无法显示AdMob横幅,收到错误HTTP响应代码:400等

时间:2015-03-23 10:58:59

标签: android admob

无论我做什么,我无法显示Admob的横幅,我在两个Android不同的设备上测试过,这就是我得到的:

第一台设备:

I/Ads     ( 8161): Starting ad request.
I/Ads     ( 8161): Please set theme of AdActivity to @android:style/Theme.Translucent to enable transparent background interstitial ad.
I/Ads     ( 1006): CsiReporterFactory: CSI is not enabled. No CSI reporter created.
W/Ads     ( 1006): JS: The page at about:blank displayed insecure content from gmsg://mobileads.google.com/loadAdURL?drt_include=0&request_id=............
W/Ads     ( 1006):  (null:1)
W/Web Console( 1006): The page at about:blank displayed insecure content from gmsg://mobileads.google.com/loadAdURL?drt_include=0&request_id=............
W/Ads     ( 1006): JS: The page at about:blank displayed insecure content from gmsg://mobileads.google.com/loadAdURL?drt_include=0&request_id=............
W/Ads     ( 1006):  (null:1)
W/Web Console( 1006): The page at about:blank displayed insecure content from gmsg://mobileads.google.com/loadAdURL?drt_include=0&request_id=............
W/Ads     ( 1006): JS: The page at https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/sdk-core-v40.html displayed insecure content from file:///android_asset/webkit/android-weberror.png.
W/Ads     ( 1006):  (null:1)
W/Ads     ( 1006): Received error HTTP response code: 400
W/Ads     ( 8161): There was a problem getting an ad response. ErrorCode: 0
W/Ads     ( 8161): Failed to load ad: 0

注意:这里既没有onAdLoaded()也没有onAdFailedToLoad()被调用

第二台设备:

I/Ads     ( 1165): CsiReporterFactory: CSI is not enabled. No CSI reporter created.
I/Ads     ( 1165): Starting ad request.
I/Ads     ( 1165): Use AdRequest.Builder.addTestDevice("XXXXXXXXXXXXXXXXXXXXXXXXXX") to get test ads on this device.     
I/Ads     ( 1165): CsiReporterFactory: CSI is not enabled. No CSI reporter created.
W/Ads     ( 1165): There was a problem getting an ad response. ErrorCode: 2
I/Ads     ( 1165): Scheduling ad refresh 60000 milliseconds from now.
W/Ads     ( 1165): Failed to load ad: 2

我的代码:

protected void onCreate( Bundle icicle )
{
 super.onCreate( icicle );

m_glView = initOpenGLView( ); 

 m_adMobView = new AdView( this );
 m_adMobView.setAdSize( AdSize.SMART_BANNER );
 m_adMobView.setAdUnitId( "XXXXXXXXXXXXXXXXXX" );      <----I just replaced the ID with XXX for this example
 m_adMobView.setAdListener( new AdListener( )
  {
   public void onAdLoaded( ) 
   { 
    egNative.LogMessage( "ADMob::onAdLoaded" );
   };
   public void onAdFailedToLoad( )
   {
    egNative.LogMessage( "ADMob::onAdFailedToLoad" );
   }
  }  );

 FrameLayout layout = new FrameLayout( getApplicationContext( ) );
 layout.addView( m_glView );

 int gravity = android.view.Gravity.CENTER_HORIZONTAL | android.view.Gravity.TOP;
 FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.WRAP_CONTENT , 
            FrameLayout.LayoutParams.WRAP_CONTENT ,  gravity );
  layout.addView( m_adMobView , params );
setContentView( layout );
}

@Override protected void onStart( )
 {
  super.onStart( );
  AdRequest.Builder ad_builder = new AdRequest.Builder( );
  m_adMobView.loadAd( ad_builder.build( ) );
 }

我正在运行最新版本的Google Play服务。还要仔细检查广告单元ID,它们很好。测试广告单元ID也没有获得任何正面结果。 你们最终可以发布任何提示吗? 提前谢谢。

4 个答案:

答案 0 :(得分:3)

  1. 确保您已将最新的 google-services.json 从firebase控制台复制到项目根目录。
  2. 对于原生广告, DON&#39; T 只需复制Native Ads Express guide中给出的示例代码。分析所有设备支持屏幕中可用的广告空间。例如,如果您的广告空间实际上只有300 dp可用,那么您不应在 adSize 属性中请求超过300dp的广告尺寸。 native ad sizes
  3. 检查您设备的可用广告空间(同时检查填充和边距),然后比较上面的广告尺寸表,并选择合适的套房值。例如,如果您的设备的宽度为300dp,则将adSize值更改为 300x150 以获取广告,并调整这些值以获得更好的广告展示。
  4. 如果您的广告空间属于中等类别,则在admob中创建一个正确的广告单元。您可以使用代码中分配的空间在admob预览窗格中查看广告演示文稿。
  5. 如果您在Admob中新创建了AdUnit ID,则admob服务器需要一段时间来审核&amp;批准您的原生广告模板。所以等一段时间再试一次(约1-2小时)。同时确保您的代码符合以上所有4点。

答案 1 :(得分:2)

Google AdMob阻止了您的套餐。 如果您收到这样的电子邮件:

  

您好,

     

此电子邮件旨在提醒您某个应用程序不是   目前符合我们的AdMob计划政策并作为   结果,广告投放已被停用到您的应用程序。

     

问题编号:33943 ***

     

广告投放已停用: APPNAME   (com.example.pack)

     

需要采取的措施:检查您的所有其他应用程序   考虑合规。

     

当前帐户状态:有效

     

违规说明

     

GOOGLE PLAY REMOVAL:AdMob发布商不得滥用或   宣传滥用任何Google产品,例如Google Play,YouTube,   或者Blogger。这包括规避或提供手段   规避这些或其他Google产品的政策或条款,   例如,允许用户下载YouTube视频。

     

如果您的应用已被Google Play政策强制删除,请   在此处与Google Play联系以了解应用删除情况如果谷歌播放   恢复您的应用,请向我们的团队提出申诉。

     

需要采取的措施:检查帐户是否合规

     

虽然广告投放已停用于上述应用,但您的AdMob已停用   帐户仍然有效。我们建议您花点时间进行审核   其余的应用程序,以确保它们符合要求   根据我们的政策,并相应地监控您的应用程序,以减少   我们未来政策电子邮件的可能性。另外,请注意   如果我们,我们的团队保留随时禁用帐户的权利   继续看到违规行为。

     

上诉

     

如果您希望对此禁用提出申诉,则可以使用我们的申请   申诉表格。

     

感谢您的合作。

     

此致

     

Google AdMob小组

所以现在你需要更改你的应用程序包。在eclipse上,它是AndroidManifest.xml文件中的package="com.example"

在buildStudio.gradle文件

中的AndroidStudio applicationId "com.example"

答案 2 :(得分:0)

卸载谷歌播放服务更新,它开始工作。

答案 3 :(得分:0)

我从Google Play服务广告切换到Firebase广告并在重新启动Android Studio后为我清理项目。