HUAWEI Ads的用户意见征求

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

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

< ">

< ">在法律有相应要求的情况下,您必须征得用户的同意才能使用其个人数据(例如OAID)来投放广告。

< ">HUAWEI Ads平台投放的广告包括个性化广告和非个性化广告。为了征求用户意见,HUAWEI Ads平台提供了Consent SDK。

< ">本章节介绍了如何使用Consent SDK征求用户意见,以及在征得用户意见后如何根据用户意见获取广告。

< ">Consent SDK使用

< ">1.集成Consent SDK。

< ">a.在项目级build.gradle文件中配置Maven仓地址:

buildscript {

    repositories {

        google()

        jcenter()

        //配置Consent SDK的Maven仓地址

        maven { url 'https://developer.huawei.com/repo/' }

    }

    ...

}

allprojects {

    repositories {

        google()

        jcenter()

        //配置Consent SDK的Maven仓地址

        maven { url 'https://developer.huawei.com/repo/' }

    }

}

< ">b.在应用级的build.gradle文件中添加编译依赖:



< ">c.将{version}替换为实际的版本号,版本号索引请参见版本更新说明,修改如下:

dependencies {

    implementation 'com.huawei.hms:ads-consent:3.4.39.302'

}

< ">在完成以上的配置后,点击工具栏中的gradle同步图标,完成“build.gradle”文件的同步,将相关依赖下载到本地。

< ">2.更新用户意见状态。

< ">使用Consent SDK时,应确保Consent SDK获得的是HUAWEI Ads平台广告技术提供商的最新信息。如果在征求用户意见后,广告技术提供商的列表发生改变,则Consent SDK会自动将用户意见置为未知状态。因此在每次启动应用时都必须通过调用requestConsentUpdate()方法确定用户的意见状态。

< ">示例代码如下所示:

Java

...

import com.huawei.hms.ads.consent.*;

...

public class ConsentActivity extends AppCompatActivity {

    ...

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        ...

        // 检查consent状态

        checkConsentStatus();

        ...

    }

    ...

    private void checkConsentStatus() {

        ...

        Consent consentInfo = Consent.getInstance(this);

        ...

        consentInfo.requestConsentUpdate(new ConsentUpdateListener() {

            @Override

            public void onSuccess(ConsentStatus consentStatus, boolean isNeedConsent, List<AdProvider> adProviders) {

                // 获取用户意见状态成功

                ...

            }

            @Override

            public void onFail(String errorDescription) {

                // 获取用户意见状态失败

                ...

            }

        });

       ...

    }

    ...

}

Kotlin

...

import com.huawei.hms.ads.consent.*

...

class ConsentActivity : BaseActivity() {

    ...

    override fun onCreate(savedInstanceState: Bundle?) {

        ...

        // 检查consent状态

        checkConsentStatus()

        ...

    }

    ...

    private fun checkConsentStatus() {

        ...

        val consentInfo = Consent.getInstance(this)

        ...

        consentInfo.requestConsentUpdate(object : ConsentUpdateListener {

            override fun onSuccess(consentStatus: ConsentStatus, isNeedConsent: Boolean, adProviders: List<AdProvider>) {

                // 获取用户意见状态成功

                ...

            }

            override fun onFail(errorDescription: String) {

                // 获取用户意见状态失败

                ...

            }

        })

       ...

    }

    ...

}

< ">如果成功更新用户意见信息,那么会通过ConsentUpdateListener的onSuccess()方法提供更新后的用户意见状态参数consentStatus、是否需要Consent参数isNeedConsent和广告技术提供商的adProviders列表。

< ">ConsentStatus具有以下三种状态:

< ">如果回调参数isNeedConsent取值为false,则表明可以向HUAWEI Ads SDK请求个性化广告。

< ">如果回调参数isNeedConsent取值为true,则表明该用户在欧洲经济区内或其他敏感地区内,需要进一步确认用户意见。

< ">当返回的ConsentStatus为PERSONALIZED或NON_PERSONALIZED,则表明已征求过用户意见,不需要再次征求。

< ">当返回的ConsentStatus为UNKNOWN,则需要通过弹框等方式征求用户意见。

< ">如果ConsentUpdateListener返回onFail()时,则直接请求非个性化广告。

< ">AdProvider为广告技术提供商信息,参数定义如下:

