HUAWEI Ads激勵(lì)廣告,華為酷炫廣告-ESG跨境

HUAWEI Ads激勵(lì)廣告,華為酷炫廣告

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-07-05
點(diǎn)贊icon 0
查看icon 682

HUAWEI Ads激勵(lì)廣告,華為酷炫廣告HUAWEI Ads激勵(lì)廣告激勵(lì)廣告激勵(lì)廣告是一種全屏幕的視頻廣告,用戶可以選擇點(diǎn)擊觀看,以換取相應(yīng)獎(jiǎng)勵(lì)。添加激勵(lì)廣告1.創(chuàng)建激勵(lì)廣告對(duì)象。創(chuàng)建RewardAd對(duì)象,示例代碼如下:public class RewardedVideoActivity extends Activi......

HUAWEI Ads激勵(lì)廣告,華為酷炫廣告





HUAWEI Ads激勵(lì)廣告

激勵(lì)廣告

激勵(lì)廣告是一種全屏幕的視頻廣告,用戶可以選擇點(diǎn)擊觀看,以換取相應(yīng)獎(jiǎng)勵(lì)。

添加激勵(lì)廣告

1.創(chuàng)建激勵(lì)廣告對(duì)象。

創(chuàng)建RewardAd對(duì)象,示例代碼如下:

public class RewardedVideoActivity extends Activity {

  // testx9dtjwj8hp為專用的測(cè)試廣告位ID,App正式發(fā)布時(shí)需要改為正式的廣告位ID

  private static final String ADID = testx9dtjwj8hp;

  private RewardAd rewardAd;

  @Override

  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activityrewarded);

    // 創(chuàng)建激勵(lì)廣告對(duì)象

    createRewardAd();

  }

  private void createRewardAd() {

    rewardAd = new RewardAd(this, ADID);

  }

}

2.獲取廣告。

調(diào)用RewardAd對(duì)象的loadAd()方法來獲取廣告,示例代碼如下:

/**

* 加載激勵(lì)廣告

*/

private void loadRewardAd() {

  if (rewardAd == null) {

    rewardAd = new RewardAd(this, ADID);

  }

  RewardAdLoadListener listener= new RewardAdLoadListener() {

    @Override

    public void onRewardedLoaded() {

      // 激勵(lì)廣告加載成功

    }

    @Override

    public void onRewardAdFailedToLoad(int errorCode) {

      // 激勵(lì)廣告加載失敗

    }

  };

  rewardAd.loadAd(new AdParam.Builder().build(), listener);

}

3.展示廣告。

調(diào)用RewardAd的show()方法來顯示廣告,在此之前需要調(diào)用isLoaded()方法來確認(rèn)廣告已經(jīng)加載完成。

如下所示:

/**

* 展示激勵(lì)廣告

*/

private void rewardAdShow() {

  if (rewardAd.isLoaded()) {

    rewardAd.show(RewardedVideoActivity.this, new RewardAdStatusListener() {

      @Override

      public void onRewardAdOpened() {

        // 激勵(lì)廣告被打開

        ...

      }

      @Override

      public void onRewardAdFailedToShow(int errorCode) {

        // 激勵(lì)廣告展示失敗

        ...

      }

      @Override

      public void onRewardAdClosed() {

        // 激勵(lì)廣告被關(guān)閉

        ...

      }

      @Override

      public void onRewarded(Reward reward){

        // 激勵(lì)廣告獎(jiǎng)勵(lì)達(dá)成,發(fā)放獎(jiǎng)勵(lì)

        ...

      }

    });

  }

}

說明

onRewarded方法中,如果在廣告位配置了獎(jiǎng)勵(lì)物品信息,則會(huì)傳入獎(jiǎng)勵(lì)物品信息的對(duì)象reward,通過reward.getAmount()方法獲取獎(jiǎng)勵(lì)物品的數(shù)量,通過reward.getName()方法獲取獎(jiǎng)勵(lì)物品的名稱,推薦立即發(fā)放獎(jiǎng)勵(lì),同時(shí)在服務(wù)端做校驗(yàn),判斷獎(jiǎng)勵(lì)是否生效。如果未配置獎(jiǎng)勵(lì)物品信息,則根據(jù)實(shí)際場(chǎng)景發(fā)放獎(jiǎng)勵(lì)。

測(cè)試激勵(lì)廣告

