我已使用Firebase添加了AdMob。未显示实时广告,测试广告正常运行。如果我添加.addTestDevice("D9XXXXXXXXXXXXXXXXXXXXXXXXXXXXX");"
,则会显示测试广告。
我正在执行Google Documentation的步骤。
项目级别 - build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
应用级别 - build.gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.firebase:firebase-ads:9.0.1'
}
MainActivity.java
AdView mAdView;
AdRequest adRequest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(getApplicationContext(), "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXX");
mAdView = (AdView) findViewById(R.id.adView);
adRequest = new AdRequest.Builder().build();
}
activity_main.xml中
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_id" />
的strings.xml
<string name="banner_id">ca-app-pub-XXXXXXXXXXXX/XXXXXXXXX</string>
我在Logcat中收到错误
W / Ads:收到广告回复时出现问题。 ErrorCode:0
W / Ads:无法加载广告:0
我还尝试导出用于测试实时广告的应用,但失败了。有许多答案表明,Google可能没有针对我的应用的广告,但没有任何与此相关的日志。
答案 0 :(得分:0)
在代码中进行以下更改
在应用级apply plugin: 'com.google.gms.google-services'
结束时添加build.gradle
。
应用级别 - build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
apply plugin: 'com.google.gms.google-services'
在初始化广告AdRequest
后添加AdView
,将mAdView.loadAd(adRequest);
加载到AdRequest
,如下所示:
<强> MainActivity.java 强>
AdView mAdView;
AdRequest adRequest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(getApplicationContext(), "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXX");
mAdView = (AdView) findViewById(R.id.adView);
adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
答案 1 :(得分:0)
您需要在代码中添加mAdView.loadAd(adRequest);
。
您的代码如下所示:
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);//Required this line to load ad
答案 2 :(得分:0)
从ADMOB帐户中添加付款信息并等待批准
如果测试广告运行良好,则说明您的实现是正确的,但是您需要填写admob帐户中的“付款”选项。填写完该表格后,您将收到一封有关确认付款细节的电子邮件,并显示一条消息,指示是否您的信息已被admob小组接受,如果是,则将显示实时广告。 但请记住,广告最初不会展示。批准后也要花费一些时间。 这是错误代码的代码片段,以查找出问题所在
mAdView =(com.google.android.gms.ads.AdView)findViewById(R.id.adView);
mAdView.setAdListener(new com.google.android.gms.ads.AdListener() {
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
Toast.makeText(HomeActivity.this, "onAdLoaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdFailedToLoad(int errorCode) {
if(errorCode==AdRequest.ERROR_CODE_INTERNAL_ERROR)
Toast.makeText(HomeActivity.this, "onAdFailedToLoad", Toast.LENGTH_SHORT).show();
// Code to be executed when an ad request fails.
}
@Override
public void onAdOpened() {
Toast.makeText(HomeActivity.this, "onAdOpened", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdLeftApplication() {
Toast.makeText(HomeActivity.this, "onAdLeftApplication", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdClosed() {
Toast.makeText(HomeActivity.this, "onAdClosed", Toast.LENGTH_SHORT).show();
}
})
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
获取错误代码
ERROR_CODE_INTERNAL_ERROR-内部发生了一些事情;例如,从广告服务器收到无效的响应。 ERROR_CODE_INVALID_REQUEST-广告请求无效;例如,广告单元ID不正确。 ERROR_CODE_NETWORK_ERROR-由于网络连接,广告请求失败。 ERROR_CODE_NO_FILL-广告请求成功,但没有广告。
如果您收到错误代码3,则一段时间后,您会在一段时间后展示广告。
答案 3 :(得分:-1)
查看values文件夹中的string.xml。如果你的横幅ID不是这样的话
<string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
(此ID ca-app-pub-3940256099942544/6300978111仅适用于测试广告)
然后将其替换为您自己的横幅广告单元ID。