HUAWEI Ads原生广告介绍

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:华为开发者联盟官网网络

小提示:您能找到这篇{HUAWEI Ads原生广告介绍}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的HUAWEI Ads原生广告介绍内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< font-size: 16px;">< ">

< font-size: 16px;">< ">原生广告

< font-size: 16px;">原生广告是创建与应用内容融于一体的广告形式,支持您自由定制界面。

< font-size: 16px;">< font-size: 18px;">添加原生广告

< font-size: 16px;">原生广告需要通过NativeAdLoader类获取。

< font-size: 16px;">1.构建NativeAdLoader。

< font-size: 16px;">NativeAdLoader类提供了NativeAdLoader.Builder类,可用于设置广告位ID、设置自定义选项和构建NativeAdLoader对象。

< font-size: 16px;">示例代码如下所示:

// "testy63txaom86"为专用的测试广告位ID,App正式发布时需要改为正式的广告位ID

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

builder.setNativeAdLoadedListener(new NativeAd.NativeAdLoadedListener() {

    @Override

    public void onNativeAdLoaded(NativeAd nativeAd) {

        // 广告获取完成后调用

        ...

    }

}).setAdListener(new AdListener() {

    @Override

    public void onAdFailed(int errorCode) {

        // 广告获取失败时调用

        ...

    }

});

NativeAdLoader nativeAdLoader = builder.build();

< font-size: 16px;">当获取广告成功后,SDK会调用NativeAd.NativeAdLoadedListener监听器的onNativeAdLoaded()方法返回NativeAd对象。

< font-size: 16px;">当获取广告失败后,SDK会调用AdListener监听器的onAdFailed()方法。

< font-size: 16px;">2.获取广告。

< font-size: 16px;">NativeAdLoader提供loadAd()和loadAds()两种方法获取广告。

< font-size: 16px;">loadAd()请求单个原生广告。

< font-size: 16px;">AdParam是唯一的参数,代码如下所示:

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

< font-size: 16px;">调用loadAd()后,SDK将对添加的监听器方法进行一次成功或失败的回调。

< font-size: 16px;">loadAds()请求多个原生广告。

< font-size: 16px;">loadAds()请求有两个参数,除AdParam外,还有请求加载的广告数量,最大为5。SDK返回的广告数量将会小于等于所请求的广告数量,并且广告皆不相同。

< font-size: 16px;">代码如下所示:

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

< font-size: 16px;">调用loadAds()后,监听器将会根据返回的广告个数进行多次回调。请求多个广告时,可以在回调代码中使用NativeAdLoader.isLoading()方法来判断广告是否已获取完成。代码如下所示:

// "testy63txaom86"为专用的测试广告位ID,App正式发布时需要改为正式的广告位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);

< font-size: 16px;">说明

< font-size: 16px;">再次使用NativeAdLoader获取广告前,请确保先前的请求已经完成。

< font-size: 16px;">3.展示原生广告。

< font-size: 16px;">获取到广告后在监听器的回调方法中展示原生广告,需要在每个广告视图的一角展示“为什么看到此广告”的图标“i”或者“不再显示该广告”的图标“x”,并且必须展示广告标识。



< font-size: 16px;">以下是展示原生广告的步骤:

< font-size: 16px;">a.定义原生广告布局。

< font-size: 16px;">需要自定义一个布局用于展示NativeAd中的素材。

< font-size: 16px;">说明

< font-size: 16px;">必须将NativeView作为原生广告的根布局,否则会影响广告收益。

< font-size: 16px;">对于使用RelativeLayout来展示素材视图的原生广告,其视图层次结构示例如下:

<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>

< font-size: 16px;">b.注册和填充素材视图。

< font-size: 16px;">获取到NativeView对象后,需要注册和填充素材。

< font-size: 16px;">注册和填充标题、多媒体的示例代码如下:

private void initNativeAdView(NativeAd nativeAd, NativeView nativeView) {

    // 注册和填充标题素材视图

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

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

    // 注册和填充多媒体素材视图

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

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

    // 注册和填充其他素材视图

    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);

 

    // 注册原生广告对象

    nativeView.setNativeAd(nativeAd);

}

