Ich benutze Admob in meiner App, es hat gut funktioniert, aber auf einmal wurde aufgehört, Anzeigen zu schalten. Bellow ist meine Codes, die ich verwendet habe:
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>
Hauptaktivität.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" />
Ich habe alle Anweisungen von der AdMob-Site befolgt, da ich vor wenigen Tagen gesagt habe, dass es funktioniert.
Unten sind einige Zeilen von logcat, die möglicherweise mit meinem Problem zusammenhängen:
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
Ich bekomme wiederholt eine Warnung und es erscheint mehr, wenn ich auf den leeren Bereich klicke, in dem die Anzeige erscheinen soll
09-25 22:46:10.911: W/PicturePileLayerContent(18554): Warning: painting PicturePile without content!
Dies ist ein gefilterter Logcat mit "Anzeigen"
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.
Ich habe überall nach der Lösung gesucht und auch ähnliche gesucht, aber keiner von ihnen hat mir geholfen.
Dieses Problem wird gelöst, indem Sie die App manuell deinstallieren und erneut installieren, ohne Änderungen vorzunehmen.
Verwenden Sie die folgenden Codezeilen
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 );
anstatt dies zu verwenden
AdRequest adRequest = new AdRequest.Builder().build();
diese Zeile wird verwendet, wenn Ihre Anwendung zur Veröffentlichung im Google Play Store bereit ist.
Sie können die ID Ihres Geräts anstelle von "AC98C820A50B4AD8A2106EDE96FB87D4" einfügen. Code zum Abrufen der Geräte-ID:
String Android_id = Settings.Secure.getString(getContext().getContentResolver(),
Settings.Secure.Android_ID);
Bitte lesen Sie diese sorgfältig durch:
https://developers.google.com/admob/Android/targeting#test_ads
https://developers.google.com/admob/Android/quick-start
Sieh dir das an
Überprüfen Sie, ob Sie über die neuesten Versionen von AdMob und GooglePlayServices Lib verfügen.
Setzen Sie das Banner so in ein LinearLayout, dass ich vor dem gleichen Problem stand und es durch ein lineares Layout behoben habe
<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>
In meinem Fall wurde die Anzeige nicht angezeigt, bis ich genügend Platz dafür hatte.
Bevor es so war
<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"/>
Der Adview hat hier die Höhe von wrap_content, also passt er sich selbst an, um seine Höhe zu erreichen, aber das übergeordnete Element (LinearLayout) hat eine strenge Höhe von 90 DIP, wodurch AdView nicht genügend Platz für die Anzeige von Anzeigen benötigt.
Also habe ich einfach die Höhe des LinearLayout in wrap_content geändert und dann wurde alles gut
Haben Sie zu Ihrem Admob-Konto zurückgekehrt, um Ihre spezifische App für Anzeigen zu registrieren und eine neue, längere Publisher-Nummer mit dem Vorwort "ca-app-pub" anstelle des "pub" -Vorworts zu erhalten?
Nirgendwo in den "Banner ads 1" -Anweisungen auf der Google Admob-Entwicklungsseite "Google Mobile Ads SDK" wird erwähnt, dass Sie dazu zu Ihrem Admob-Konto zurückkehren müssen.
Dieser dumme Fehler hielt mich tagelang auf.
In meinem Fall hatte ich den folgenden Code unter dem Abschnitt buildscript
der Projektebene build.gradle
Stellen Sie sicher, dass sich maven {url "https://maven.google.com"}
unter allProjects > repositories
befindet:
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}