是的,可以在同一个Android应用程序中同时使用Admob和AdSense广告。可以在同一个应用程序中使用不同的广告库。
下面是一个基本的示例代码,演示如何在同一个应用程序中同时使用Admob和AdSense广告。
首先,在应用程序级别的build.gradle中添加Admob和AdSense的依赖项:
dependencies {
implementation 'com.google.android.gms:play-services-ads:19.1.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
}
然后,在布局文件中添加Admob和AdSense广告视图:
接下来,在代码中初始化Admob和AdSense广告:
// 初始化Admob广告
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
// ...
}
});
// 初始化AdSense广告
ConsentInformation consentInformation = ConsentInformation.getInstance(this);
String[] publisherIds = {"pub-1234567890123456"};
consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() {
@Override
public void onConsentInfoUpdated(ConsentStatus consentStatus) {
// ...
}
@Override
public void onFailedToUpdateConsentInfo(String s) {
// ...
}
});
ConsentForm consentForm = new ConsentForm.Builder(this, new URL("https://example.com/privacy-policy"))
.withListener(new ConsentFormListener() {
@Override
public void onConsentFormLoaded() {
// ...
}
@Override
public void onConsentFormOpened() {
// ...
}
@Override
public void onConsentFormClosed(ConsentStatus consentStatus, Boolean aBoolean) {
// ...
}
@Override
public void onConsentFormError(String s) {
// ...
}
})
.withPersonalizedAdsOption()
.withNonPersonalizedAdsOption()
.build();
consentForm.load();
最后,在代码中将Admob和AdSense广告视图加载到布局中:
// 加载Admob广告视图
AdView adView = findViewById(R.id.adView_admob);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
// 加载AdSense广告视图
ConsentStatus consentStatus = ConsentInformation.getInstance(this).getConsentStatus();
if (consentStatus == ConsentStatus.NON_PERSONALIZED) {
Bundle extras = new Bundle();
extras.putString("npa", "1");
com.google.android.ads.consent.ConsentForm consentForm = findViewById(R.id.consent_form_adsense);
com.google.android.gms.ads.AdView adView = new com.google.android.gms.ads.AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId(getString(R.string.adsense_ad_unit