在中国大陆区域暂只支持BANNER_SIZE_360_57和BANNER_SIZE_360_144。
Banner广告是在应用程序顶部、中部或底部占据一个位置的矩形图片,广告内容每隔一段时间会自动刷新,点击内容时通常会链接到广告主的页面。
HUAWEI Ads SDK支持以下两种方式添加BannerView来展示Banner广告:
在XML布局文件中添加BannerView,并通过配置hwads:adId和hwads:bannerSize属性,来设置广告位ID和尺寸。
以下示例代码中展示了如何在XML布局文件中添加BannerView。
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout
- xmlns:hwads="http://schemas.android.com/apk/res-auto"
- ...
- <com.huawei.hms.ads.banner.BannerView
- android:id="@+id/hw_banner_view"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- hwads:adId="testw6vs28auh3"
- hwads:bannerSize="BANNER_SIZE_360_57"/>
- </RelativeLayout>
以下示例代码展示了如何获取BannerView。
- BannerView bannerView = findViewById(R.id.hw_banner_view);
在代码中添加BannerView,并设置广告位ID和尺寸。
- BannerView bannerView = new BannerView(this);
- // "testw6vs28auh3"为专用的测试广告位ID。
- bannerView.setAdId("testw6vs28auh3");
- bannerView.setBannerAdSize(BannerAdSize.BANNER_SIZE_360_57);
- FrameLayout adFrameLayout = findViewById(R.id.ad_frame);
- adFrameLayout.addView(bannerView);
BannerView创建好之后,通过BannerView类的loadAd()方法来获取广告。
- …
- import com.huawei.hms.ads.AdParam;
- import com.huawei.hms.ads.BannerAdSize;
- import com.huawei.hms.ads.banner.BannerView;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 获取BannerView
- BannerView bannerView = findViewById(R.id.hw_banner_view);
- // 设置广告位ID和大小,"testw6vs28auh3"为专用的测试广告位ID
- bannerView.setAdId("testw6vs28auh3");
- bannerView.setBannerAdSize(BannerAdSize.BANNER_SIZE_360_57);
- // 创建广告请求,获取广告
- AdParam adParam = new AdParam.Builder().build();
- bannerView.loadAd(adParam);
- }
- }
通过实现AdListener类中的方法来监听广告事件。
- bannerView.setAdListener(adListener);
- private AdListener adListener = new AdListener() {
- @Override
- public void onAdLoaded() {
- // 广告获取成功调用
- }
- @Override
- public void onAdFailed(int errorCode) {
- // 广告获取失败时调用
- }
- @Override
- public void onAdOpened() {
- // 广告打开时调用
- }
- @Override
- public void onAdClicked() {
- // 广告点击时调用
- }
- @Override
- public void onAdLeave() {
- // 广告离开应用时调用
- }
- @Override
- public void onAdClosed() {
- // 广告关闭时调用
- }
- };
了解详细方法,请参见API文档中的AdListener类。
常用的标准横幅广告尺寸如下表所示:
类型 | 尺寸(宽*高 以dp为单位) | 说明 |
BANNER_SIZE_320_50 | 320x50 | 普通Banner广告,适用于手机设备。 |
BANNER_SIZE_320_10 | 320x100 | 大型Banner广告,适用于手机设备。 |
BANNER_SIZE_300_250 | 300x250 | 中矩形Banner广告,适用于手机设备。 |
BANNER_SIZE_360_57 | 360x57 | 普通Banner广告,适用于1080*170px的广告素材。 |
BANNER_SIZE_360_144 | 360x144 | 大型Banner广告,适用于1080*432px的广告素材。 |
BANNER_SIZE_SMART | 屏幕宽度 x 32|50|90 | 自适应Banner广告,根据设备的宽高比自动调整广告尺寸,适用于手机设备。 |
在中国大陆区域暂只支持BANNER_SIZE_360_57和BANNER_SIZE_360_144。
Smart Banner是一种在任何屏幕尺寸、任何屏幕方向的设备上展示与屏幕等宽的Banner广告。获取广告时HUAWEI Ads SDK会根据当前设备屏幕方向,创建与屏幕等宽的广告视图,而广告高度是根据当前屏幕方向的高度来决定。
Smart Banner可实现三种广告高度:
广告高度 | 屏幕高度 |
32dp | ≤ 400dp |
50dp | > 400dp 且 <= 720dp |
90dp | > 720dp |
在手机上,通常情况下当屏幕为纵向时Smart Banner广告高度为 50dp;当屏幕为横向时,广告高度为 32dp。在平板电脑上,不论屏幕是纵向还是横向,广告高度通常均为 90dp。
当广告图片素材不足以占据所分配的整个空间时,系统会居中放置图片,然后填充两侧剩余的空间。
使用Smart Banner时,需要将BannerView的广告尺寸指定常量BANNER_SIZE_SMART,并将宽度设置为match_parent,同时应考虑在不同设备上会存在不同的广告高度,需要将BannerView的高度设置为wrap_content。
Smart Banner广告在中国大陆区域暂未支持,中国大陆区域的用户可能不会收到Smart Banner广告。
测试Banner广告时,需要使用专门的测试广告位ID来获取测试广告,以避免在测试过程中产生无效的广告点击量。Banner测试广告位ID仅作为功能调试使用,不可用于广告变现。开发者应在应用发布前申请真实的广告位ID并替换测试广告位ID。
以下表格中提供了Banner广告的专用测试广告位ID:
广告形式 | 展示形式 | 测试广告位ID |
Banner | 纯图 | testw6vs28auh3 |
下载Banner广告的示例代码并运行,可以看到如下效果图: