AdMob横幅广告未显示

时间:2015-09-25 17:19:58

标签: android admob ads

我在我的应用程序中使用admob,它运行正常但突然停止显示广告。 贝娄是我用过的代码:

mainActivity.xml:

<com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
    </com.google.android.gms.ads.AdView>

MainActivity.java

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

        AdRequest adRequest = new AdRequest.Builder().build();

        mAdView.loadAd(adRequest);

AndroidManifest:

 <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="19" />

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

<meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />  

<!--Include the AdActivity configChanges and theme. -->
<activity android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent" />

我按照adMob网站上的所有说明进行操作,因为我说它几天前工作了。

Bellow是logcat的几行,可能与我的问题有关:

09-25 22:44:50.292: E/dalvikvm(18554): Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza
09-25 22:45:07.209: E/Ads(18554): JS: Uncaught ReferenceError: renderAd is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 22:45:07.209: E/Web Console(18554): Uncaught ReferenceError: renderAd is not defined:1
09-25 22:45:07.209: E/Ads(18554): JS: Uncaught ReferenceError: onLoad is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 22:45:07.209: E/Web Console(18554): Uncaught ReferenceError: onLoad is not defined:1

我反复收到轰鸣声警告,当我点击广告应该显示的空白区域时,它会显得更多

09-25 22:46:10.911: W/PicturePileLayerContent(18554): Warning: painting PicturePile without content!

这是使用&#34;广告&#34;

过滤的logcat
09-25 23:39:25.948: I/Ads(28874): Starting ad request.
09-25 23:39:25.948: I/Ads(28874): Use AdRequest.Builder.addTestDevice("8FCD71CAAE776558876AAA9BA964245A") to get test ads on this device.

09-25 23:39:26.919: I/Ads(22050): App index is not enabled
09-25 23:39:30.432: E/Ads(28874): JS: Uncaught ReferenceError: renderAd is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 23:39:30.442: E/Ads(28874): JS: Uncaught ReferenceError: onLoad is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 23:39:30.442: I/Ads(28874): Scheduling ad refresh 60000 milliseconds from now.
09-25 23:39:30.472: I/Ads(28874): Ad finished loading.

我到处寻找解决方案,并且看了一些相似但不帮助我的人。

8 个答案:

答案 0 :(得分:14)

使用以下代码行

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

AdRequest request = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)        // All emulators
.addTestDevice("AC98C820A50B4AD8A2106EDE96FB87D4")  // My Galaxy Nexus test phone
.build();


mAdView.loadAd(request );

而不是使用此

AdRequest adRequest = new AdRequest.Builder().build();

因为当您的应用程序准备好在Google Play商店发布时,系统会使用此行。

您可以将设备的ID替换为“AC98C820A50B4AD8A2106EDE96FB87D4”。用于获取设备ID的代码:

String android_id = Settings.Secure.getString(getContext().getContentResolver(),
            Settings.Secure.ANDROID_ID);

请仔细阅读:

https://developers.google.com/admob/android/targeting#test_ads

https://developers.google.com/admob/android/quick-start

请参阅

enter image description here

enter image description here

答案 1 :(得分:8)

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

答案 2 :(得分:2)

检查您是否拥有最新版本的adMob和GooglePlayServices lib。

答案 3 :(得分:1)

将横幅放在LinearLayout中就像这样,我面临同样的问题,我通过将其置于线性布局来修复它

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:id="@+id/linearLayout">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-8056472942589154/2652831823"
        android:layout_alignBottom="@+id/saida"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</LinearLayout>

答案 4 :(得分:1)

在我的情况下,广告没有出现,直到我给它足够的空间。

之前

<LinearLayout
        android:orientation="vertical"
        android:background="@color/primary"
        android:layout_width="match_parent"
        android:layout_height="90dip">
           <ImageView
                android:onClick="goBack"
                android:clickable="true"
                android:src="@drawable/ic_arrow_back_white_48dp"
                android:layout_width="50dip"
                android:layout_height="50dip"/>
           <com.google.android.gms.ads.AdView
                android:layout_gravity="center_horizontal"
                android:id="@+id/adView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                ads:adSize="BANNER"
                ads:adUnitId="@string/dwn_bnr_ad"/>

此处的adview具有wrap_content的高度,因此它会调整自身以达到其高度,但其父级(LinearLayout)的严格高度为90dip,这不允许adView占用足够的空间来展示广告。

所以我所做的只是将LinearLayout的高度更改为wrap_content然后事情变好了

答案 5 :(得分:0)

您是否回到了您的admob帐户,为广告注册了您的特定应用,并通过“ca-app-pub”获得了更长的发布商号码&#39;前言而不是&#39; pub - &#39;前言

&#34;横幅广告1&#34;关于Google Admob&#34; Google移动广告SDK&#34;的说明开发网站是否提到必须返回到您的admob帐户才能执行此操作。

这个愚蠢的错误让我忍受了好几天。

答案 6 :(得分:0)

就我而言,我在项目级buildscript的{​​{1}}部分下面有以下代码

确保build.gradle位于maven {url "https://maven.google.com"}

allProjects > repositories

答案 7 :(得分:0)

  

确保已在Admob帐户中添加Banner Ad Unit   并在显示横幅广告的应用的adUnitId中使用横幅appUnit-id