Admob 横幅广告不显示
Admob Banner Ads don't display
我没有收到错误,它们只是没有显示。
在我的清单中:
<uses-permission android:name="android.permission.INTERNET" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission-sdk-23 android:name="android.permission.INTERNET"
android:maxSdkVersion="28" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_NETWORK_STATE"
android:maxSdkVersion="28"/>
在我的布局中:
<com.google.android.gms.ads.AdView
android:id="@+id/publisherAdView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
app:adSize="BANNER"
app:adUnitId="ca-app-pub-??????????????/????????"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
(我用 ? 来隐藏我的广告编号)
在 Activity 我有:
private AdView mPublisherAdView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_normal);
MobileAds.initialize(this, "ca-app-pub-?????????????~???????");
mPublisherAdView = findViewById(R.id.publisherAdView);
AdRequest adRequest = new AdRequest.Builder().build();
mPublisherAdView.loadAd(adRequest);
这是我的 gradle 文件:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "https://maven.google.com"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
并且:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "???????.?????"
minSdkVersion 17
targetSdkVersion 26
versionCode 1203
versionName "1.2.03"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:recyclerview-v7:26.1.0'
//GSON
implementation 'com.google.code.gson:gson:2.8.2'
//RecycleView
implementation 'com.android.support:recyclerview-v7:26.1.0'
//ADS
implementation 'com.google.android.gms:play-services-ads:17.1.1'
}
问题是该应用程序使用互联网,因为我可以看到我消耗了 X 互联网数据,但广告没有显示。我尝试了所有方法,我遵循了 Google 教程并复制了他们网站上的内容,但我无法修复它。我看起来像是在添加负载,因为加载 activity 需要一些时间,而且以前没有这样做,但广告是不可见的或其他东西。我使用 API 26 的智能手机,所以它不是 API 级别。
您必须使用 AdListener
正确构建 addRequest
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
if (mAdView.getVisibility() == View.GONE) {
mAdView.setVisibility(View.VISIBLE);
}
}
});
mAdView.loadAd(adRequest);
Adview 的 XML 是
<LinearLayout
android:id="@+id/ad_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
>
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
android:visibility="gone"
ads:adUnitId="@string/banner_ad_id">
</com.google.android.gms.ads.AdView>
</LinearLayout>
最好将 banner id
放在字符串文件中。
问题出在 Admob,由于某种原因我的帐户未通过验证,这就是为什么我认为问题出在代码中,而不是 Admob。
您的帐户可能未获批准。
您可以找出错误的原因:
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
super.onAdFailedToLoad(loadAdError);
Log.d("ERROR",loadAdError.toString());
}
在你知道你的错误后,你可以在这里修复它:
https://support.google.com/admob/answer/9905175
我没有收到错误,它们只是没有显示。
在我的清单中:
<uses-permission android:name="android.permission.INTERNET" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission-sdk-23 android:name="android.permission.INTERNET"
android:maxSdkVersion="28" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_NETWORK_STATE"
android:maxSdkVersion="28"/>
在我的布局中:
<com.google.android.gms.ads.AdView
android:id="@+id/publisherAdView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
app:adSize="BANNER"
app:adUnitId="ca-app-pub-??????????????/????????"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
(我用 ? 来隐藏我的广告编号)
在 Activity 我有:
private AdView mPublisherAdView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_normal);
MobileAds.initialize(this, "ca-app-pub-?????????????~???????");
mPublisherAdView = findViewById(R.id.publisherAdView);
AdRequest adRequest = new AdRequest.Builder().build();
mPublisherAdView.loadAd(adRequest);
这是我的 gradle 文件:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "https://maven.google.com"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
并且:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "???????.?????"
minSdkVersion 17
targetSdkVersion 26
versionCode 1203
versionName "1.2.03"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:recyclerview-v7:26.1.0'
//GSON
implementation 'com.google.code.gson:gson:2.8.2'
//RecycleView
implementation 'com.android.support:recyclerview-v7:26.1.0'
//ADS
implementation 'com.google.android.gms:play-services-ads:17.1.1'
}
问题是该应用程序使用互联网,因为我可以看到我消耗了 X 互联网数据,但广告没有显示。我尝试了所有方法,我遵循了 Google 教程并复制了他们网站上的内容,但我无法修复它。我看起来像是在添加负载,因为加载 activity 需要一些时间,而且以前没有这样做,但广告是不可见的或其他东西。我使用 API 26 的智能手机,所以它不是 API 级别。
您必须使用 AdListener
addRequest
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
if (mAdView.getVisibility() == View.GONE) {
mAdView.setVisibility(View.VISIBLE);
}
}
});
mAdView.loadAd(adRequest);
Adview 的 XML 是
<LinearLayout
android:id="@+id/ad_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
>
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
android:visibility="gone"
ads:adUnitId="@string/banner_ad_id">
</com.google.android.gms.ads.AdView>
</LinearLayout>
最好将 banner id
放在字符串文件中。
问题出在 Admob,由于某种原因我的帐户未通过验证,这就是为什么我认为问题出在代码中,而不是 Admob。
您的帐户可能未获批准。 您可以找出错误的原因:
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
super.onAdFailedToLoad(loadAdError);
Log.d("ERROR",loadAdError.toString());
}
在你知道你的错误后,你可以在这里修复它: https://support.google.com/admob/answer/9905175