Banner廣告
Banner廣告是在應(yīng)用程序頂部、中部或底部占據(jù)一個位置的矩形圖片,廣告內(nèi)容每隔一段時間會自動刷新,點擊內(nèi)容時通常會鏈接到廣告主的頁面。
添加Banner廣告
1.添加BannerView。
HUAWEI Ads SDK支持以下兩種方式添加BannerView來展示Banner廣告:
a.通過配置XML布局文件添加。
在XML布局文件中添加BannerView,并通過配置hwads:adId和hwads:bannerSize屬性,來設(shè)置廣告位ID和尺寸。以下示例代碼中展示了如何在XML布局文件中添加BannerView。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:hwads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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);
b.通過編程方式添加。
在代碼中添加BannerView,并設(shè)置廣告位ID和尺寸。
BannerView bannerView=new BannerView(this);
//"testw6vs28auh3"為專用的測試廣告位ID,App正式發(fā)布時需要改為正式的廣告位ID
bannerView.setAdId("testw6vs28auh3");
bannerView.setBannerAdSize(BannerAdSize.BANNER_SIZE_360_57);
FrameLayout adFrameLayout=findViewById(R.id.ad_frame);
adFrameLayout.addView(bannerView);
2.獲取廣告。
BannerView創(chuàng)建好之后,通過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);
// 設(shè)置廣告位ID和廣告尺寸,"testw6vs28auh3"為專用的測試廣告位ID
bannerView.setAdId("testw6vs28auh3");
bannerView.setBannerAdSize(BannerAdSize.BANNER_SIZE_360_57);
// 創(chuàng)建廣告請求,獲取廣告
AdParam adParam = new AdParam.Builder().build();
bannerView.loadAd(adParam);
}
}
3.(可選)監(jiān)聽廣告事件。
通過實現(xiàn)AdListener類中的方法來監(jiān)聽廣告事件。
bannerView.setAdListener(adListener);
private AdListener adListener = new AdListener() {
@Override
public void onAdLoaded() {
// 廣告獲取成功調(diào)用
...
}
@Override
public void onAdFailed(int errorCode) {
// 廣告獲取失敗時調(diào)用
...
}
@Override
public void onAdOpened() {
// 廣告打開時調(diào)用
...
}
@Override
public void onAdClicked() {
// 廣告點擊時調(diào)用
...
}
@Override
public void onAdLeave() {
// 廣告離開應(yīng)用時調(diào)用
...
}
@Override
public void onAdClosed() {
// 廣告關(guān)閉時調(diào)用
...
}
};
常用廣告尺寸
常用的標(biāo)準(zhǔn)橫幅廣告尺寸如下表所示:
說明
在中國大陸區(qū)域暫只支持BANNER_SIZE_360_57和BANNER_SIZE_360_144。
Smart Banner廣告
Smart Banner是一種在任何屏幕尺寸、任何屏幕方向的設(shè)備上展示與屏幕等寬的Banner廣告。獲取廣告時HUAWEI Ads SDK會根據(jù)當(dāng)前設(shè)備屏幕方向,創(chuàng)建與屏幕等寬的廣告視圖,而廣告高度是根據(jù)當(dāng)前屏幕方向的高度來決定。
Smart Banner可實現(xiàn)三種廣告高度:
在手機上,通常情況下當(dāng)屏幕為縱向時Smart Banner廣告高度為50dp;當(dāng)屏幕為橫向時,廣告高度為32dp。在平板電腦上,不論屏幕是縱向還是橫向,廣告高度通常均為90dp。
當(dāng)廣告圖片素材不足以占據(jù)所分配的整個空間時,系統(tǒng)會居中放置圖片,然后填充兩側(cè)剩余的空間。
使用Smart Banner時,需要將廣告尺寸指定常量BANNER_SIZE_SMART,并將寬度設(shè)置為match_parent,同時應(yīng)考慮在不同設(shè)備上會存在不同的廣告高度,需要將高度設(shè)置為wrap_content。
<com.huawei.hms.ads.banner.BannerView
android:id="@+id/hw_banner_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
hwads:adId="testw6vs28auh3"
hwads:bannerSize="BANNER_SIZE_SMART" >
</com.huawei.hms.ads.banner.BannerView>
說明
Smart Banner廣告在中國大陸區(qū)域暫未支持,中國大陸區(qū)域的用戶可能不會收到Smart Banner廣告。
測試Banner廣告
測試Banner廣告時,需要使用專門的測試廣告位ID來獲取測試廣告,以避免在測試過程中產(chǎn)生無效的廣告點擊量。Banner測試廣告位ID僅作為功能調(diào)試使用,不可用于廣告變現(xiàn)。您應(yīng)在應(yīng)用發(fā)布前申請真實的廣告位ID并替換測試廣告位ID。
以下表格中提供了Banner廣告的專用測試廣告位ID:
下載Banner廣告的示例代碼并運行,可以看到如下效果圖:
另外您也可以通過學(xué)習(xí)Codelab中的教程來集成Banner廣告。