< ">说明

< ">requestConsentUpdate()方法每次会请求网络以更新广告技术提供商列表,为了保障用户体验,媒体可以自行实现超时控制。

< ">3.征求用户意见。

< ">您需要通过弹框等方式向用户征求意见,并展示广告技术提供商的完整列表。以下是通过弹框征求用户意见的样例:

< ">a.弹框征求用户意见。

< ">示例代码如下所示:

Java

...

import com.huawei.hms.ads.consent.*;

...

public class ConsentActivity extends AppCompatActivity {

    ...

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        ...

        // 检查consent状态

        checkConsentStatus();

        ...

    }

    ...

    private void checkConsentStatus() {

        ...

        Consent consentInfo = Con宣传海报设计sent.getInstance(this);

        ...

        consentInfo.requestConsentUpdate(new ConsentUpdateListener() {

            @Override

            public void onSuccess(ConsentStatus consentStatus, boolean isNeedConsent, List<AdProvider> adProviders) {

                ...

                // 此返回参数代表是否需要consent

                if (isNeedConsent) {

                    // UNKNOWN状态,需要重新收集用户信息

                    if (consentStatus == ConsentStatus.UNKNOWN) {

< ">                 < color: rgb(127, 127, 127);">   ...

                        showConsentDialog();

                    }

                    // 如果是PERSONALIZED或者NON_PERSONALIZED状态,则不需要弹框收集用户意见

                    else {

                   精准客户营销     ...

                    }

                } else {

                    ...

                }

            }

            @Override

            public void onFail(String errorDescription) {

               ...

            }

        });

        ...

    }

    ...

    private void showConsentDialog() {

        // 开始Consent弹出框处理

        ConsentDialog dialog = new ConsentDialog(this, mAdProviders);

        dialog.setCallback(this);

        dialog.setCanceledOnTouchOutside(false);

        dialog.show();

    }

}

Kotlin

...

import com.huawei.hms.ads.consent.*

...

class ConsentActivity : BaseActivity() {

    ...

    override fun onCreate(savedInstanceState: Bundle?) {

        ...

        // 检查consent状态

        checkConsentStatus()

        ...



    }

    ...

    private fun checkConsentStatus() {

        ...

        val consentInfo = Consent.getInstance(this)

        ...

        consentInfo.requestConsentUpdate(object : ConsentUpdateListener { 

            override fun onSuccess(consentStatus: ConsentStatus, isNeedConsent: Boolean, adProviders: List<AdProvider>) {

                ...

                // 此返回参数代表是否需要consent

                if (isNeedConsent) {

                    // UNKNOWN状态,需要重新收集用户信息

                    if (consentStatus == ConsentStatus.UNKNOWN) {

                    ...

                        showConsentDialog()

                    }

                    // 如果是PERSONALIZED或者NON_PERSONALIZED状态,则不需要弹框收集用户意见

                    else {

                        ...

                    }

                } else {

                    ...

                }

            }

            override fun onFail(errorDescription: String) { 

               // 获取用户意见状态失败  

               ...

            }

        })

        ...

    }

    ...

    private fun showConsentDialog() {

        // 开始Consent弹出框处理

        val dialog = ConsentDialog(this, mAdProviders)

        dialog.setCallback(this)

        dialog.setCanceledOnTouchOutside(false)

        dialog.show()

    }

}

< color: rgb(0, 0, 0);">对话框效果图如下:

点击“here”跳转至更多信息:

< ">b.展示广告技术提供商列表。

< ">您需要将广告技术提供商的名称展示给用户,并提供访问广告技术提供商隐私政策的入口。

< ">通过点击上述更多信息页面中的here链接弹出广告技术提供商列表对话框,效果如下:

< ">c.设置用户意见。

< ">征得用户意见后,请使用setConsentStatus()方法设置用户的选择。

< ">示例代码如下所示:

Java

Consent.getInstance(getApplicationContext()).setConsentStatus(ConsentStatus.PERSONALIZED);

Kotlin

Consent.getInstance(getApplicationContext()).setConsentStatus(ConsentStatus.PERSONALIZED)

< ">说明

< ">请务必让用户可以随时更改或撤消意见,并将用户更新后的意见设置给Consent SDK。

< ">d.设置“未达到法定承诺年龄用户”的标记。

