HUAWEI Ads原生廣告介紹

來(lái)源: 華為開(kāi)發(fā)者聯(lián)盟官網(wǎng)
作者:華為開(kāi)發(fā)者聯(lián)盟官網(wǎng)
時(shí)間:2020-12-10
17606
原生廣告是創(chuàng)建與應(yīng)用內(nèi)容融于一體的廣告形式,支持您自由定制界面。

MjhhNjFkOC5qcGVn.jpg

原生廣告

原生廣告是創(chuàng)建與應(yīng)用內(nèi)容融于一體的廣告形式,支持您自由定制界面。

0000000000011111111.20201208194807.69471833786743223407748925014258_50511209010029_2800_9D03BC081FF4C577BCD3F12DA19775411516EFF1D65F5F3EB8BFBDC96C0AD53C.png

添加原生廣告

原生廣告需要通過(guò)NativeAdLoader類(lèi)獲取。

1.構(gòu)建NativeAdLoader。

NativeAdLoader類(lèi)提供了NativeAdLoader.Builder類(lèi),可用于設(shè)置廣告位ID、設(shè)置自定義選項(xiàng)和構(gòu)建NativeAdLoader對(duì)象。

示例代碼如下所示:

// "testy63txaom86"為專(zhuān)用的測(cè)試廣告位ID,App正式發(fā)布時(shí)需要改為正式的廣告位ID

NativeAdLoader.Builder builder = new NativeAdLoader.Builder(this, "testy63txaom86");

builder.setNativeAdLoadedListener(new NativeAd.NativeAdLoadedListener() {

    @Override

    public void onNativeAdLoaded(NativeAd nativeAd) {

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

        ...

    }

}).setAdListener(new AdListener() {

    @Override

    public void onAdFailed(int errorCode) {

        // 廣告獲取失敗時(shí)調(diào)用

        ...

    }

});

NativeAdLoader nativeAdLoader = builder.build();

當(dāng)獲取廣告成功后,SDK會(huì)調(diào)用NativeAd.NativeAdLoadedListener監(jiān)聽(tīng)器的onNativeAdLoaded()方法返回NativeAd對(duì)象。

當(dāng)獲取廣告失敗后,SDK會(huì)調(diào)用AdListener監(jiān)聽(tīng)器的onAdFailed()方法。

2.獲取廣告。

NativeAdLoader提供loadAd()和loadAds()兩種方法獲取廣告。

·loadAd()請(qǐng)求單個(gè)原生廣告。

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

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

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

·loadAds()請(qǐng)求多個(gè)原生廣告。

loadAds()請(qǐng)求有兩個(gè)參數(shù),除AdParam外,還有請(qǐng)求加載的廣告數(shù)量,最大為5。SDK返回的廣告數(shù)量將會(huì)小于等于所請(qǐng)求的廣告數(shù)量,并且廣告皆不相同。

代碼如下所示:

nativeAdLoader.loadAds(new AdParam.Builder().build(),5);

調(diào)用loadAds()后,監(jiān)聽(tīng)器將會(huì)根據(jù)返回的廣告?zhèn)€數(shù)進(jìn)行多次回調(diào)。請(qǐng)求多個(gè)廣告時(shí),可以在回調(diào)代碼中使用NativeAdLoader.isLoading()方法來(lái)判斷廣告是否已獲取完成。代碼如下所示:

// "testy63txaom86"為專(zhuān)用的測(cè)試廣告位ID,App正式發(fā)布時(shí)需要改為正式的廣告位ID

NativeAdLoader.Builder builder = new NativeAdLoader.Builder(this, "testy63txaom86");

NativeAdLoader nativeAdLoader = builder.setNativeAdLoadedListener(new NativeAd.NativeAdLoadedListener() {

    @Override

    public void onNativeAdLoaded(NativeAd nativeAd) {

        if (nativeAdLoader.isLoading()) {

            // nativeAdLoader仍在獲取廣告

            ...

        } else {

            // nativeAdLoader完成廣告獲取

            ...

        }

    }

}).build();

nativeAdLoader.loadAds(new AdParam.Builder().build(), 5);

說(shuō)明

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

3.展示原生廣告。

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

以下是展示原生廣告的步驟:

a.定義原生廣告布局。

需要自定義一個(gè)布局用于展示NativeAd中的素材。

說(shuō)明

必須將NativeView作為原生廣告的根布局,否則會(huì)影響廣告收益。

對(duì)于使用RelativeLayout來(lái)展示素材視圖的原生廣告,其視圖層次結(jié)構(gòu)示例如下:

