アプリで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サイトのすべての指示に従いました。
以下は、私の問題に関連する可能性のある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!
これは、「広告」でフィルタリングされた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.
私はどこでも解決策を検索し、同様のいくつかを見ましたが、それらはどれも助けてくれませんでした。
この問題は、アプリを手動でアンインストールし、変更せずに再インストールすることで解決します!!
以下のコード行を使用
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ストアで公開する準備ができたときにこの行が使用されるためです。
"AC98C820A50B4AD8A2106EDE96FB87D4"の代わりにデバイスのIDを配置できます。デバイス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
こちらをご覧ください
AdMobおよびGooglePlayServices libの最新バージョンがあるかどうかを確認してください。
私の場合、十分なスペースを確保するまで広告は表示されませんでした。
ようになる前に
<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に変更しただけで、その後うまくいった
Admobアカウントに戻って特定のアプリを広告に登録し、「pub-」ではなく「ca-app-pub-」で新しい長い発行元番号を取得しましたか?
Google Admobの「Google Mobile Ads SDK」開発サイトの「バナー広告1」の説明のどこにも、これを行うためにadmobアカウントに戻る必要があると記載されていません。
この愚かな間違いは何日も私を支えた。
これと同じように、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>
私の場合、プロジェクトレベルbuild.gradle
のbuildscript
セクションに以下のコードがありました
maven {url "https://maven.google.com"}
がallProjects > repositories
の下にあることを確認してください。
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}