如何以编程方式创建AdMob横幅?

23

我该如何使用代码创建AdMob智能横幅广告?我的布局完全是由代码构建的。


2
进一步的解释和一段代码将不胜感激。 - AlexBcn
6
这是一个非常合理的问题,也有一个非常合理的答案。关闭这个问题并将其称为“不是一个真正的问题”是荒谬的。 - jamesc
2个回答

27

你可以像这样更多或更少地做:

LinearLayout adContainer = <container>;
AdView adView = new AdView(activity)
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(<your-publisher-id>); //ca-app-pub-3940256099942544/6300978111 (admob sample banner ad id)

// Initiate a generic request to load it with an ad
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
adView.loadAd(adRequest);

// Place the ad view.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
adContainer.addView(adView, params);

21
自从 AdMob API 更改以后:adView = new AdView(activity); adView.setAdSize(AdSize.BANNER); adView.setAdUnitId("myAdUnitId"); - MemLeak
3
有趣的是改进意见比答案获得了更多的投票。进行了编辑。 - QED
像这样的AdRequest --> AdRequest adRequest = new AdRequest.Builder().addTestDevice("4C9AED4DAD2042C84C4AE85B421D9648").build(); - Ranjithkumar
在adView.setAdUnitId中,您应该使用“广告单元ID”而不是发布者ID。 - Harsh Kothari

0
将以下代码添加到您的Activity中:
//Add this in OnCreate of Activity to initialize the ad
MobileAds.initialize(getApplicationContext(), "< your-ad-unit-Id >");

//Add this wherever your code needs to add the ad

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);

//Additionally to adjust the position to Bottom
layout.setGravity(Gravity.BOTTOM);

// Create a banner ad
mAdView = new AdView(this);
mAdView.setAdSize(AdSize.SMART_BANNER);
mAdView.setAdUnitId("<your-ad-unit-Id>");

// Create an ad request.
AdRequest.Builder adRequestBuilder = new AdRequest.Builder();

// Optionally populate the ad request builder.
adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);

// Add the AdView to the view hierarchy.
layout.addView(mAdView);

// Start loading the ad.
mAdView.loadAd(adRequestBuilder.build());

setContentView(layout);

然后检查您是否在清单文件中授予权限

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

清单文件中的<application>标签内添加以下元数据。
<meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />

最后,检查您是否已经在应用 gradle中添加了所需的依赖项以进行编译。

compile 'com.google.android.gms:play-services:9.6.1'



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接