知识养成了思想,思想同时又在融化知识。这篇文章主要讲述Android:如何在应用程序中集成admob?相关的知识,希望能为你提供帮助。
我试图在我的应用程序中集成admob横幅几个小时,但我不能这样做,所以我创建了新的应用程序,唯一的目的是show admob banner但它也不起作用。这是代码
public class MainActivity extends Activity {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AdView adView = new AdView(this, AdSize.BANNER, "XXX");
adView.setVisibility(View.VISIBLE);
RelativeLayout layout = new RelativeLayout(this);
RelativeLayout.LayoutParams adParams =
new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
layout.addView(adView, adParams);
setContentView(layout);
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);
}@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这是我的清单文件
<
?xml version="1.0" encoding="utf-8"?>
<
manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.zzzzzz_admobtest"
android:versionCode="1"
android:versionName="1.0" >
<
uses-permission android:name="android.permission.INTERNET" />
<
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<
uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<
application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<
activity
android:name="com.example.zzzzzz_admobtest.MainActivity"
android:label="@string/app_name" >
<
intent-filter>
<
action android:name="android.intent.action.MAIN" />
<
category android:name="android.intent.category.LAUNCHER" />
<
/intent-filter>
<
/activity>
<
activity
android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<
/application>
<
/manifest>
我究竟做错了什么?
此外,当我输出adView.isActivated()和adView.isReady()时,它们都是假的。
我使用的是“XXX”而不是ID,因为我没有。这可能是个问题吗?
我正在使用设备。这是ligcat上的错误
08-07 22:43:04.248:E / ActivityThread(24181):无法找到com.google.plus.platform的提供商信息08-07 22:43:04.454:E / Ads(24181):JS:未捕获的ReferenceError: AFMA_getSdkConstants未定义(http://media.admob.com/:1)08-07 22:43:04.454:E / Web控制台(24181):未捕获的ReferenceError:AFMA_getSdkConstants未在http://media.admob.com/:1中定义
此代码可以修复最后2个错误
(new Thread() {
public void run() {
Looper.prepare();
adView.loadAd(new AdRequest());
}
}).start();
据我所知,第一个不是错误,而只是一个警告。那么为什么这不起作用?
答案
我使用的是“XXX”而不是ID,因为我没有。这可能是个问题吗?是。绝对没错。注册Admob帐户。获取一个ID并使用它。
另一答案Android-manifest中缺少元数据标记。查看已有的资源Example
<
meta-data
android:name="ADMOB_PUBLISHER_ID"
android:value="https://www.songbingjia.com/android/XXXX" />
另一答案这个问题有点老了,但我想回答一下,因为出现了新技术,这让AdMob集成变得非常容易。在大多数情况下,您不需要另外编写任何代码,只需创建和.apk文件,Admob将自动注入其中。
- 输入FGL Enhance。选择要集成的SDK。您可以使用此服务选择多个不同的SDK,对于本教程,我们只选择“我想自己选择SDK”中的Admob。
- 选择,使用什么开发技术来构建您的应用程序。如果要显示/隐藏横幅,则需要连接轻量级拖放库并添加1行代码。根据您选择的技术,您将获得代码示例和连接器库下载链接。
- 在此页面上,您可以选择将在您的应用中显示的广告类型。非页内广告 - 级别之间的广告奖励视频 - 视频,奖励观看灵活横幅 - 横幅,可以隐藏/显示在游戏代码中持久横幅 - 横幅,它将始终保留在屏幕上(但横幅旋转是可用,来自AdMob设置)预滚动 - 广告,显示为应用程序启动(如在ketchapp的游戏中)
- 现在上传我们的应用。
- 在下一个屏幕上,我们可以选择横幅类型。我们可以使用例如SMART_BANNER或AdMob帮助中的任何其他横幅类型。我们还会从AdMob帐户输入横幅ID。在AdMob帐户中创建横幅时,我们可以设置刷新间隔。
- 最后一步 - 签署方法选择。您可以使用自己的开发人员证书,然后您可以在注册AdMob后立即将游戏提交到商店。您可以选择测试证书以在自己的设备上测试应用程序。或者您可以下载未签名的应用程序并在提交到商店之前在本地签名。
- 还有一个进度条...... 我们来了!
来源:http://www.airapport.com/2016/09/tutorial-how-to-quickly-integrate-admob.html
另一答案在onCreate中添加两行
AdView ad = (AdView) findViewById(R.id.adView);
ad.loadAd(new AdRequest());
并在您的XML中添加AddView
<
com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/ads_unit_id"
ads:loadAdsOnCreate="true" />
另一答案您可以从here下载完整的源代码
在依赖项中添加以下lib
compile 'com.google.android.gms:play-services-ads:7.8.0'
对于智能横幅
在xml文件中添加以下内容
<
com.google.android.gms.ads.AdView
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/banner_ad_unit_id" />
在java文件中添加以下内容
mAdView = (AdView) findViewById(R.id.ad_view);
AdRequest adRequest = new AdRequest.Builder().build();
// Start loading the ad in the background.
mAdView.loadAd(adRequest);
对于非页内广告
mInterstitialAd = new InterstitialAd(MainActivity.this);
mInterstitialAd.setAdUnitId(getResources().getString(R.string.full_screen_ad_unit_id));
AdRequest adRequestFull = new AdRequest.Builder().build();
mInterstitialAd.loadAd(adRequestFull);
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
// Full screen advertise will show only after loading complete
mInterstitialAd.show();
}
});
另一答案
adView = (AdView) findViewById(R.id.adView);
AdRequest request = new AdRequest.Builder()
.addTestDevice("ca-app-pub-3940256099942544/6300978111")
.build();
已在这里回答
【Android(如何在应用程序中集成admob())】https://stackoverflow.com/a/48031375/9155209
推荐阅读
- Android和AdMob(何时调用AdView.loadAd)
- Admob集成到Android应用程序中
- 如果我在亚马逊,9apps和Getjar等其他商店上传应用程序而不是谷歌游戏商店,Admob会工作吗()
- Admob测试广告未在Android应用程序中显示
- Android广告尺寸(智能横幅并不总是有效)
- Android应用程序结算(订单取消后,购买状态保持“已购买”状态)
- 如何测试FREAK攻击(CVE-2015-0204)和修复
- 如何制止罕见的黑客入侵()
- 10个在线工具,用于测试SSL,TLS和最新漏洞