測(cè)試激勵(lì)廣告時(shí),需要使用專門的測(cè)試廣告位ID來獲取測(cè)試廣告,以避免在測(cè)試過程中產(chǎn)生無效的廣告點(diǎn)擊量。測(cè)試廣告位ID僅作為功能調(diào)試使用,不可用于廣告變現(xiàn)。您需要在應(yīng)用發(fā)布前申請(qǐng)真實(shí)的廣告位ID,并替換測(cè)試廣告位ID。

以下表格中提供了激勵(lì)廣告的專用測(cè)試廣告位ID:

下載激勵(lì)廣告的示例代碼并運(yùn)行,可以看到如下效果圖:

另外您也可以通過學(xué)習(xí)Codelab中的教程來集成激勵(lì)廣告。

校驗(yàn)激勵(lì)廣告服務(wù)端驗(yàn)證回調(diào)

服務(wù)端驗(yàn)證回調(diào)是指HUAWEI Ads廣告平臺(tái)發(fā)快遞給媒體服務(wù)器的網(wǎng)址請(qǐng)求,其中帶有特定的查詢參數(shù),用來通知媒體服務(wù)器某位用戶因?yàn)榕c激勵(lì)視頻廣告互動(dòng)而應(yīng)予以獎(jiǎng)勵(lì),從而規(guī)避欺騙的行為。

獎(jiǎng)勵(lì)用戶

·在給用戶發(fā)獎(jiǎng)勵(lì)時(shí),要把握好用戶體驗(yàn)和獎(jiǎng)勵(lì)驗(yàn)證之間的平衡。因?yàn)榉?wù)器端回調(diào),可能會(huì)出現(xiàn)延遲,因此我們建議客戶端立即獎(jiǎng)勵(lì)用戶,同時(shí)在收到服務(wù)器端回調(diào)時(shí)對(duì)所有獎(jiǎng)勵(lì)進(jìn)行驗(yàn)證。這種做法可確保獎(jiǎng)勵(lì)符合發(fā)放條件,同時(shí)提供良好的用戶體驗(yàn)。

·對(duì)于某些應(yīng)用而言,獎(jiǎng)勵(lì)是否達(dá)到發(fā)放條件非常重要,用戶可適當(dāng)接受延遲。這時(shí),最佳做法是等待服務(wù)器端回調(diào)完成驗(yàn)證,再向用戶發(fā)放獎(jiǎng)勵(lì)。

校驗(yàn)服務(wù)端驗(yàn)證回調(diào)

1.設(shè)置激勵(lì)廣告的獎(jiǎng)勵(lì)配置。

您在HUAWEI Ads媒體服務(wù)平臺(tái)上申請(qǐng)激勵(lì)視頻廣告位時(shí)選擇“媒體管理(點(diǎn)擊媒體名)新增展示位選擇激勵(lì)視頻(點(diǎn)擊下一步,進(jìn)入編輯頁面)”,設(shè)置獎(jiǎng)勵(lì)類型和獎(jiǎng)勵(lì)數(shù)量,并點(diǎn)擊“高級(jí)設(shè)置”,設(shè)置服務(wù)器端驗(yàn)證的URL。如下圖:

2.(可選)設(shè)置自定義數(shù)據(jù)和userId。

您在App中請(qǐng)求激勵(lì)廣告之前對(duì)激勵(lì)廣告對(duì)象設(shè)置自定義數(shù)據(jù)data和userId。

RewardAd rewardAd = new RewardAd(RewardActivity.this, getString(R.string.adidreward));

RewardVerifyConfig config = new RewardVerifyConfig.Builder().setData(CUSTOMDATA)

  .setUserId(1234567)

  .build();

rewardAd.setRewardVerifyConfig(config);

...

rewardAd.loadAd(new AdParam.Builder().build(), rewardAdLoadListener);

說明

如果沒有設(shè)置data和userId,不影響發(fā)放獎(jiǎng)勵(lì)事件上報(bào)但是服務(wù)端驗(yàn)證的參數(shù)中沒有這兩個(gè)字段。如果設(shè)置data和userId,必須在展示廣告之前設(shè)置并且URLEncode之后,長度不超過1024個(gè)字符,否則影響服務(wù)端驗(yàn)證。

3.獲取要驗(yàn)證的內(nèi)容。

