HUAWEI Ads高級設(shè)置,華為c5鍵盤如何使用HUAWEI Ads高級設(shè)置HUAWEI Ads SDK還提供了一些廣告請求相關(guān)的高級設(shè)置。設(shè)置受眾人群HUAWEI Ads SDK提供了通過設(shè)置RequestOptions對象,來滿足針對不同受眾人群請求對應(yīng)廣告內(nèi)容的能力。該對象應(yīng)先通過HwAds靜態(tài)方法獲取應(yīng)用的全......
HUAWEI Ads SDK還提供了一些廣告請求相關(guān)的高級設(shè)置。
設(shè)置受眾人群
HUAWEI Ads SDK提供了通過設(shè)置RequestOptions對象,來滿足針對不同受眾人群請求對應(yīng)廣告內(nèi)容的能力。該對象應(yīng)先通過HwAds靜態(tài)方法獲取應(yīng)用的全局受眾人群信息。如果要更新請求配置,請從現(xiàn)有配置中獲取構(gòu)建器,再進行設(shè)置更新。
說明
您必須將用戶是否是兒童的標識在setTagForChildProtection方法中如實的告知HUAWEI Ads。您需要承擔由于告知錯誤或沒有告知導(dǎo)致廣告誤投放到兒童的手機上導(dǎo)致的一切后果。
示例代碼如下:
//添加面向兒童的設(shè)置
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setTagForChildProtection(TAGFORCHILDPROTECTIONTRUE).build();
HwAds.setRequestOptions(requestOptions);
RequestOptions提供了下面五種方法設(shè)置受眾人群:
示例代碼如下:
//面向兒童的設(shè)置,表明您的廣告內(nèi)容需要符合COPPA的規(guī)定
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setTagForChildProtection(TAGFORCHILDPROTECTIONTRUE).build();
//未達到法定承諾年齡的用戶的設(shè)置,表明您希望廣告請求符合未達到法定承諾年齡用戶的廣告標準
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setTagForUnderAgeOfPromise(PROMISETRUE).build();
//廣告內(nèi)容過濾,指定返回的廣告內(nèi)容應(yīng)與分級標簽名稱對應(yīng),但不得高于W
RequestOptions requestOptions=HwAds.getRequestOptions().toBuilder().setAdContentClassification(ADCONTENTCLASSIFICATIONW).build();
//請求個性化廣告與非個性化廣告
RequestOptions requestOptions=HwAds.getRequestOptions();
requestOptions.toBuilder().setNonPersonalizedAd(ALLOWALL).build();
//設(shè)置TCF2.0用戶同意信息字符串
RequestOptions requestOptions=HwAds.getRequestOptions();
requestOptions.toBuilder().setConsent(tcfString).build();
設(shè)置意見征求
HUAWEI Ads投放的廣告包括個性化廣告和非個性化廣告。為了征求用戶意見,HUAWEI Ads提供了Consent SDK。
本章節(jié)介紹了如何使用Consent SDK征求用戶意見,以及在征得用戶意見后如何根據(jù)用戶意見獲取廣告。
Consent SDK使用
1.導(dǎo)入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/ }
}
}
在應(yīng)用級的build.gradle文件中添加編譯依賴:
將{version}替換為實際的版本號,版本號索引請參見版本更新說明,修改如下:
dependencies{
implementationcom.huawei.hms:adsconsent:3.4.34.301
}
保存build.gradle文件,點擊“Sync Now”等待同步完成。
2.更新用戶意見狀態(tài)。
使用Consent SDK時,都應(yīng)確保Consent SDK獲得的是HUAWEI Ads廣告技術(shù)提供商的最新信息。如果在征求用戶意見后,廣告技術(shù)提供商的列表發(fā)生改變,則Consent SDK會自動將用戶意見置為未知狀態(tài)。因此在每次啟動應(yīng)用時都必須通過調(diào)用requestConsentUpdate()方法確定用戶的意見狀態(tài)。
示例代碼如下:
...
import com.huawei.hms.ads.consent.*;
...
public class ConsentActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// 檢查consent狀態(tài)
checkConsentStatus();
...
}
...
private void checkConsentStatus() {
...
Consent consentInfo = Consent.getInstance(this);
...
consentInfo.requestConsentUpdate(new ConsentUpdateListener() {
@Override
public void onSuccess(ConsentStatus consentStatus, boolean isNeedConsent, ListAdProvider adProviders) {
// 獲取用戶意見狀態(tài)成功
...
}
@Override
public void onFail(String errorDescription) {
// 獲取用戶意見狀態(tài)失敗
...
}
});
...
}
...
}
如果成功更新用戶意見信息,那么會通過ConsentUpdateListener的onSuccess()方法提供更新后的用戶意見狀態(tài)參數(shù)consentStatus、是否需要Consent參數(shù)isNeedConsent和廣告技術(shù)提供商的adProviders列表。
ConsentStatus具有以下三種狀態(tài):
·如果回調(diào)參數(shù)isNeedConsent取值為false,則表明可以向HUAWEI Ads SDK請求個性化廣告。
·如果回調(diào)參數(shù)isNeedConsent取值為true,表明該用戶在歐洲經(jīng)濟區(qū)內(nèi)或其他敏感地區(qū)內(nèi),需要進一步確認用戶意見。
·當返回的ConsentStatus為PERSONALIZED或NONPERSONALIZED,則表明已征求過用戶意見,不需要再次征求。
·當返回的ConsentStatus為UNKNOWN,則需要通過彈框等方式征求用戶意見。
·如果ConsentUpdateListener返回onFail()時,則直接請求非個性化廣告。
AdProvider為廣告技術(shù)提供商信息,參數(shù)定義如下:
說明
requestConsentUpdate()方法每次會請求網(wǎng)絡(luò)以更新廣告技術(shù)提供商列表,為了保障用戶體驗,媒體可以自行實現(xiàn)超時控制。
3.征求用戶意見。
您需要通過彈框等方式向用戶征求意見,并展示廣告技術(shù)提供商的完整列表。
以下是通過彈框征求用戶意見的樣例:
a.彈框征求用戶意見。
示例代碼如下:
...
import com.huawei.hms.ads.consent.*;
...
public class ConsentActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// 檢查consent狀態(tài)
checkConsentStatus();
...
}
...
private void checkConsentStatus() {
...
Consent consentInfo = Consent.getInstance(this);
...
consentInfo.requestConsentUpdate(new ConsentUpdateListener() {
@Override
public void onSuccess(ConsentStatus consentStatus, boolean isNeedConsent, ListAdProvider adProviders) {
...
// 此返回參數(shù)代表是否需要consent
if (isNeedConsent) {
// UNKNOWN狀態(tài),需要重新收集用戶信息
if (consentStatus == ConsentStatus.UNKNOWN) {
...
showConsentDialog();
}
// 如果是PERSONALIZED或者NONPERSONALIZED狀態(tài),則不需要彈框收集用戶意見
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”后,頁面跳轉(zhuǎn)至更多信息頁面:
b.展示廣告技術(shù)提供商列表。
您需要將廣告技術(shù)提供商的名稱展示給用戶,并提供訪問廣告技術(shù)提供商隱私政策的入口。
通過點擊上述更多信息頁面中的here鏈接彈出廣告技術(shù)提供商列表對話框,效果如下:
c.設(shè)置用戶意見。
征得用戶意見后,請使用setConsentStatus()方法設(shè)置用戶的選擇。
Consent.getInstance(getApplicationContext()).setConsentStatus(ConsentStatus.PERSONALIZED);
說明
請務(wù)必讓用戶可以隨時更改或撤消意見,并將用戶更新后的意見設(shè)置給Consent SDK。
d.(可選)未達到法定承諾年齡的用戶。
如果您需要針對未達到法定承諾年齡的用戶請求對應(yīng)的廣告,則在調(diào)用requestConsentUpdate()前必須通過調(diào)用setUnderAgeOfPromise設(shè)置是否“未達到法定承諾年齡用戶”的標記。
//設(shè)置“未達到法定承諾年齡用戶”的標記
Consent.getInstance(getApplicationContext()).setUnderAgeOfPromise(true);
一旦將此設(shè)置為true,則每次requestConsentUpdate()請求均會回調(diào)onFail(String errorDescription)方法,并提供給用戶錯誤描述參數(shù)errorDescription,此時不需要再展示征求用戶意見彈框。設(shè)置為false表明用戶已達到法定承諾年齡。
說明
當Consent SDK設(shè)置了此標記后,在請求廣告時,設(shè)置受眾人群中setTagForUnderAgeOfPromise的參數(shù)應(yīng)與Consent參數(shù)保持一致。
4.根據(jù)用戶意見獲取廣告。
請求廣告時,默認不設(shè)置setNonPersonalizedAd方法,請求個性化廣告與非個性化廣告。如果用戶在Consent階段沒有做出選擇,則只能請求非個性化廣告。
如果設(shè)置setNonPersonalizedAd方法且值為:
·ALLOWALL:個性化廣告與非個性化廣告
·ALLOWNONPERSONALIZED:非個性化廣告
示例代碼如下:
//setNonPersonalizedAd設(shè)置為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測試
為了讓您能輕松地測試應(yīng)用,Consent SDK提供了可設(shè)置的調(diào)試選項。
1.調(diào)用getTestDeviceId()獲取設(shè)備ID。
String testDeviceId=Consent.getInstance(getApplicationContext()).getTestDeviceId();
2.使用獲取的設(shè)備ID將您的設(shè)備作為調(diào)試設(shè)備列入允許清單。
Consent.getInstance(getApplicationContext()).addTestDeviceId(testDeviceId);
3.調(diào)用setDebugNeedConsent設(shè)置是否需要Consent。
//設(shè)置調(diào)試需要Consent,此時ConsentUpdateListener方法返回的isNeedConsent參數(shù)為true
Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUGNEEDCONSENT);
//設(shè)置調(diào)試不需要Consent,此時ConsentUpdateListener方法返回的isNeedConsent參數(shù)為false
Consent.getInstance(getApplicationContext()).setDebugNeedConsent(DebugNeedConsent.DEBUGNOTNEEDCONSENT);
4.完成這些步驟后,調(diào)用更新用戶意見狀態(tài)時會根據(jù)您的調(diào)試狀態(tài)返回isNeedConsent的值。
說明
如果把設(shè)備設(shè)置為測試設(shè)備,那么會返回固定的測試廣告技術(shù)提供商列表,無法驗證真實廣告技術(shù)提供商列表變化的場景。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部