新媒體時代,廣告樣式越來越豐富,相較于傳統的圖文資訊,視頻類廣告更具有直觀性,能夠讓消費者在了解產品知識和功能的同時加深對產品的印象,
因此在各類網站或App上投放視頻類廣告是個很好的宣傳方式,但廣告商們如果想在網站上展示視頻廣告,必須確保視頻廣告投放協議與發布渠道的播放器兼容;如果不能兼容,廣告商或者視頻廣告投放平臺必須創建不同的回應,來與特定視頻播放器兼容,為此,互聯網廣告署(IAB)開發了視頻廣告投放模板 (VAST)這種 XML 模式,允許通過視頻廣告服務器提供流內視頻廣告,并在多個網站和設備上的視頻播放器中播放,不僅解決兼容性問題,還提高了視頻廣告投放的效率和可擴展性,
為幫助廣告商們更好投放廣告,華為鯨鴻動能平臺提供了HUAWEI VAST SDK的集成,目前僅支持符合VAST協議的線性廣告(投放形式為前、中、后貼片廣告),
開發準備
集成SDK
使用VAST協議時需要集成HUAWEI VAST SDK,同時如果您需要使用默認的播放器,請集成HUAWEI Player SDK,
- 配置Maven倉地址,
Android Studio的代碼庫配置在Gradle 插件7.0以下版本、7.0版本和7.1及以上版本有所不同,請根據您當前的Gradle 插件版本,選擇對應的配置程序,
以7.0版本為例:
a) 打開Android Studio專案級“build.gradle”檔案,