< ">如果您需要针对未达到法定承诺年龄的用户请求对应的广告,则在调用requestConsentUpdate()前必须通过调用setUnderAgeOfPromise设置“未达到法定承诺年龄用户”的标记。

< ">示例代码如下所示:

Java

//设置“未达到法定承诺年龄用户”的标记

Consent.getInstance(getApplicationContext()).setUnderAgeOfPromise(true);

Kotlin

//设置“未达到法定承诺年龄用户”的标记

Consent.getInstance(getApplicationContext()).setUnderAgeOfPromise(true)

< ">一旦将此设置为true,则每次requestConsentUpdate()请求均会回调onFail(String errorDescription)方法,并提供给用户错误描述参数errorDescription,此时不需要再展示征求用户意见弹框。设置为false表明用户已达到法定承诺年龄。

< ">说明

< ">当Consent SDK设置了此标记后,在请求广告时,基于受众人群请求广告中setTagForUnderAgeOfPromise的参数应与Consent参数保持一致。

< ">4.根据用户意见获取广告。

< ">请求广告时,默认不设置setNonPersonalizedAd方法,请求个性化广告与非个性化广告。如果用户在Consent阶段没有做出选择,则只能请求非个性化广告。

< ">如果设置setNonPersonalizedAd方法且值为:

< ">ALLOW_ALL:个性化广告与非个性化广告

< ">ALLOW_NON_PERSONALIZED:非个性化广告

< ">示例代码如下所示:

Java

//setNonPersonalizedAd设置为ALLOW_NON_PERSONALIZED时,只请求非个性化广告

RequestOptions requestOptions=HwAds.getRequestOptions();

requestOptions=requestOptions.toBuilder().setNonPersonalizedAd(ALLOW_NON_PERSONALIZED).build();

HwAds.setRequestOptions(requestOptions);

AdParam adParam=new AdParam.Builder().build();

adView.loadAd(adParam);

Kotlin

//setNonPersonalizedAd设置为ALLOW_NON_PERSONALIZED时,只请求非个性化广告

var requestOptions:RequestOptions?=HwAds.getRequestOptions()



requestOptions=requestOptions.toBuilder().setNonPersonalizedAd(ALLOW_NON_PERSONALIZED).build()

HwAds.setRequestOptions(requestOptions)

val adParam=AdParam.Builder().build()

adView!!.loadAd(adParam)

< ">Consent SDK测试

< ">为了让您能轻松地测试应用,Consent SDK提供了可设置的调试选项。

< ">1.调用getTestDeviceId()获取设备ID。

< ">示例代码如下所示:

Java

String testDeviceId=Consent.getInstance(getApplicationContext()).getTestDeviceId();

Kotlin

val testDeviceId = Consent.getInstance(getApplicationContext()).testDeviceId

< ">2.使用获取的设备ID将您的设备作为调试设备列入允许清单。

< ">示例代码如下所示:

Java

Consent.getInstance(getApplicationContext()).addTestDeviceId(testDeviceId);

Kotlin

Consent.getInstance(getApplicationContext()).addTestDeviceId(testDeviceId)

< ">调用setDebugNeedConsent设置是否需要Consent。

< ">示例代码如下所示:

Java

//设置调试需要Consent,此时ConsentUpdateListener方法返回的isNeedConsent参数为true

Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUG_NEED_CONSENT);

//设置调试不需要Consent,此时ConsentUpdateListener方法返回的isNeedConsent参数为false

Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUG_NOT_NEED_CONSENT);

Kotlin

// 设置调试需要Consent,此时ConsentUpdateListener方法返回的isNeedConsent参数为true

Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUG_NEED_CONSENT)

// 设置调试不需要Consent,此时ConsentUpdateListener方法返回的isNeedConsent参数为false

Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUG_NOT_NEED_CONSENT)

< ">完成这些步骤后,调用更新用户意见状态时会根据您的调试状态返回isNeedConsent的值。

< ">说明

< ">如果把设备设置为测试设备,那么会返回固定的测试广告技术提供商列表,无法验证真实广告技术提供商列表变化的场景。

HUAWEI Ads的用户意见征求

上一篇:为Azure云服务创建内部负载均衡器
下一篇:怎么注册NAVER(电脑版)账号?


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

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

关键词:HUAWEI,Ads的用户意见征求

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