1. 服务端激励介绍
服务端激励(Server-to-Server):允许开发者自己判断是否下发奖励给观看激励视频的用户。当用户看完激励视频时,将通知开发者的服务器,由开发者自己进行奖励的下发
- Taku SDK < v5.7.56 开发者需要使用第三方广告平台服务端激励
- Taku SDK >= v5.7.56 开发者可以使用Taku服务端激励
注意:为了保障服务端激励的准确性,针对第三方广告平台建议开发者优先使用第三方广告平台的服务端激励回调。针对Taku Adx、直投、交叉推广,开发者可以直接使用Taku的服务端激励回调。您可以根据 Network Firm ID来判断是否只接受Taku服务端激励回调:
① Taku Adx的Network Firm ID=66
② Taku 直投广告的Network Firm ID=67
③ Taku 交叉推广的Network Firm ID=35
2. 第三方广告平台服务端激励的使用流程
(1) 开发者需要到第三方广告平台的后台设置开发者自己服务器的回调URL地址
(2) 开发者在代码中通过Taku SDK的API传入UserID(用户唯一ID)、UserCustomData(用户自定义数据). 这些参数最终将通过回调URL通知开发者
(3) 当用户看完激励视频时,广告平台将通过设置的回调URL地址通知开发者,由开发者自行判断并下发奖励
支持服务端激励的广告平台如下:(可点击跳转到广告平台关于服务端激励的文档说明,不能跳转的请直接登录广告平台后台进行回调URL的设置)
2.1 Android
2.2 iOS
3. Taku服务端激励的使用说明
① Taku SDK >= v5.7.56可以使用Taku服务激励回调
② Taku SDK >= v5.7.78及以上版本支持在Taku服务激励回调中返回展示级别的数据(开发者可以在回调URL中添加{ilrd}参数获取相应数据)
3.1 服务端激励使用流程
(1) 开发者需要在Taku后台的激励视频广告位上打开服务端激励,并设置回调URL地址
(2) 开发者需要在代码中通过Taku SDK的API传入UserID(用户唯一ID)、UserCustomData(用户自定义数据). 这些参数最终将通过回调URL通知开发者
(3) 当用户看完激励视频时,Taku平台将通过设置的回调URL地址通知开发者,由开发者自行判断并下发奖励
3.2 开发者的服务端激励接入指南
(1) 开发者需要Taku后台的激励视频广告位打开服务端激励,并设置开发者服务端激励的回调URL,示例如下:
开发者的回调URL示例如下:
https://www.takuad.com/onrewardedverify?user_id={user_id}&trans_id={trans_id}&reward_amount={reward_amount}&reward_name={reward_name}&placement_id={placement_id}&extra_data={extra_data}&network_firm_id={network_firm_id}&adsource_id={adsource_id}&scenario_id={scenario_id}&sign={sign}&ilrd={ilrd}
(2) Taku会以 GET 方式请求开发者的回调URL,并拼接以下参数回传:
user_id={user_id}&trans_id={trans_id}&reward_amount={reward_amount}&reward_name={reward_name}&placement_id={placement_id}&extra_data={extra_data}&network_firm_id={network_firm_id}&adsource_id={adsource_id}&scenario_id={scenario_id}&sign={sign}&ilrd={ilrd}
(3) 开发者url自定义回调信息的占位符如下,注意
① 不一定要配置所有占位符,即需要哪些信息就配置哪些占位符
② 如果需要签名机制(即有配置:sign={sign}),那么涉及签名相关(见下面:sign签名规则说明)的所有占位符都需要配置
③ 回调给开发者的url除了自定义配置信息外,某些情况还有可能额外返回人民币转美元汇率信息(例如:exch_rate_c2u=0.1375),不关注可忽略
④ 使用开发者后台创建或编辑服务端激励广告位时,默认会回调一次开发者在后台配置的激励url,目的是为了一开始就检测开发者配置的url是否正常,即此时回调的url占位符是没有替换的并且会增加回调参数:is_test=1
参数 | 说明 | 备注 |
---|---|---|
{user_id} | 用户ID | 由开发者通过Taku SDK API设置 |
{extra_data} | 用户业务参数 | 由开发者通过Taku SDK API设置 |
{trans_id} | Taku服务端生成的trans_id,具有唯一性 | 强烈建议开发者在服务器发放激励前校验trans_id是否已发放激励,以规避对相同的trans_id重复发放激励,(对应客户端展示回调信息中getShowId() ) |
{reward_name} | 激励名称 | 在开发者后台设置(支持广告位或广告场景设置) |
{reward_amount} | 激励数量 | 在开发者后台设置 (支持广告位或广告场景设置) |
{placement_id} | Taku广告位ID | - |
{network_firm_id} | Taku聚合的广告平台ID | 【特别注意】1). 如果您需要使用服务端激励,同时有使用Taku Adx、直投、交叉推广时:针对第三方广告平台建议您优先使用第三方广告平台的服务端激励回调;针对Taku Adx、直投、交叉推广,您可以使用Taku的服务端激励回调。2). 您可以根据 Network Firm ID来判断是否只接受Taku服务端激励回调: 1. Taku Adx的Network Firm ID=66 2. Taku 直投广告的Network Firm ID=67 3. Taku 交叉推广的Network Firm ID=35 查看Taku广告平台ID列表 |
{adsource_id} | Taku广告源ID | - |
{scenario_id} | Taku广告场景ID | 由开发者通过Taku SDK API设置 |
{package_name} | 开发者应用的包名或Bundle ID | 由Taku SDK获取开发者的应用包名或Bundle ID |
{platform} | 系统平台,Android 或 iOS | 按以下枚举类型返回,1:Android,2:iOS |
{ilrd} | Taku SDK回调的展示级别数据. 数据为json字符串 | Taku SDK v5.7.78及以上版本支持。Taku SDK在回调激励视频OnReward时给开发者提供展示级别的数据,具体数据格式参考 |
{sign} | 签名信息 | 参考签名规则说明 |
(4) sign签名规则说明
开发者在收到Taku的服务端激励回调时,可以通过sign对回调参数进行校验。
① Taku服务器按以下规则生成sign签名(不带ilrd)
sign =MD5("trans_id="+trans_id+"&placement_id="+placement_id+"&adsource_id="+adsource_id+"&reward_amount="+reward_amount+"&reward_name="+reward_name+"&sec_key="+sec_key)
② Taku服务器按以下规则生成sign签名(带ilrd)
如果回调URL中有 {ilrd} 参数,需要使用以下sign签名规则:
sign =MD5("trans_id="+trans_id+"&placement_id="+placement_id+"&adsource_id="+adsource_id+"&reward_amount="+reward_amount+"&reward_name="+reward_name+"&sec_key="+sec_key+"&ilrd="+ilrd)
(5) sign签名示例
参数 | 示例 |
---|---|
trans_id | xxxxxxxxxxxxxxxx |
placement_id | b5b449fb3d89d7 |
adsource_id | 56789 |
reward_amount | 1 |
reward_name | coin |
sec_key | cyvmwmzrqts7csphhexpqxqxxgljfisb |
ilrd | abc |
sign签名示例如下:
sign=MD5(trans_id=xxxxxxxxxxxxxxxx&placement_id=b5b449fb3d89d7&adsource_id=56789&reward_amount=1&reward_name=coin&sec_key=cyvmwmzrqts7csphhexpqxqxxgljfisb&ilrd=abc)
(6) 开发者回调URL收到Taku的服务端激励回调后,需给Taku服务器返回状态码200 或 601或 602 。Taku收到成功或失败状态码后,都不会重发服务端激励回调
返回状态码 | 说明 |
---|---|
200 | 成功 |
601 | 签名验证失败 |
602 | 其他失败 |
Taku服务器发起服务端激励回调后2秒内无响应则视为超时,超时后会每隔一会(比如2秒,4秒,8秒等)重试发送激励回调。Taku最大重试5次还超时,则不再向开发者回调URL发起激励回调
3.3 分广告场景的服务端激励
为了满足开发者在不同的激励视频广告场景下发不同的激励,Taku允许开发者除了在不同的广告场景上设置不同的激励名称和激励数量,具体使用流程如下:
(1) 打开激励视频广告位的服务端激励回调,并在回调URL中接收Taku回调的广告场景ID{scenario_id}
(2) 在Taku后台的广告场景下设置激励数量和激励名称,参考如下:
(3) 开发者在收到Taku的服务端激励回调时,根据广告场景ID{scenario_id}下发不同的激励
3.4 服务端激励规则快捷复用
为了减少开发者手动配置服务端回调规则的时间,Taku允许开发者快捷复用服务端回调规则,步骤如下:
(1) 在高级功能的下拉界面中,进入服务端回调
(2) 新建回调规则,编辑好后保存规则。
(3) 在新建或修改广告位时,打开服务端回调按钮,选择对应规则,即可实现该规则的快捷复用。
4. Taku SDK接入
4.1 Taku Android SDK代码示例
Map localMap = new HashMap<>();
localMap.put(ATAdConst.KEY.USER_ID, "test_user_id");
localMap.put(ATAdConst.KEY.USER_CUSTOM_DATA, "test_user_data");
mRewardVideoAd.setLocalExtra(localMap);
mRewardVideoAd.load();
4.2 Taku iOS SDK代码示例
[[ATAdManager sharedManager] loadADWithPlacementID:placementId extra:@{kATAdLoadingExtraMediaExtraKey:@"test_user_data", kATAdLoadingExtraUserIDKey:@"test_user_id"} delegate:self];
4.3 Taku Unity SDK代码示例
Dictionary jsonmap = new Dictionary();
jsonmap.Add(ATConst.USERID_KEY, "test_user_id");
jsonmap.Add(ATConst.USER_EXTRA_DATA, "test_user_data");
ATRewardedVideo.Instance.loadVideoAd(placementId, jsonmap);
4.4 Taku Cocos2dx SDK代码示例
cocos2d::ValueMap extra;
extra[ATCocosSdk::KEY_USER_ID] = "test_user_id";
extra[ATCocosSdk::KEY_MEDIA_EXT] = "test_user_data";
ATCocosSdk::loadRewardedVideoAd(placementId, extra);
4.5 Taku CocosCreator SDK代码示例
var setting = {};
setting[ATRewardedVideoJSSDK.userIdKey] = "test_user_id";
setting[ATRewardedVideoJSSDK.userDataKey] = "test_user_data";
ATRewardedVideoJSSDK.loadRewardedVideo(placementId, setting);
4.6 Taku ReactNative SDK代码示例
var setting = {};
settings[ATRewardedVideoRNSDK.userIdKey] = "test_user_id";
settings[ATRewardedVideoRNSDK.userDataKey] = "test_user_data";
ATRewardedVideoRNSDK.loadAd(placementId, settings);
5. ILRD数据说明
变量 | 类型 | 说明 |
---|---|---|
network_firm_id | int | 获取 广告平台对应的ID,用于区分广告平台 |
adsource_id | string | 获取 广告源ID. 可在开发者后台或Taku Open API 通过广告源ID查询具体的Network信息 |
adsource_index | int | 获取 当前广告源在WaterFall中的排序(从0开始) |
adsource_price | dounble | 获取 ECPM,单位可通过"currency"获取 |
adsource_isheaderbidding | int | 是否为头部竞价的广告源,1:是,2:否 |
id | string | 获取 每次展示广告时生成的独立ID |
publisher_revenue | double | 获取 展示收益 |
currency | string | 获取 货币单位,例如:"USD" |
country | string | 获取 国家代码, 例如:”CN" |
adunit_id | string | 获取 Taku广告位ID |
adunit_format | string | 获取 广告类型,包括:"Native"、"RewardedVideo"、"Banner""Interstitial"、"Splash" |
precision | string | 获取 ECPM精度 "publisher_defined":开发者在Taku后台为广告源定义的eCPM(交互推广的eCPM也属于该类型) "estimated": Taku的预估eCPM(auto eCPM) "exact":Header Bidding实时竞价的eCPM |
network_type | string | 获取 Network类型 "Network":第三方广告平台 "Cross_Promotion":交互推广 "Adx":Taku Adx |
network_placement_id | string | 获取 Network的广告位ID |
ecpm_level | int | 获取 广告源的eCPM层级,头部竞价广告源默认为0 |
segment_id | int | 获取 流量分组ID |
scenario_id | string | 获取 广告场景ID,仅Rewarded Video&Interstitial支持(v5.7.20开始,支持Native&Banner) |
scenario_reward_name | string | 获取 广告场景的激励名称,仅Rewarded Video支持 |
scenario_reward_number | int | 获取 广告场景的激励数量,仅Rewarded Video支持 |
sub_channel | string | 获取 子渠道信息 |
channel | string | 获取 渠道信息 |
custom_rule | Dictionary | 获取 Placement+App维度的自定义规则的Json字符串 |
user_load_extra_data | string | 获取 Load 时传入的自定义参数,对应 getLocalExtra() |
show_custom_ext | show_custom_ext | 获取 Show时传入的自定义参数,对应getShowCustomExt() |
6. 常见问题
(1) Taku的服务端激励回调和三方平台的有什么区别
① Taku的服务端激励回调会提供包括Taku ADX、三方平台预估eCPM等数据的激励回调。
若使用Taku ADX、交叉推广、直投广告等,在Taku设置服务端激励回调会更加准确。三方平台的服务端激励回调则是走三方平台的会更加准确。
② Taku和三方平台的激励回调建议二者只选择配置一个。
例如若希望使用穿山甲的激励回调,则不需要在Taku后台创建。
(2) 是否一定要配置服务端端激励回调
一般来说,若产品策略,需要针对不同的eCPM/广告场景下发不同的奖励,则需要配置服务端激励回调。
例如:希望给在特定广告场景观看了广告的用户发放特殊的奖励。
若没有这一类的需求,则可以不配置服务端端激励回调。