

HUAWEI Ads高级设置,华为c5键盘如何使用HUAWEI Ads高级设置HUAWEI Ads SDK还提供了一些广告请求相关的高级设置。设置受众人群HUAWEI Ads SDK提供了通过设置RequestOptions对象,来满足针对不同受众人群请求对应广告内容的能力。该对象应先通过HwAds静态方法获取应用的全......
HUAWEI Ads SDK还提供了一些广告请求相关的高级设置。
设置受众人群
HUAWEI Ads SDK提供了通过设置RequestOptions对象,来满足针对不同受众人群请求对应广告内容的能力。该对象应先通过HwAds静态方法获取应用的全局受众人群信息。如果要更新请求配置,请从现有配置中获取构建器,再进行设置更新。
说明
您必须将用户是否是儿童的标识在setTagForChildProtection方法中如实的告知HUAWEI Ads。您需要承担由于告知错误或没有告知导致广告误投放到儿童的手机上导致的一切后果。
示例代码如下:
//添加面向儿童的设置
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setTagForChildProtection(TAGFORCHILDPROTECTIONTRUE).build();
HwAds.setRequestOptions(requestOptions);
RequestOptions提供了下面五种方法设置受众人群:
示例代码如下:
//面向儿童的设置,表明您的广告内容需要符合COPPA的规定
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setTagForChildProtection(TAGFORCHILDPROTECTIONTRUE).build();
//未达到法定承诺年龄的用户的设置,表明您希望广告请求符合未达到法定承诺年龄用户的广告标准
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setTagForUnderAgeOfPromise(PROMISETRUE).build();
//广告内容过滤,指定返回的广告内容应与分级标签名称对应,但不得高于W
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setAdContentClassification(ADCONTENTCLASSIFICATIONW).build();
//请求个性化广告与非个性化广告
RequestOptions requestOptions=HwAds.getRequestOptions();
requestOptions.toBuilder().setNonPersonalizedAd(ALLOWALL).build();
//设置TCF2.0用户同意信息字符串
RequestOptions requestOptions=HwAds.getRequestOptions();
requestOptions.toBuilder().setConsent(tcfString).build();
设置意见征求
HUAWEI Ads投放的广告包括个性化广告和非个性化广告。为了征求用户意见,HUAWEI Ads提供了Consent SDK。
本章节介绍了如何使用Consent SDK征求用户意见,以及在征得用户意见后如何根据用户意见获取广告。
Consent SDK使用
1.导入Consent SDK。
在项目级build.gradle文件中配置Maven仓地址:
buildscript {
repositories {
google()
jcenter()
maven { url https://developer.huawei.com/repo/ }
}
...
}
allprojects {
repositories {
google()
jcenter()
maven { url https://developer.huawei.com/repo/ }
}
}
在应用级的build.gradle文件中添加编译依赖:
将{version}替换为实际的版本号,版本号索引请参见版本更新说明,修改如下:
dependencies{
implementationcom.huawei.hms:adsconsent:3.4.34.301
}
保存build.gradle文件,点击“Sync Now”等待同步完成。
2.更新用户意见状态。
使用Consent SDK时,都应确保Consent SDK获得的是HUAWEI Ads广告技术提供商的最新信息。如果在征求用户意见后,广告技术提供商的列表发生改变,则Consent SDK会自动将用户意见置为未知状态。因此在每次启动应用时都必须通过调用requestConsentUpdate()方法确定用户的意见状态。
示例代码如下:
...
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, ListAdProvider adProviders) {
// 获取用户意见状态成功
...
}
@Override
public void onFail(String errorDescription) {
// 获取用户意见状态失败
...
}
});
...
}
...
}
如果成功更新用户意见信息,那么会通过ConsentUpdateListener的onSuccess()方法提供更新后的用户意见状态参数consentStatus、是否需要Consent参数isNeedConsent和广告技术提供商的adProviders列表。
ConsentStatus具有以下三种状态:
·如果回调参数isNeedConsent取值为false,则表明可以向HUAWEI Ads SDK请求个性化广告。
·如果回调参数isNeedConsent取值为true,表明该用户在欧洲经济区内或其他敏感地区内,需要进一步确认用户意见。
·当返回的ConsentStatus为PERSONALIZED或NONPERSONALIZED,则表明已征求过用户意见,不需要再次征求。
·当返回的ConsentStatus为UNKNOWN,则需要通过弹框等方式征求用户意见。
·如果ConsentUpdateListener返回onFail()时,则直接请求非个性化广告。
AdProvider为广告技术提供商信息,参数定义如下:
说明
requestConsentUpdate()方法每次会请求网络以更新广告技术提供商列表,为了保障用户体验,媒体可以自行实现超时控制。
3.征求用户意见。
您需要通过弹框等方式向用户征求意见,并展示广告技术提供商的完整列表。
以下是通过弹框征求用户意见的样例:
a.弹框征求用户意见。
示例代码如下:
...
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, ListAdProvider adProviders) {
...
// 此返回参数代表是否需要consent
if (isNeedConsent) {
// UNKNOWN状态,需要重新收集用户信息
if (consentStatus == ConsentStatus.UNKNOWN) {
...
showConsentDialog();
}
// 如果是PERSONALIZED或者NONPERSONALIZED状态,则不需要弹框收集用户意见
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();
}
}
对话框效果图如下:
“here”后,页面跳转至更多信息页面:
b.展示广告技术提供商列表。
您需要将广告技术提供商的名称展示给用户,并提供访问广告技术提供商隐私政策的入口。
通过点击上述更多信息页面中的here链接弹出广告技术提供商列表对话框,效果如下:
c.设置用户意见。
征得用户意见后,请使用setConsentStatus()方法设置用户的选择。
Consent.getInstance(getApplicationContext()).setConsentStatus(ConsentStatus.PERSONALIZED);
说明
请务必让用户可以随时更改或撤消意见,并将用户更新后的意见设置给Consent SDK。
d.(可选)未达到法定承诺年龄的用户。
如果您需要针对未达到法定承诺年龄的用户请求对应的广告,则在调用requestConsentUpdate()前必须通过调用setUnderAgeOfPromise设置是否“未达到法定承诺年龄用户”的标记。
//设置“未达到法定承诺年龄用户”的标记
Consent.getInstance(getApplicationContext()).setUnderAgeOfPromise(true);
一旦将此设置为true,则每次requestConsentUpdate()请求均会回调onFail(String errorDescription)方法,并提供给用户错误描述参数errorDescription,此时不需要再展示征求用户意见弹框。设置为false表明用户已达到法定承诺年龄。
说明
当Consent SDK设置了此标记后,在请求广告时,设置受众人群中setTagForUnderAgeOfPromise的参数应与Consent参数保持一致。
4.根据用户意见获取广告。
请求广告时,默认不设置setNonPersonalizedAd方法,请求个性化广告与非个性化广告。如果用户在Consent阶段没有做出选择,则只能请求非个性化广告。
如果设置setNonPersonalizedAd方法且值为:
·ALLOWALL:个性化广告与非个性化广告
·ALLOWNONPERSONALIZED:非个性化广告
示例代码如下:
//setNonPersonalizedAd设置为ALLOWNONPERSONALIZED时,只请求非个性化广告
RequestOptions requestOptions=HwAds.getRequestOptions();
requestOptions=requestOptions.toBuilder().setNonPersonalizedAd(ALLOWNONPERSONALIZED).build();
HwAds.setRequestOptions(requestOptions);
AdParam adParam=new AdParam.Builder().build();
adView.loadAd(adParam);
Consent SDK测试
为了让您能轻松地测试应用,Consent SDK提供了可设置的调试选项。
1.调用getTestDeviceId()获取设备ID。
String testDeviceId=Consent.getInstance(getApplicationContext()).getTestDeviceId();
2.使用获取的设备ID将您的设备作为调试设备列入允许清单。
Consent.getInstance(getApplicationContext()).addTestDeviceId(testDeviceId);
3.调用setDebugNeedConsent设置是否需要Consent。
//设置调试需要Consent,此时ConsentUpdateListener方法返回的isNeedConsent参数为true
Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUGNEEDCONSENT);
//设置调试不需要Consent,此时ConsentUpdateListener方法返回的isNeedConsent参数为false
Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUGNOTNEEDCONSENT);
4.完成这些步骤后,调用更新用户意见状态时会根据您的调试状态返回isNeedConsent的值。
说明
如果把设备设置为测试设备,那么会返回固定的测试广告技术提供商列表,无法验证真实广告技术提供商列表变化的场景。
特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。
二维码加载中...
使用微信扫一扫登录
使用账号密码登录
平台顾问
微信扫一扫
马上联系在线顾问
小程序
ESG跨境小程序
手机入驻更便捷
返回顶部