全部产品
云市场
云游戏

API 接口说明

更新时间:2020-05-15 14:52:51

  • CdpAdvertisementService:mPaaS 中间层的 CdpAdvertisementService 中封装了智能投放组件的接口,通过调用这些接口,可实现智能投放的相关功能。
  • ActionExecutor:本接口实现展位和广告信息的拦截。拦截时,客户端将不展示相应展位以及广告内容;不拦截时,则展示展位以及广告内容。
  • Refresh:全量更新状态。用于在用户更换地区、用户 ID 等场景下重新请求广告。

CdpAdvertisementService

  1. /**
  2. * Cdp广告服务接口
  3. *
  4. */
  5. public abstract class CdpAdvertisementService extends ExternalService {
  6. /**
  7. * 初始化所有广告信息
  8. *
  9. * @param extInfo 扩展信息
  10. * @param callBack 回调
  11. */
  12. public abstract void initialized(Map<String, String> extInfo, IAdGetSpaceInfoCallBack callBack);
  13. /**
  14. * 通过展位 ID查询展位,异步callback onSuccess(SpaceInfo spaceInfo)返回查询结果。
  15. * 若无本地缓存,则callback一次RPC查询结果。
  16. * 若有本地缓存且未到更新时间,则callback一次本地查询结果。
  17. * 若有本地缓存且已到更新时间,则callback一次本地查询结果,RPC完毕后再callback一次更新的结果。
  18. * 仅在RPC失败时会callback onFail()接口。
  19. *
  20. * @param spaceCode 展位 ID,需要向投放平台申请
  21. * @param callback 回调接口
  22. */
  23. public abstract void getSpaceInfoByCode(String spaceCode, IAdGetSingleSpaceInfoCallBack callback);
  24. /**
  25. * 通过展位 ID查询展位,异步callback onSuccess(SpaceInfo spaceInfo)返回查询结果。
  26. * 若无本地缓存,则callback一次RPC查询结果。
  27. * 若有本地缓存且未到更新时间,则callback一次本地查询结果。
  28. * 若有本地缓存且已到更新时间,则callback一次本地查询结果,RPC完毕后再callback一次更新的结果。
  29. * 仅在RPC失败时会callback onFail()接口。
  30. *
  31. * @param spaceCode 展位 ID,需要向投放平台申请
  32. * @param extInfo 扩展参数
  33. * @param immediately 只返回RPC结果
  34. * @param callback 回调接口
  35. */
  36. public abstract void getSpaceInfoByCode(String spaceCode, Map<String, String> extInfo, boolean immediately, final IAdGetSingleSpaceInfoCallBack callback);
  37. /**
  38. * 通过展位 ID list批量查询展位,异步onSuccess(List<SpaceInfo> adSpaceInfo)返回查询结果。
  39. * 若无本地缓存,则callback一次RPC查询结果。
  40. * 若有本地缓存且未到更新时间,则callback一次本地查询结果。
  41. * 若有本地缓存且已到更新时间,则callback一次本地查询结果,RPC完毕后再callback一次更新的结果。
  42. * 仅在RPC失败时会callback onFail(List<String> adSpaceCodes)接口。
  43. *
  44. * @param spaceCodeList 展位 ID list,需要向投放平台申请
  45. * @param extInfo 扩展参数
  46. * @param immediately 只返回RPC结果
  47. * @param callback 回调接口
  48. */
  49. public abstract void batchGetSpaceInfoByCode(List<String> spaceCodeList, Map<String, String> extInfo, boolean immediately, final IAdGetSpaceInfoCallBack callback);
  50. /**
  51. * H5 接口
  52. * 查询并展示广告,目前仅供AdH5Plugin调用
  53. *
  54. * @param activity 当前页面
  55. * @param parentView 父控件
  56. * @param url 地址
  57. * @param h5Param 参数
  58. */
  59. public abstract void checkAndShowAdInH5(final Activity activity, ViewGroup parentView, String url, String h5Param);
  60. /**
  61. * 移除指定spaceCode的广告view
  62. *
  63. * @param activity 需要移除公告的页面
  64. * @param spaceCode 广告ID
  65. */
  66. public abstract void removeAdvertisement(Activity activity, String spaceCode);
  67. /**
  68. * 获取action执行器,没有设置则返回null
  69. *
  70. * @return action执行器
  71. */
  72. public abstract ActionExecutor getActionExecutor();
  73. /**
  74. * 设置action执行器
  75. *
  76. * @param executor action执行器
  77. */
  78. public abstract void setActionExecutor(ActionExecutor executor);
  79. /**
  80. * 设置用户id
  81. *
  82. * @param userId 用户id
  83. */
  84. public abstract void setUserId(String userId);
  85. /**
  86. * 获取用户id
  87. *
  88. * @return 用户id
  89. */
  90. public abstract String getUserId();
  91. /**
  92. * 获取广告展位的回调类
  93. */
  94. public interface IAdGetSpaceInfoCallBack {
  95. /**
  96. * 获取展位信息成功
  97. *
  98. * @param adSpaceInfo 展位列表
  99. */
  100. void onSuccess(List<SpaceInfo> adSpaceInfo);
  101. /**
  102. * 获取展位信息失败
  103. *
  104. * @param adSpaceCodes 展位请求code列表
  105. */
  106. void onFail(List<String> adSpaceCodes);
  107. }
  108. /**
  109. * 获取单个展位的回调类
  110. */
  111. public interface IAdGetSingleSpaceInfoCallBack {
  112. /**
  113. * 获取展位信息成功
  114. *
  115. * @param spaceInfo 展位信息
  116. */
  117. void onSuccess(SpaceInfo spaceInfo);
  118. /**
  119. * 失败
  120. */
  121. void onFail();
  122. }
  123. }

