HUAWEI Ads貼片廣告

來源: 華為開發(fā)者聯(lián)盟官網(wǎng)
作者:華為開發(fā)者聯(lián)盟官網(wǎng)
時間:2020-12-15
17567
貼片廣告是一種在視頻播放過程中插入的視頻或圖片廣告。

貼片廣告

貼片廣告是一種在視頻播放過程中插入的視頻或圖片廣告。

0000000000011111111.20201208194811.75090024120271453348673262172139_50511209010030_2800_164EE527C6E41EE14CCA0CB7C92196CE4912597C0611B79319DF5706F40C8B06.png

添加貼片廣告

貼片廣告需要通過InstreamAdLoader類獲取。

1.創(chuàng)建InstreamAdLoader。

InstreamAdLoader類提供了InstreamAdLoader.Builder類,可用于設置廣告位ID、設置自定義選項和創(chuàng)建InstreamAdLoader對象。

示例代碼如下所示:

// "testy3cglm3pj0"為專用的測試廣告位ID,App正式發(fā)布時需要改為正式的廣告位ID

InstreamAdLoader.Builder builder = new InstreamAdLoader.Builder(context, "testy3cglm3pj0");

// 設置貼片最大時長

InstreamAdLoader adLoader = builder.setTotalDuration(totalDuration)

        // 設置貼片返回的最大數(shù)量

        .setMaxCount(maxCount)

        .setInstreamAdLoadListener(new InstreamAdLoadListener() {

            @Override

            public void onAdLoaded(List<InstreamAd> ads) {

                // 廣告獲取成功后調(diào)用

                ...

            }

 

            @Override

            public void onAdFailed(int errorCode) {

                // 廣告獲取失敗后調(diào)用

                ...

            }

        }).build();

當獲取廣告成功后,SDK會調(diào)用InstreamAdLoadListener監(jiān)聽器的onAdLoaded()方法返回的InstreamAd對象列表。

當獲取廣告失敗后,SDK會調(diào)用InstreamAdLoadListener監(jiān)聽器的onAdFailed()方法。

說明

您需要根據(jù)視頻時長合理設置貼片的最大時長以及貼片的數(shù)量,HUAWEI Ads會根據(jù)設置的最大時長和貼數(shù)返回合適數(shù)量的貼片廣告。

比如設置最大時長60秒,最大貼數(shù)8,則最多返回4貼15秒或2貼30秒的廣告。設置最大時長120秒,最大貼數(shù)4,則最多只會返回4貼總時長不會超過120秒的廣告。

2.獲取廣告。

InstreamAdLoader提供loadAd()方法獲取廣告。

AdParam是唯一的參數(shù),代碼如下所示:

InstreamAdLoader.loadAd(new AdParam.Builder().build());

調(diào)用loadAd()后,SDK將對添加的監(jiān)聽器方法進行一次成功或失敗的回調(diào)。

說明

再次使用InstreamAdLoader獲取廣告前,請確保先前的請求已經(jīng)完成。

3.展示貼片廣告。

獲取到廣告后在監(jiān)聽器的回調(diào)方法中展示貼片廣告,需要在每個廣告視圖的一角展示“為什么看到此廣告”的圖標“i”或者“不再顯示該廣告”的圖標“x”,并且必須展示廣告標識。

以下是展示貼片廣告的步驟:

a.定義貼片廣告布局。

需要定義一個布局用于展示InstreamAd列表中的廣告素材。

<RelativeLayout

    android:id="@+id/instream_ad_container"

    android:layout_width="match_parent"

    android:layout_height="200dp"

    android:visibility="gone">

 

    <!-- 貼片廣告視圖 -->

    <com.huawei.hms.ads.instreamad.InstreamView

        android:id="@+id/instream_view"

        android:layout_width="match_parent"

        android:layout_height="match_parent" />

 

    <!-- 跳過按鈕視圖 -->

    <TextView

        android:id="@+id/instream_skip"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        ...

        />

 

    <!-- 倒計時視圖 -->

    <TextView

        android:id="@+id/instream_count_down"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        ...

        />

 

    <!-- 廣告標識視圖 -->

    <TextView

        android:id="@+id/instream_ad_flag"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        ...

        />

 

    <!-- 為什么展示此廣告視圖 -->

    <ImageView

        android:id="@+id/instream_why_this_ad"

        android:layout_width="14dp"

        android:layout_height="14dp"

        ...

        />

 

    <!-- 點擊廣告跳轉(zhuǎn)按鈕 -->

    <TextView

        android:id="@+id/instream_call_to_action"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        ...

        />

</RelativeLayout>

說明

您需要結合您的視頻播放的布局來設計相應的貼片廣告布局,如貼片廣告布局的寬高及各個視圖控件的展示位置。

b.注冊廣告到廣告視圖。

獲取到InstreamAd對象列表后,需要將廣告注冊到廣告視圖。

示例代碼如下:

instreamView.setInstreamAds(ads);

c.監(jiān)聽廣告狀態(tài)。

貼片廣告提供了InstreamMediaStateListener、InstreamMediaChangeListener和MediaMuteListener來監(jiān)聽貼片廣告狀態(tài)。示例代碼如下:

instreamView.setInstreamMediaChangeListener(new InstreamMediaChangeListener(){

    @Override

    public void onSegmentMediaChange(InstreamAd ad) {

        // 廣告媒體切換

        ...

    }

});

 

instreamView.setInstreamMediaStateListener(new InstreamMediaStateListener() {

    @Override

    public void onMediaProgress(int percent, int playTime) {

        // 播放過程

        ...

    }

 

    @Override

    public void onMediaStart(int playTime) {

        // 播放開始

        ...

    }

 

    @Override

    public void onMediaPause(int playTime) {

        // 播放暫停

        ...

    }

 

    @Override

    public void onMediaStop(int playTime) {

        // 播放停止

        ...

    }

 

    @Override

    public void onMediaCompletion(int playTime) {

        // 播放完成

        ...

    }

 

    @Override

    public void onMediaError(int playTime, int errorCode, int extra) {

        // 播放錯誤

        ...

    }

});

 

instreamView.setMediaMuteListener(new MediaMuteListener() {

    @Override

    public void onMute() {

        // 貼片廣告靜音

        ...

    }

 

    @Override

    public void onUnmute() {

        // 貼片廣告取消靜音

        ...

    }

});

4.銷毀廣告。

當貼片廣告展示結束時,應將貼片廣告視圖銷毀。

instreamView.destroy();

測試貼片廣告

測試貼片廣告時,需要使用專門的測試廣告位ID來獲取測試廣告,以避免在測試過程中產(chǎn)生無效的廣告點擊量。

測試廣告位ID僅作為功能調(diào)試使用,不可用于廣告變現(xiàn)。您需要在應用發(fā)布前申請正式的廣告位ID,并替換測試廣告位ID。

以下表格中提供了貼片廣告的專用測試廣告位ID:

1608018923(1).png

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

1608018962(1).png

另外您也可以通過學習Codelab中的教程來集成貼片廣告。

立即登錄,閱讀全文
版權說明:
本文內(nèi)容來自于華為開發(fā)者聯(lián)盟官網(wǎng),本站不擁有所有權,不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多