HUAWEI Ads的用戶意見征求,華為ads需要打開嗎-ESG跨境

HUAWEI Ads的用戶意見征求,華為ads需要打開嗎

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-04-29
點(diǎn)贊icon 0
查看icon 795

HUAWEI Ads的用戶意見征求,華為ads需要打開嗎HUAWEI Ads的用戶意見征求在法律有相應(yīng)要求的情況下,您必須征得用戶的同意才能使用其個人數(shù)據(jù)(例如OAID)來投放廣告。HUAWEI Ads平臺投放的廣告包括個性化廣告和非個性化廣告。為了征求用戶意見,HUAWEI Ads平臺提供了Consent SDK。本......

HUAWEI Ads的用戶意見征求,華為ads需要打開嗎





HUAWEI Ads的用戶意見征求

在法律有相應(yīng)要求的情況下,您必須征得用戶的同意才能使用其個人數(shù)據(jù)(例如OAID)來投放廣告。

HUAWEI Ads平臺投放的廣告包括個性化廣告和非個性化廣告。為了征求用戶意見,HUAWEI Ads平臺提供了Consent SDK。

本章節(jié)介紹了如何使用Consent SDK征求用戶意見,以及在征得用戶意見后如何根據(jù)用戶意見獲取廣告。

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.在應(yīng)用級的build.gradle文件中添加編譯依賴:

c.將{version}替換為實(shí)際的版本號,版本號索引請參見版本更新說明,修改如下:

dependencies {

  implementation com.huawei.hms:adsconsent:3.4.39.302

}

在完成以上的配置后,點(diǎn)擊工具欄中的gradle同步圖標(biāo),完成“build.gradle”文件的同步,將相關(guān)依賴下載到本地。

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

示例代碼如下所示:

Java

...

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)失敗

        ...

      }

    });

   ...

  }

  ...

}

Kotlin

...

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

...

class ConsentActivity : BaseActivity() {

  ...

  override fun onCreate(savedInstanceState: Bundle ) {

    ...

    // 檢查consent狀態(tài)

    checkConsentStatus()

    ...

  }

  ...

