Admob广告未显示

时间:2011-08-08 04:17:15

标签: android admob

我正在尝试在Android中实施Admob,并且我看到请求进入AdMob。但是,我没有看到Admob广告在模拟器和Android测试手机的Android屏幕上显示。

如前所述,我可以看到请求进入我的AdMob帐户。但是,内容未显示。是否需要在我的帐户,main.xml,AndroidManifest.xml或应用程序的加载中启用某些功能?

我的应用程序配置和代码如下。请告知我们需要什么。谢谢!

AndroidManifest:

          <meta-data 
            android:value="My Publisher ID"
            android:name="ADMOB_PUBLISHER_ID" />
        <activity android:name="com.admob.android.ads.AdMobActivity"/>
        <receiver 
            android:name="com.admob.android.ads.analytics.InstallReceiver"
            android:exported="true">
         <intent-filter>
         <action android:name="com.android.vending.INSTALL_REFERRER"/>
         </intent-filter>
         </receiver>
         <meta-data 
             android:value="true" 
             android:name="ADMOB_ALLOW_LOCATION_FOR_ADS"/>

主:

 <com.google.ads.AdView
    android:id="@+id/adView"
   android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="My Publisher ID"
    ads:loadAdOnCreate="true"/>

在创建代码:

        AdView adView = (AdView)this.findViewById(R.id.adView);
        AdRequest re = new AdRequest();
        re.setTesting(true);
        adView.loadAd(re);

任何帮助表示赞赏!!

14 个答案:

答案 0 :(得分:11)

确保嵌入AdView的布局不会在AdView上施加任何填充。 AdView的尺寸必须精确到320x50。如果没有足够的空间,它就不会出现。

同时检查设备的日志输出。在Eclipse中切换到DDMS透视图,选择您的设备并观察LogCat输出。

答案 1 :(得分:8)

我有类似的问题。如果您的父布局上有任何填充,那么您可能没有足够的广告宽度。如果您在纵向视图中使用它,请尝试切换到横向视图以查看它是否显示。如果确实如此,那么您的布局中某处可能会出现宽度问题。

答案 2 :(得分:5)

广告通常需要一段时间才能通过admob展示。如果您刚刚在admob上注册并启动了第一个应用程序,就会发生这种情况。如果上面给出的建议得到了解,如果您的浏览页面显示“绿色”状态,我不会太担心它。一旦您的填充率增加,您就会开始看到越来越多的广告。

答案 3 :(得分:4)

确保您的Admob布局在xml视图中显示。将您的admob视图放在RelativeLayout中并尝试使用android:alignparentBottom:true

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
     <RelativeLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

<!--Do our code that you want to show in xml -->

<!--Put adview in bottom of screen -->
        <com.google.ads.AdView
                android:id="@+id/adView"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                ads:adSize="BANNER"
                android:layout_alignParentBottom="true"
                ads:adUnitId="@string/addmob_id"
                ads:loadAdOnCreate="true"
                ads:testDevices="HT9CWP803129" />
    </RelativeLayout>
    </LinearLayout>

在您的java代码中,将这些行放在onCreate方法

// Load addvertisment
        AdView adView = (AdView) findViewById(R.id.adView);
        // Request for Ads
        AdRequest adRequest = new AdRequest.Builder().addTestDevice("FF9CD441FA62FD456D7D571B91DD11DD").build();

        adView.loadAd(adRequest);

这在我的代码中有用,希望它也能帮到你。

答案 4 :(得分:3)

小心id,有两个代码:编辑号(如:pub-xxxxxxxxxxxxxxxx),另一个是横幅ID(如下:ca-app-pub-xxxxxxxxxxxxxxxx / xxxxxxxxxx)

你需要使用最后一个,如果你使用第一个不工作:)

答案 5 :(得分:3)

您正在使用 广告:adUnitId =&#34;我的发布商ID&#34; 用它替换它 广告:adUnitId =&#34;此处为此应用的AdUnitId&#34; 注意:您必须在Admob上创建应用,您将获得该创建应用的AdUnitId。您不必使用发布商ID。

答案 6 :(得分:3)

根据您发布的内容,我发现您的代码中存在两个问题:-

  1. <metadata>部分应包含ADMOB_APP_ID而不是您的 发布者ID。应该在<application>标签下声明 ApplicationManifest.xml。

    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="[ADMOB_APP_ID]"/>
    

    您可以在ADMOB仪表板上找到ADMOB_APP_ID,单击该应用程序
    并检查“应用设置”。您可以看到以APP_ID开头的
    通常与 ca-app-pub-0123456789012345 一起使用。

  2. 第二个问题是,您在布局中声明了AdView。 请记住,您必须提供广告单元而不是您的PublisherID, 您可以通过点击广告单元标签在ADMOB仪表板中创建
    根据您的申请。在您的广告上放置正确的“广告单元” AdView如下。

    ads:adUnitId="ca-app-pub-3940256099942544/6300978111" <!-- remember this is adUnit not App ID and this value above is for test banner Ad. -->
    