<com.huawei.hms.ads.nativead.NativeView xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    ... >

    <RelativeLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        ... >

        <!-- 多媒體視圖 -->

        <com.huawei.hms.ads.nativead.MediaView

            android:id="@+id/ad_media"

            android:layout_width="75dp"

            android:layout_height="50dp"

            ... />

        <RelativeLayout

            ... >

        <TextView

            android:id="@+id/ad_title"

            android:layout_width="match_parent"

            android:layout_height="34dp"

            ...  />

        <!-- 其他素材 -->

        ...

        </RelativeLayout>

        <!-- 其他素材 -->

        ...

    </RelativeLayout>

</com.huawei.hms.ads.nativead.NativeView>

b.注冊(cè)和填充素材視圖。

獲取到NativeView對(duì)象后,需要注冊(cè)和填充素材。

注冊(cè)和填充標(biāo)題、多媒體的示例代碼如下:

private void initNativeAdView(NativeAd nativeAd, NativeView nativeView) {

    // 注冊(cè)和填充標(biāo)題素材視圖

    nativeView.setTitleView(nativeView.findViewById(R.id.ad_title));

    ((TextView) nativeView.getTitleView()).setText(nativeAd.getTitle());

    // 注冊(cè)和填充多媒體素材視圖

    nativeView.setMediaView((MediaView) nativeView.findViewById(R.id.ad_media));

    nativeView.getMediaView().setMediaContent(nativeAd.getMediaContent());

    // 注冊(cè)和填充其他素材視圖

    nativeView.setAdSourceView(nativeView.findViewById(R.id.ad_source));

    nativeView.setCallToActionView(nativeView.findViewById(R.id.ad_call_to_action));

    if (null != nativeAd.getAdSource()) {

        ((TextView) nativeView.getAdSourceView()).setText(nativeAd.getAdSource());

    }

    nativeView.getAdSourceView()

            .setVisibility(null != nativeAd.getAdSource() ? View.VISIBLE : View.INVISIBLE);

    if (null != nativeAd.getCallToAction()) {

        ((Button) nativeView.getCallToActionView()).setText(nativeAd.getCallToAction());

    }

    nativeView.getCallToActionView()

            .setVisibility(null != nativeAd.getCallToAction() ? View.VISIBLE : View.INVISIBLE);

 

    // 注冊(cè)原生廣告對(duì)象

    nativeView.setNativeAd(nativeAd);

}

依次設(shè)置其他要展示的廣告素材。

MediaView用于展示多媒體素材。如果獲取的廣告含有視頻素材,則視頻會(huì)在MediaView內(nèi)播放。否則MediaView會(huì)顯示一個(gè)圖片素材。

c.向NativeView注冊(cè)原生廣告對(duì)象。

示例代碼如下:

nativeView.setNativeAd(nativeAd);

d.展示NativeView。

將NativeView添加到界面即可展示原生廣告。示例代碼如下:


private void loadAd() {

    NativeAdLoader.Builder builder = new NativeAdLoader.Builder(this, "testy63txaom86");

    builder.setNativeAdLoadedListener(new NativeAd.NativeAdLoadedListener() {

        @Override

        public void onNativeAdLoaded(NativeAd nativeAd) {

            ...

            // 獲取NativeView視圖

            NativeView nativeView = (NativeView) getLayoutInflater().inflate(R.layout.ad_native, null);

            // 注冊(cè)和填充原生廣告素材視圖

            initNativeAdView(nativeAd, nativeView);

            // 將NativeView添加到界面

            FrameLayout adFrameLayout = findViewById(R.id.frame_layout_ad);

            adFrameLayout.removeAllViews();

            adFrameLayout.addView(nativeView);

            ...

        }

    });

    ...

}

private void initNativeAdView(NativeAd nativeAd, NativeView nativeView) {

    // 注冊(cè)和填充標(biāo)題素材視圖

    nativeView.setTitleView(nativeView.findViewById(R.id.ad_title));

    ((TextView) nativeView.getTitleView()).setText(nativeAd.getTitle());

    // 注冊(cè)和填充多媒體素材視圖

    nativeView.setMediaView((MediaView) nativeView.findViewById(R.id.ad_media));

    nativeView.getMediaView().setMediaContent(nativeAd.getMediaContent());

    // 注冊(cè)和填充其他素材視圖

    ...

    // 注冊(cè)原生廣告對(duì)象

    nativeView.setNativeAd(nativeAd);

}


4.(可選)監(jiān)聽(tīng)廣告事件。

為原生廣告添加事件監(jiān)聽(tīng)器的示例代碼如下:

NativeAdLoader nativeAdLoader = builder.setAdListener(new AdListener() {

    @Override

    public void onAdClicked() {

        // 廣告點(diǎn)擊時(shí)調(diào)用

        ...

    }

    ...

}).build();

5.銷(xiāo)毀廣告。

當(dāng)原生廣告不再展示時(shí),應(yīng)將其銷(xiāo)毀。

nativeAd.destroy();

原生視頻廣告