用戶觀看完激勵(lì)廣告時(shí),HUAWEI Ads服務(wù)端會(huì)把需要驗(yàn)證的參數(shù)以及KeyId和sign傳給媒體提供的URL: https://www.example.com/feedback(即步驟一中配置的驗(yàn)證URL)。請(qǐng)求體:

{

  adId : testx9dtjwj8hp,

  data : CUSTOMDATA,

  keyId : 12345678,

  rewardAmount : 10,

  rewardName : 金幣,

  sign : OA33u6mypnhE4hbmF32N/ibYi1uXt72nDDyYMwjDI6JXVVFKePZYo4F7Fuk2MaG......,

  uniqueId : 3361626337333932313435313430373438383561376265636130393939313166,

  userId : 1234567

}

服務(wù)器端驗(yàn)證回調(diào)查詢參數(shù)說明:

4.組裝驗(yàn)證參數(shù)。

驗(yàn)證內(nèi)容(除sign、keyId)格式順序如下:

adId={adId}data={data}rewardAmount={rewardAmount}rewardName={rewardName}uniqueId={uniqueId}userId={userId}

其中‘{}’里面表示參數(shù)的值,且參數(shù)順序不能變。假如參數(shù)為null或者空字符串,則url中不拼接該參數(shù),然后用sha256計(jì)算散列值,得到paramContentData。

示例代碼如下:

String adId = request.getParameter(adId);

String data = request.getParameter(data);

String userId = request.getParameter(userId);

String param = adId= + adId + data= + data + rewardAmount= + rewardAmount + rewardName= + rewardName + uniqueId= + uniqueId + userId= + userId;

String sha256Value = Sha256Util.digest(param);

byte[] paramContentData = sha256Value.getBytes(Charset.forName(UTF8));

5.獲取公鑰列表。

1.在HUAWEI Ads 媒體服務(wù)平臺(tái)查看對(duì)應(yīng)的激勵(lì)視頻廣告位,點(diǎn)擊“獲取密鑰”按鈕獲取“開發(fā)者ID”和“密鑰”:

2. 通過如下接口獲得華為提供的公鑰列表:

接口URL:https://ppscrowddre.op.dbankcloud.com/actionlibtrack/publickeys

將body通過密鑰進(jìn)行HMACSHA256加密得到簽名,替換到Authorization中,并設(shè)置“開發(fā)者ID”和Authorization到Header中。

示例代碼如下:

String data = ;

String url = https://ppscrowddre.op.dbankcloud.com/actionlibtrack/publickeys;

String authorization = Digest validTime=\{0}\, response=\{1}\;

// 開發(fā)者ID

String userId = YOURPUBLISHERID;

// 密鑰

String key = YOURKEY;

  

HttpClient httpclient = HttpClients.createDefault();

HttpGet request = new HttpGet();

try {

  String validTime = String.valueOf(System.currentTimeMillis());

  String body = validTime + :/publickeys;

  byte[] keyBytes = Base64.decodeBase64(key);

  byte[] bodyBytes = body.getBytes(Charsets.UTF8);

  Mac mac = Mac.getInstance(HmacSHA256);

  SecretKey secretKey = new SecretKeySpec(keyBytes, HmacSHA256);

  mac.init(secretKey);

  byte[] signatureBytes = mac.doFinal(bodyBytes);

  String signature = (signatureBytes == null)   null : Hex.encodeHexString(signatureBytes);

  authorization = MessageFormat.format(authorization, validTime, signature);

  request.setURI(new URI(url));

  request.setHeader(userId, userId);

  request.setHeader(Authorization, authorization);

  HttpResponse response = httpclient.execute(request);

  data = EntityUtils.toString(response.getEntity());

  } catch (Exception e) {

  }

}

返回data消息體:

{

  keys: [  

    {    

      keyId:12345678,    

      publicKey:LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1GLi4uc3c9PVxkQgUFVCTElt  

    },  

    {    

      keyId: 22345678,              

      publicKey:LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1GLi4uc3c9PVxkQgUFVCTElt  

    }  

  ]

}

返回消息結(jié)構(gòu)體:

Key結(jié)構(gòu)體:

6.執(zhí)行驗(yàn)證。

a.根據(jù)keyId從公鑰列表中找到對(duì)應(yīng)的base64編碼后的publicKey。

b.然后將paramContentData、publicKey和sign作為SHA256withRSA數(shù)字簽名算法的入?yún)?,?zhí)行驗(yàn)證。

示例代碼如下:

public static boolean verify(byte[] data, String publicKey, String sign, String signatureAlgorithm) {

  try {

    byte[] keyBytes = base64Decode(publicKey);

    X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);

    KeyFactory keyFactory = KeyFactory.getInstance(RSA);

    PublicKey publicK = keyFactory.generatePublic(keySpec);

    Signature signature = Signature.getInstance(signatureAlgorithm);

    signature.initVerify(publicK);

    signature.update(data);

    return signature.verify(base64Decode(sign));

  } catch (InvalidKeyException SignatureException UnsupportedEncodingException InvalidKeySpecException NoSuchAlgorithmException e) {

    return false;

  }

}

private static byte[] base64Decode(String encoded) throws UnsupportedEncodingException {

  return Base64.decodeBase64(encoded.getBytes(UTF8));

}


文章推薦
采購好的日本二手挖掘機(jī)如何進(jìn)口到中國,在日本買一臺(tái)二手挖掘機(jī)多少錢
App Annie是我們首選的移動(dòng)應(yīng)用數(shù)據(jù)參考站點(diǎn),appannie排行榜
德國大型二手?jǐn)?shù)控折彎機(jī)如何進(jìn)口中國報(bào)關(guān),進(jìn)口數(shù)控折彎機(jī)維修保養(yǎng)來電咨詢
AWS的全球基礎(chǔ)設(shè)施和網(wǎng)絡(luò),aws云全球服務(wù)基礎(chǔ)設(shè)施區(qū)域列表


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

搜索 放大鏡
韓國平臺(tái)交流群
加入
韓國平臺(tái)交流群
掃碼進(jìn)群
歐洲多平臺(tái)交流群
加入
歐洲多平臺(tái)交流群
掃碼進(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)營手冊(cè)》
《TikTok短視頻運(yùn)營手冊(cè)》
《TikTok直播運(yùn)營手冊(cè)》
《TikTok全球趨勢(shì)報(bào)告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺(tái)篇》
《開店大全-東南亞篇》
《CD平臺(tái)自注冊(cè)指南》
通過ESG入駐平臺(tái),您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運(yùn)營實(shí)操指導(dǎo)
運(yùn)營提效資源福利
平臺(tái)官方專屬優(yōu)惠

立即登記,定期獲得更多資訊

訂閱
聯(lián)系顧問

平臺(tái)顧問

平臺(tái)顧問 平臺(tái)顧問

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

icon icon

小程序

微信小程序

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

icon icon

返回頂部

【免費(fèi)領(lǐng)取】全球跨境電商運(yùn)營干貨 關(guān)閉
進(jìn)行中
進(jìn)行中
【活動(dòng)報(bào)名】2024年歐洲多藍(lán)海平臺(tái)招商沙龍
官方親臨,拆解phh group/eMAG/worten三個(gè)平臺(tái)商機(jī)
立即報(bào)名
進(jìn)行中
進(jìn)行中
TikTok運(yùn)營必備干貨包
包含8個(gè)TikTok最新運(yùn)營指南(市場(chǎng)趨勢(shì)、運(yùn)營手冊(cè)、節(jié)日攻略等),官方出品,專業(yè)全面!
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
韓國電商節(jié)日營銷指南
10+韓國電商重要營銷節(jié)點(diǎn)詳細(xì)解讀;2024各節(jié)日熱度選品助力引爆訂單增長;8大節(jié)日營銷技巧輕松撬動(dòng)大促流量密碼。
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——全球合集
涵括全球100+個(gè)電商平臺(tái)的核心信息,包括平臺(tái)精煉簡介、競(jìng)爭優(yōu)勢(shì)、熱銷品類、入駐要求以及入駐須知等關(guān)鍵內(nèi)容。
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——主流平臺(tái)篇
火爆全球的跨境電商平臺(tái)合集,平臺(tái)優(yōu)勢(shì)、開店選品、入駐條件盡在掌握
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——拉美篇
涵蓋9大熱門拉美電商平臺(tái),成熟的市場(chǎng)是跨境賣家的熱門選擇!
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——日韓篇
涵蓋10+日韓電商平臺(tái),入駐條件一看就懂,優(yōu)勢(shì)熱銷品應(yīng)有盡有
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——?dú)W洲篇
涵蓋20+歐洲電商平臺(tái),詳細(xì)解讀優(yōu)勢(shì)、入駐條件、熱銷品等
立即領(lǐng)取