  private fun checkConsentStatus() {

    ...

    val consentInfo = Consent.getInstance(this)

    ...

    consentInfo.requestConsentUpdate(object : ConsentUpdateListener {

      override fun onSuccess(consentStatus: ConsentStatus, isNeedConsent: Boolean, adProviders: ListAdProvider) {

        // 獲取用戶意見狀態(tài)成功

        ...

      }

      override fun onFail(errorDescription: String) {

        // 獲取用戶意見狀態(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)濟(jì)區(qū)內(nèi)或其他敏感地區(qū)內(nèi),需要進(jìn)一步確認(rèn)用戶意見。

·當(dāng)返回的ConsentStatus為PERSONALIZED或NONPERSONALIZED,則表明已征求過用戶意見,不需要再次征求。

·當(dāng)返回的ConsentStatus為UNKNOWN,則需要通過彈框等方式征求用戶意見。

如果ConsentUpdateListener返回onFail()時,則直接請求非個性化廣告。

AdProvider為廣告技術(shù)提供商信息,參數(shù)定義如下:

說明

requestConsentUpdate()方法每次會請求網(wǎng)絡(luò)以更新廣告技術(shù)提供商列表,為了保障用戶體驗,媒體可以自行實(shí)現(xiàn)超時控制。

3.征求用戶意見。

您需要通過彈框等方式向用戶征求意見,并展示廣告技術(shù)提供商的完整列表。以下是通過彈框征求用戶意見的樣例:

a.彈框征求用戶意見。

示例代碼如下所示:

Java

...

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

  }

}

Kotlin

...

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

...

class ConsentActivity : BaseActivity() {

  ...

  override fun onCreate(savedInstanceState: Bundle?) {

    ...

    // 檢查consent狀態(tài)

    checkConsentStatus()

    ...

  }

  ...

  private fun checkConsentStatus() {

    ...

    val consentInfo = Consent.getInstance(this)

    ...

    consentInfo.requestConsentUpdate(object : ConsentUpdateListener {

      override fun onSuccess(consentStatus: ConsentStatus, isNeedConsent: Boolean, adProviders: ListAdProvider) {

        ...

        // 此返回參數(shù)代表是否需要consent

        if (isNeedConsent) {

          // UNKNOWN狀態(tài),需要重新收集用戶信息

          if (consentStatus == ConsentStatus.UNKNOWN) {

          ...

            showConsentDialog()

          }

          // 如果是PERSONALIZED或者NONPERSONALIZED狀態(tài),則不需要彈框收集用戶意見

          else {

            ...

          }

        } else {

          ...

        }

      }

      override fun onFail(errorDescription: String) {

       // 獲取用戶意見狀態(tài)失敗

       ...

      }

    })

    ...

  }

  ...

  private fun showConsentDialog() {

    // 開始Consent彈出框處理

    val dialog = ConsentDialog(this, mAdProviders)

    dialog.setCallback(this)

    dialog.setCanceledOnTouchOutside(false)

    dialog.show()

  }

}

對話框效果圖如下:

點(diǎn)擊“here”跳轉(zhuǎn)至更多信息:

b.展示廣告技術(shù)提供商列表。

您需要將廣告技術(shù)提供商的名稱展示給用戶,并提供訪問廣告技術(shù)提供商隱私政策的入口。

通過點(diǎn)擊上述更多信息頁面中的here鏈接彈出廣告技術(shù)提供商列表對話框,效果如下:

c.設(shè)置用戶意見。

征得用戶意見后,請使用setConsentStatus()方法設(shè)置用戶的選擇。

示例代碼如下所示:

Java

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

Kotlin

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

說明

請務(wù)必讓用戶可以隨時更改或撤消意見,并將用戶更新后的意見設(shè)置給Consent SDK。

d.設(shè)置“未達(dá)到法定承諾年齡用戶”的標(biāo)記。

如果您需要針對未達(dá)到法定承諾年齡的用戶請求對應(yīng)的廣告,則在調(diào)用requestConsentUpdate()前必須通過調(diào)用setUnderAgeOfPromise設(shè)置“未達(dá)到法定承諾年齡用戶”的標(biāo)記。

示例代碼如下所示:

Java

//設(shè)置“未達(dá)到法定承諾年齡用戶”的標(biāo)記

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

Kotlin

//設(shè)置“未達(dá)到法定承諾年齡用戶”的標(biāo)記

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

一旦將此設(shè)置為true,則每次requestConsentUpdate()請求均會回調(diào)onFail(String errorDescription)方法,并提供給用戶錯誤描述參數(shù)errorDescription,此時不需要再展示征求用戶意見彈框。設(shè)置為false表明用戶已達(dá)到法定承諾年齡。

說明

當(dāng)Consent SDK設(shè)置了此標(biāo)記后,在請求廣告時,基于受眾人群請求廣告中setTagForUnderAgeOfPromise的參數(shù)應(yīng)與Consent參數(shù)保持一致。

4.根據(jù)用戶意見獲取廣告。

請求廣告時,默認(rèn)不設(shè)置setNonPersonalizedAd方法,請求個性化廣告與非個性化廣告。如果用戶在Consent階段沒有做出選擇,則只能請求非個性化廣告。

如果設(shè)置setNonPersonalizedAd方法且值為:

·ALLOWALL:個性化廣告與非個性化廣告

·ALLOWNONPERSONALIZED:非個性化廣告

示例代碼如下所示:

Java

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

Kotlin

//setNonPersonalizedAd設(shè)置為ALLOWNONPERSONALIZED時,只請求非個性化廣告

var requestOptions:RequestOptions?=HwAds.getRequestOptions()

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

HwAds.setRequestOptions(requestOptions)

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

adView!!.loadAd(adParam)

Consent SDK測試

為了讓您能輕松地測試應(yīng)用,Consent SDK提供了可設(shè)置的調(diào)試選項。

1.調(diào)用getTestDeviceId()獲取設(shè)備ID。

示例代碼如下所示:

Java

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

Kotlin

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

2.使用獲取的設(shè)備ID將您的設(shè)備作為調(diào)試設(shè)備列入允許清單。

示例代碼如下所示:

Java

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

Kotlin

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

調(diào)用setDebugNeedConsent設(shè)置是否需要Consent。

示例代碼如下所示:

Java

//設(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);

Kotlin

// 設(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)

完成這些步驟后,調(diào)用更新用戶意見狀態(tài)時會根據(jù)您的調(diào)試狀態(tài)返回isNeedConsent的值。

說明

如果把設(shè)備設(shè)置為測試設(shè)備,那么會返回固定的測試廣告技術(shù)提供商列表,無法驗證真實(shí)廣告技術(shù)提供商列表變化的場景。


文章推薦
北京進(jìn)口意大利二手激光器切割機(jī)報關(guān)
代理進(jìn)口海外二手挖掘機(jī)報關(guān)清關(guān)一條龍服務(wù),日本二手挖掘機(jī)報關(guān)流程
B2B做Facebook沒效果,facebook b2b營銷
Google Play無法為您打開嗎 試試這些解決方案,google play無法開啟


特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進(jìn)群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進(jìn)群
美國賣家交流群
加入
美國賣家交流群
掃碼進(jìn)群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
ESG獨(dú)家招商-PHH GROUP賣家交流群
加入
ESG獨(dú)家招商-PHH GROUP賣家交流群
掃碼進(jìn)群
《TikTok官方運(yùn)營干貨合集》
《TikTok綜合運(yùn)營手冊》
《TikTok短視頻運(yùn)營手冊》
《TikTok直播運(yùn)營手冊》
《TikTok全球趨勢報告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺篇》
《開店大全-東南亞篇》
《CD平臺自注冊指南》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運(yùn)營實(shí)操指導(dǎo)
運(yùn)營提效資源福利
平臺官方專屬優(yōu)惠
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機(jī)入駐更便捷

icon icon

返回頂部

【免費(fèi)領(lǐng)取】全球跨境電商運(yùn)營干貨 關(guān)閉