ActionExecutor

  1. /**
  2. * Action 处理器
  3. *
  4. */
  5. public interface ActionExecutor {
  6. /**
  7. * 是否拦截Action
  8. * @param spaceInfo 展位信息
  9. * @param spaceObjectInfo 广告信息
  10. * @param url action url
  11. * @return true表示拦截该action,false表示不拦截
  12. */
  13. boolean interceptAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);
  14. /**
  15. * 执行Action
  16. *
  17. * @param spaceInfo 展位信息
  18. * @param spaceObjectInfo 广告信息
  19. * @param url action url
  20. * @return 1表示执行成功,其他值表示异常
  21. */
  22. int executeAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);
  23. }

Refresh

  1. /**
  2. * 全量更新状态回调
  3. *
  4. */
  5. public interface IRefreshZoneCallBack{
  6. /**
  7. * 开始刷新
  8. *
  9. */
  10. void onStart();
  11. /**
  12. * 结束刷新
  13. */
  14. void onEnd();
  15. }
  16. /**
  17. * 当用户更换地区、用户id 等场景下重新请求广告
  18. * @since 3.0
  19. * @param callBack
  20. */
  21. public abstract void refresh(IRefreshZoneCallBack callBack);

控制弹屏的最大范围

  • 适用场景:当希望展示更大的弹屏页面时使用。
  • 适用 SDK 版本: 10.1.60。
  • 通过 XML 预置:
    • 指定弹屏页面的最大高度:
      1. <meta-data
      2. android:name="com.mpaas.cdp.space.height"
      3. android:value="xxx" />
    • 指定弹屏页面的最大高度:
      1. <meta-data
      2. android:name="com.mpaas.cdp.space.width"
      3. android:value="xxx" />
    • 指定弹屏页面使用PX OR DP 分辨率 默认为DP:
      1. <meta-data
      2. android:name="com.mpaas.cdp.space.dpmode "
      3. android:value="dp" />

强制全量刷新所有的展位

  • 适用场景:当用户使用过程中,发生切换用户、切换地区等操作时。
  • 适用 SDK 版本:大于 3.0。
  1. 步骤一
    1. private CdpAdvertisementService findCdpApiService() {
    2. return LauncherApplicationAgent.getInstance()
    3. .getMicroApplicationContext()
    4. .findServiceByInterface(CdpAdvertisementService.class.getName());
    5. }
  2. 步骤二
    1. findCdpApiService().refresh(new CdpAdvertisementService.IRefreshZoneCallBack(){});

设置 RPC 请求的拓展参数

适用 SDK 版本:大于 3.0。

  1. MCdpApi.API.api().setExportApi(new IMCdpExportApi (){
  2. public Map<String, String> getExtras() {
  3. HashMap<String, String> extras = new HashMap<>();
  4. extras.put("cdp_extend_params_xxxx", String.valueOf(1));
  5. return extras;
  6. }
  7. });