< font-size: 16px;">依次设置其他要展示的广告素材。

< font-size: 16px;">MediaView用于展示多媒体素材。如果获取的广告含有视频素材,则视频会在MediaView内播放。否则MediaView会显示一个图片素材。

< font-size: 16px;">c.向NativeView注册原生广告对象。

< font-size: 16px;">示例代码如下:

nativeView.setNativeAd(nativeAd);

< font-size: 16px;">d.展示NativeView。

< font-size: 16px;">将NativeView添加到界面即可展示原生广告。示例代码如下:


private void loadAd() {

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

    builder.setNativeAdLoadedListener(new NativeAd.NativeAdLoadedListener() {

        @Override

        public void onNativeAdLoaded(NativeAd nativeAd) {

            ...

    &nb长沙网站推广公司sp;       // 获取NativeView视图

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



            // 注册和填充原生广告素材视图

            initNativeAdView(nativeAd, nativeView);

            // 将NativeView添加到界面

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

            adFrameLayout.removeAllViews();

            adFrameLayout.addView(nativeView);

            ...

        }

    });

    ...

}

private void initNativeAdView(NativeAd nativeAd, NativeView nativeView) {

    // 注册和填充标题素材视图

    nativeView.setTitleView(nativeView.findViewById(R.id.ad_title宣传片拍摄的影视公司));

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

    // 注册和填充多媒体素材视图

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

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

    // 注册和填充其他素材视图

    ...

    // 注册原生广告对象

    nativeView.setNativeAd(nativeAd);

}


< font-size: 16px;">4.(可选)监听广告事件。

< font-size: 16px;">为原生广告添加事件监听器的示例代码如下:

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

    @Override

    public void onAdClicked() {

        // 广告点击时调用

        ...

    }

    ...

}).build();

< font-size: 16px;">5.销毁广告。

< font-size: 16px;">当原生广告不再展示时,应将其销毁。

nativeAd.destroy();

< font-size: 16px;">< font-size: 18px;">原生视频广告

< font-size: 16px;">原生广告除了包含图片、文字外,还可能会包含视频素材。HUAWEI Ads SDK还提供了以下两个类用于视频的配置和控制。

< font-size: 16px;">< font-size: 18px;">VideoConfiguration

< font-size: 16px;">通过VideoConfiguration类,可以对原生视频进行相关配置。示例代码如下:

// "testy63txaom86"为专用的测试广告位ID,App正式发布时需要改为正式的广告位ID

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

// 设置是否在静音状态下开始播放视频素材,其默认值为true

VideoConfiguration videoConfiguration = new VideoConfiguration.Builder()

        .setStartMuted(true)

        .build();

NativeAdConfiguration adConfiguration = new NativeAdConfiguration.Builder()

        .setVideoConfiguration(videoConfiguration)

        .build();

builder.setNativeAdOptions(adConfiguration);

< font-size: 16px;">< font-size: 18px;">VideoOperator

< font-size: 16px;">VideoOperator类用于视频信息获取和视频控制。控制器实例需要通过调用NativeAd.getVideoOperator()方法获得。当广告中没有视频素材时,此方法也会返回VideoOperator对象。

VideoOperator videoOperator=nativeAd.getVideoOperator();

< font-size: 16px;">VideoOperator提供hasVideo()方法判断广告中是否有视频素材。

< font-size: 16px;">通过实现VideoOperator.VideoLifecycleListener类可以监听视频播放过程中的事件。

videoOperator.setVideoLifecycleListener(new VideoOperator.VideoLifecycleListener() {

    @Override

    public void onVideoEnd() {

        // 视频播放完时调用

        ...

        super.onVideoEnd();

    }

    ...

});

HUAWEI Ads原生广告介绍

上一篇:HUAWEI Ads原生广告设置
下一篇:HUAWEI Ads原生广告模板


版权声明:以上主题为“HUAWEI Ads原生广告介绍"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    HUAWEI Ads原生广告介绍
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“HUAWEI Ads原生广告介绍”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通HUAWEI Ads原生广告介绍的相关事宜。

关键词:HUAWEI Ads原生广告介绍,HU

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号