Admob广告在模拟器或手机上没有显示出来

6

我正在尝试在我的应用中放置Admob广告,我按照所有的指示进行了操作,但是它没有起作用。

AdView adView = new AdView(this, AdSize.BANNER, "My_ID");
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
    flashCardPage.addView(adView, lp);
    adView.loadAd(new AdRequest());

我的清单文件包含活动标记和两个权限,就像教程中一样,但横幅不会显示在屏幕上。有趣的是,当我从清单文件中删除所有的Admob内容并运行应用程序时,底部会出现一个横幅,提示我需要允许Internet和网络状态访问。有人知道我做错了什么吗?我知道这个问题已经有很多相关的问题了,但是没有一个能帮到我。我尝试将我的Admob帐户更改为测试模式,并将模拟器添加为测试项目,但那没起作用。
我应该尝试使用其他广告方法吗?已经过去一个星期了,Admob广告仍然没有显示出来。
今天(8月10日)我在手机上运行应用程序时,出现了强制关闭的情况,所以我认为如果Admob导致这种情况,哪怕只有1%-5%的时间,我也不会使用它。

请检查您的互联网连接。 - Niranj Patel
我现在住的地方连接非常慢。广告显示需要有最低的连接速度吗? - Pat Needham
6个回答

4
可能是AdMob没有广告可供投放,您可以尝试在adView声明后添加这段代码,以查看未能接收广告时的提示。
 // Set AdListener
        adView.setAdListener(new AdListener() {
            @Override
            public void onFailedToReceiveAd(Ad ad, ErrorCode error) {
                System.err.println("Ad failed: " + ad.toString() + error.toString());    
            }

            @Override
            public void onReceiveAd(Ad ad) {
                System.out.println("Ad received: " + ad.toString());
            }
        });

2

你是否已经回到你的Admob账户,为你的特定应用程序注册广告并获取一个新的更长的发布者号码,该号码以'ca-app-pub-'为前缀而不是'pub-'为前缀?

在Google Admob“Google Mobile Ads SDK”开发网站的“横幅广告1”说明中,没有提到必须返回Admob账户执行此操作。

这个愚蠢的错误让我拖延了数天。


那个错误也困扰了我一段时间,感谢您帮助我解决了我遇到的问题。 - mr.j05hua

1

大家也需要打电话,对我来说,这是解决问题的关键,这样其他人也可以得到帮助。

mInterstitialAd.loadAd(new AdRequest.Builder().build());

没有这个,它就无法工作,请确保也调用了这个。

完整的示例代码

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;

public class MainActivity extends Activity {

    private InterstitialAd mInterstitialAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MobileAds.initialize(this,
            "ca-app-pub-3940256099942544~3347511713");
        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
        mInterstitialAd.loadAd(new AdRequest.Builder().build());
    }
}

这对我来说是解决方案。 - Joe

0
这个问题可以通过手动卸载应用程序并重新安装而不进行任何更改来解决!

0

我建议先尝试添加广告XML。同时,请确保您已经设置好通过Admob接收广告。

请参阅定义com.google.ads.AdView

通过Admob登录,进入“网站和应用程序”(在此处您可以查看广告是否真正发送到您的应用程序),向下滚动到您的应用程序。当您将鼠标悬停在应用程序上时,您将看到一个按钮,上面写着“管理设置”。单击它,然后转到应用程序设置。这将帮助您控制广告的显示方式和刷新率等。


0

检查您的日志输出以获取来自Admob的任何调试消息。它应该显示广告何时被请求或未加载。说实话,当我刚开始使用时,我的广告几乎从不显示。最终它们只是开始显示了。没有真正的解释。


我在调试选项卡下查看日志cat输出,但当将其筛选为adview或admob时,没有结果。 - Pat Needham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接