原生廣告除了包含圖片、文字外,還可能會(huì)包含視頻素材。HUAWEI Ads SDK還提供了以下兩個(gè)類(lèi)用于視頻的配置和控制。

VideoConfiguration

通過(guò)VideoConfiguration類(lèi),可以對(duì)原生視頻進(jìn)行相關(guān)配置。示例代碼如下:

// "testy63txaom86"為專(zhuān)用的測(cè)試廣告位ID,App正式發(fā)布時(shí)需要改為正式的廣告位ID

NativeAdLoader.Builder builder = new NativeAdLoader.Builder(this, "testy63txaom86");

// 設(shè)置是否在靜音狀態(tài)下開(kāi)始播放視頻素材,其默認(rèn)值為true

VideoConfiguration videoConfiguration = new VideoConfiguration.Builder()

        .setStartMuted(true)

        .build();

NativeAdConfiguration adConfiguration = new NativeAdConfiguration.Builder()

        .setVideoConfiguration(videoConfiguration)

        .build();

builder.setNativeAdOptions(adConfiguration);

VideoOperator

VideoOperator類(lèi)用于視頻信息獲取和視頻控制??刂破鲗?shí)例需要通過(guò)調(diào)用NativeAd.getVideoOperator()方法獲得。當(dāng)廣告中沒(méi)有視頻素材時(shí),此方法也會(huì)返回VideoOperator對(duì)象。

VideoOperator videoOperator=nativeAd.getVideoOperator();

VideoOperator提供hasVideo()方法判斷廣告中是否有視頻素材。

通過(guò)實(shí)現(xiàn)VideoOperator.VideoLifecycleListener類(lèi)可以監(jiān)聽(tīng)視頻播放過(guò)程中的事件。

videoOperator.setVideoLifecycleListener(new VideoOperator.VideoLifecycleListener() {

    @Override

    public void onVideoEnd() {

        // 視頻播放完時(shí)調(diào)用

        ...

        super.onVideoEnd();

    }

    ...

});

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于華為開(kāi)發(fā)者聯(lián)盟官網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀(guān)點(diǎn),不代表快出海對(duì)觀(guān)點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
小游戲,大買(mǎi)賣(mài) | HUAWEI Ads助力廣告主突破中東非市場(chǎng)
小游戲,大買(mǎi)賣(mài) | HUAWEI Ads助力廣告主突破中東非市場(chǎng)
目前,中東非游戲市場(chǎng)種類(lèi)和數(shù)量繁多,其中射擊、經(jīng)營(yíng)、跑酷、消除、解密等休閑類(lèi)小游戲深受大眾喜歡,這些游戲有著玩法簡(jiǎn)單、容易上手、時(shí)間碎片化、廣告能變現(xiàn)等特點(diǎn)。市場(chǎng)潛力巨大。
HUAWEI Ads
中東
2022-08-022022-08-02
HUAWEI Ads智能客服上線(xiàn)啦
HUAWEI Ads智能客服上線(xiàn)啦
HUAWEI Ads智能客服上線(xiàn)啦,有什么問(wèn)題都可以解答。
HUAWEI Ads
2022-04-062022-04-06
Meta AI嘗試解決維基百科人物傳記所存在的性別偏見(jiàn)問(wèn)題
Meta AI嘗試解決維基百科人物傳記所存在的性別偏見(jiàn)問(wèn)題
Meta研究人員創(chuàng)建人工智能系統(tǒng),來(lái)編寫(xiě)出維基百科風(fēng)格的傳記草稿,使得維基百科編輯能夠以最少的編輯,在維基百科上提供女性人物的傳記,以補(bǔ)充目前維基百科上,男女性人物傳記數(shù)量失衡的狀況。
AI
Meta
2022-04-022022-04-02
海外廣告業(yè)務(wù)合規(guī)化,HUAWEI Ads通過(guò)IAB歐洲透明度和同意框架CMP認(rèn)證
海外廣告業(yè)務(wù)合規(guī)化,HUAWEI Ads通過(guò)IAB歐洲透明度和同意框架CMP認(rèn)證
繼HUAWEI Ads平臺(tái)于2020年加入TCF v2.0的全球供應(yīng)商列表(Global Vendor List,供應(yīng)商ID856)積極推動(dòng)程序化廣告生態(tài)鏈標(biāo)準(zhǔn)化建設(shè)之后,2022年3月,HUAWEI Ads順利通過(guò)IAB歐洲透明度和同意框架CMP認(rèn)證(CMP ID 386),成為國(guó)內(nèi)首家具備在海外市場(chǎng)提供CMP服務(wù)的廣告平臺(tái)。
HUAWEI Ads
廣告行業(yè)
2022-03-282022-03-28
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪(fǎng)
投稿采訪(fǎng)
出海管家
出海管家