解决了上述问题后,请执行以下操作:-

MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");在第一个Activity的onCreate中。只需执行一次,因此正确的位置是您的第一个活动或在应用程序的onCreate回调中。

在活动onCreate中找到AdView,您已将AdView包含在布局中。

mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

测试广告通过提供由Google发布的测试广告单元来工作。

mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");

此外,如果要处理广告事件,请执行以下操作:-

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    @Override
    public void onAdLeftApplication() {
        // Code to be executed when the user has left the app.
    }

    @Override
    public void onAdClosed() {
        // Code to be executed when when the user is about to return
        // to the app after tapping on an ad.
    }
});

答案 7 :(得分:2)

其中一些可能的解决方案可能听起来很明显,但请确保完成这些:

-replace“我的发布商ID”在android:value =“我的发布商ID”中包含您的实际发布商ID。

- 确保在清单文件中包含互联网权限:

 <uses-permission android:name="android.permission.INTERNET" />  

如果您已完成这些操作,您还可以尝试将以下代码放在“正在创建”部分而不是当前代码中:

   AdView adView = (AdView)this.findViewById(R.id.adView);
   AdRequest adRequest = new AdRequest();
   adRequest.setTesting(true);
   adView.loadAd(adRequest);
   adView.loadAd(new AdRequest());

    AdManager.setTestDevices( new String[] {AdManager.TEST_EMULATOR});

    AdView adView = (AdView)findViewById(R.id.adView);
    adView.requestFreshAd();

在发布之前,请不要忘记确保摆脱setTestDevice!

答案 8 :(得分:2)

确保您的admob发布商ID正确无误。它发生在我身上一次,我无法找出错误大约15天。

在Admob中,您提交的每个应用都会获得不同的发布商ID。它对于每个应用程序是唯一的,而不是每个用户。

答案 9 :(得分:2)

空间可能存在问题,您需要确保空间可用于展示广告。如果在父布局上有填充,则可能会减少可用空间。根据{{​​3}},如果没有广告可以显示,则不会显示广告。

&#34; SDK将请求实例化请求AdView的任何大小。如果设备的屏幕上没有足够的空间来显示广告,则不会显示任何内容。&#34;

所以我的建议是确保父布局上没有填充,并实际为这样的横幅广告指定高度和宽度

<com.google.ads.AdView
    android:id="@+id/adView"
    android:layout_alignParentBottom="true"
    android:layout_width="@dimen/banner_width"
    android:layout_height="@dimen/banner_height"
    ads:adSize="BANNER"
    ads:adUnitId="My Publisher ID"
    ads:loadAdOnCreate="true"/>

将dimension.xml中的相应尺寸存储在values文件夹中。

答案 10 :(得分:1)

转到 admob.com 上的应用设置,并确保使用广告的位置数据已关闭(如果您的应用未启用)基于位置的应用。

使用广告的位置数据用于根据位置过滤广告,并且仅在已授予位置权限的应用上起作用。如果应用未使用位置权限,则广告将不会展示。

答案 11 :(得分:0)

这是因为管理员库存需要生成一些请求,以检查该应用程序是否可以赚钱!

请正确设置广告并发布应用,大约一千次请求后,广告会自动显示!

我也遇到了这个问题,并在发布自己的应用程序时得到了答案!

答案 12 :(得分:0)

如果admob“应用ID”和“单元ID”正确,则在Google Play商店上载它将显示添加内容。 我遇到了相同类型的问题,但是在Google上播放后,它会自动解决。

答案 13 :(得分:0)

通过很少的请求就可以显示我的广告,这是我执行的以下步骤

  1. 获取更多请求您是说400个展示广告,但没有广告会在同一应用中制作另一个广告单元,它会开始显示我也使用了此方法,并且广告开始了在我以前的广告单元中,它有很多请求,但没有imp,然后我制作了另一个单元,开始展示广告

  2. 我的帐户需要耐心等待4天才能展示广告,并且我的帐户在1个小时内就获得了Google的批准,因此在服务器上建立广告资源需要大量时间,因此请耐心等待您的广告展示

  3. 在admob投诉中向Google投诉,他们将检查您的应用,并且该应用被批准的机会为50-50%