b) 添加Maven代碼庫,
在“buildscript > repositories”中配置Maven倉地址,
buildscript {
repositories {
google()
jcenter()
// 配置鯨鴻動能SDK的Maven倉地址
maven {url 'https://developer.huawei.com/repo/'}
}
}
c) 打開專案級“settings.gradle”檔案,配置Maven倉地址,
dependencyResolutionManagement {
...
repositories {
google()
jcenter()
// 配置鯨鴻動能SDK的Maven倉地址
maven {url 'https://developer.huawei.com/repo/'}
}
}
配置網路權限
在targetSdkVersion 28及以上的手機上允許HTTP(S)網路請求,在“AndroidManifest.xml”做以下配置,
<application
...
android:usesCleartextTraffic="true"
>
...
</application>
配置混淆腳本
您編譯APK前需要配置混淆組態檔,避免混淆HUAWEI VAST SDK導致功能例外,
打開Android工程應用級根目錄下的“proguard-rules.pro”混淆組態檔,加入排除HUAWEI VAST SDK的混淆配置,
-keep class com.huawei.openalliance.ad.** { *; }
-keep class com.huawei.hms.ads.** { *; }
初始化SDK
初始化HUAWEI VAST SDK
集成HUAWEI VAST SDK后,在應用的DemoApplication類中,初始化HUAWEI VAST SDK,
// 當用戶同意廣告服務獲取資料時,呼叫下面的方法
SdkFactory.userAcceptAdLicense(true);
開發步驟
實作VAST廣告
使用默認播放器播放線性廣告
播放線性廣告可以使用默認的播放器,也可使用您實作的自定義播放器,
- 在XML檔案中,初始化播放器的布局,示例代碼如下:
<FrameLayout
android:id="@+id/fl_linear_ad"
android:layout_
android:layout_height="250dp"
android:background="@android:color/black"
android:visibility="gone"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true" />
```
2. 生成默認的廣告播放控制器,注冊線性廣告視圖,示例代碼如下:
private void registerLinearAdView() {
mLinearAdView = findViewById(R.id.fl_linear_ad);
mProgressBar = findViewById(R.id.progress);
VastAdPlayer.getInstance().registerLinearAdView(mLinearAdView, getController());
}
private BaseVideoController getController() {
return mAdConfig.isCustomVideoPlayer() ? new DefaultVideoController(this) : new CustomVideoController(this);
}
3. 請求播放線性廣告,示例代碼如下:
VastAdPlayer.getInstance().startLinearAd(linearAdSlot, new AdsRequestListener() {
@Override
public void onSuccess(View view, int responseCode) {
}
@Override
public void onFailed(View view, int responseCode) {
}
@Override
public void playAdReady() {
mLinearAdView.setVisibility(View.VISIBLE);
}
@Override
public void playAdFinish() {
mLinearAdView.setVisibility(View.INVISIBLE);
}
@Override
public void onBufferStart() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
public void onBufferEnd() {
mProgressBar.setVisibility(View.INVISIBLE);
}
});
#### 使用自定義播放器播放線性廣告
1. 在XML檔案中,初始化播放器的布局,示例代碼如下:
<framelayout android:id="@+id/fl_linear_ad" android:layout_ android:layout_height="250dp" android:background="@android:color/black" android:visibility="gone" android:layout_alignparentend="true" android:layout_alignparentstart="true" android:layout_alignparenttop="true">
```
- 實作自定義的廣告播放器控制器,示例代碼如下:
public class CustomVideoController extends BaseVideoController implements VastPlayerListener {
public CustomVideoController(Context context) {
this(context, null);
}
public CustomVideoController(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CustomVideoController(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView();
}
@Override
public int getLayoutId() {
return R.layout.activity_video_player;
}
private void initView(){
...
}
}
- 生成自定義的廣告播放器控制器,注冊線性廣告視圖,示例代碼如下:
private void registerLinearAdView() {
mLinearAdView = findViewById(R.id.fl_linear_ad);
mProgressBar = findViewById(R.id.progress);
VastAdPlayer.getInstance().registerLinearAdView(mLinearAdView, getController());
}
private BaseVideoController getController() {
return mAdConfig.isCustomVideoPlayer() ? new DefaultVideoController(this) : new CustomVideoController(this);
}
- 請求播放線性廣告,示例代碼如下:
VastAdPlayer.getInstance().startLinearAd(linearAdSlot, new AdsRequestListener() {
@Override
public void onSuccess(View view, int responseCode) {
}
@Override
public void onFailed(View view, int responseCode) {
}
@Override
public void playAdReady() {
mLinearAdView.setVisibility(View.VISIBLE);
}
@Override
public void playAdFinish() {
mLinearAdView.setVisibility(View.INVISIBLE);
}
@Override
public void onBufferStart() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
public void onBufferEnd() {
mProgressBar.setVisibility(View.INVISIBLE);
}
});
播放廣告莢
廣告莢的播放與線性廣告的播放,只在使用自定義播放器請求播放廣告步驟4中有區別,請求播放廣告莢的示例代碼如下:
VastAdPlayer.getInstance().startAdPods(linearAdSlot, new AdsRequestListener() {
@Override
public void onSuccess(View view, int responseCode) {
}
@Override
public void onFailed(View view, int responseCode) {
}
@Override
public void playAdReady() {
mLinearAdView.setVisibility(View.VISIBLE);
}
@Override
public void playAdFinish() {
mLinearAdView.setVisibility(View.INVISIBLE);
}
@Override
public void onBufferStart() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
public void onBufferEnd() {
mProgressBar.setVisibility(View.INVISIBLE);
}
});
測驗VAST廣告
您需要使用專門的測驗廣告位ID來獲取測驗廣告,以避免在測驗程序中產生無效的廣告點擊量,測驗廣告位ID,僅可用于調測廣告功能,不可用于廣告變現,在應用正式發布前需替換為正式的廣告位ID,您應在應用發布前先進入流量變現官網,點擊“開始變現”,登錄鯨鴻動能媒體服務平臺,申請正式的廣告位ID并替換測驗廣告位ID,具體操作詳情請參見展示位創建,以下表格中提供了VAST廣告的專用測驗廣告位ID:

下載VAST廣告的示例代碼并運行,可以看到如下效果圖:

了解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導檔案
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間了解 HMS Core 最新技術資訊~
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/550074.html
標籤:其他
