全部產品
Search
文件中心

Mobile Platform as a Service:API 說明

更新時間:Jul 13, 2024

本文對智能投放用戶端接入主要涉及的 API 進行說明。

  • CdpAdvertisementService:mPaaS 中介層的 CdpAdvertisementService 中封裝了智能投放組件的介面,通過調用這些介面,可實現智能投放的相關功能。

  • ActionExecutor:本介面實現展位和廣告資訊的攔截。攔截時,用戶端將不展示相應展位以及廣告內容;不攔截時,則展示展位以及廣告內容。

  • Refresh:全量更新狀態。用於在使用者更換地區、使用者識別碼 等情境下重新請求廣告。

CdpAdvertisementService

/**
 * Cdp廣告服務介面
 *
 */
public abstract class CdpAdvertisementService extends ExternalService {

    /**
     * 初始化所有廣告資訊
     *
     * @param extInfo  擴充資訊
     * @param callBack 回調
     */
    public abstract void initialized(Map<String, String> extInfo, IAdGetSpaceInfoCallBack callBack);

    /**
     * 通過展位 ID 查詢展位,非同步callback onSuccess(SpaceInfo spaceInfo)返回查詢結果。
     * 若無本機快取,則callback一次RPC查詢結果。
     * 若有本機快取且未到更新時間,則callback一次本地查詢結果。
     * 若有本機快取且已到更新時間,則callback一次本地查詢結果,RPC完畢後再callback一次更新的結果。
     * 僅在RPC失敗時會callback onFail()介面。
     *
     * @param spaceCode 展位 ID,需要向投放平台申請
     * @param callback  回調介面
     */
    public abstract void getSpaceInfoByCode(String spaceCode, IAdGetSingleSpaceInfoCallBack callback);

    /**
     * 通過展位 ID查詢展位,非同步callback onSuccess(SpaceInfo spaceInfo)返回查詢結果。
     * 若無本機快取,則callback一次RPC查詢結果。
     * 若有本機快取且未到更新時間,則callback一次本地查詢結果。
     * 若有本機快取且已到更新時間,則callback一次本地查詢結果,RPC完畢後再callback一次更新的結果。
     * 僅在RPC失敗時會callback onFail()介面。
     *
     * @param spaceCode   展位 ID,需要向投放平台申請
     * @param extInfo     擴充參數
     * @param immediately 只返回 RPC 結果
     * @param callback    回調介面
     */
    public abstract void getSpaceInfoByCode(String spaceCode, Map<String, String> extInfo, boolean immediately, final IAdGetSingleSpaceInfoCallBack callback);

    /**
     * 通過展位 ID list批量查詢展位,非同步onSuccess(List<SpaceInfo> adSpaceInfo)返回查詢結果。
     * 若無本機快取,則callback一次RPC查詢結果。
     * 若有本機快取且未到更新時間,則callback一次本地查詢結果。
     * 若有本機快取且已到更新時間,則callback一次本地查詢結果,RPC完畢後再callback一次更新的結果。
     * 僅在RPC失敗時會callback onFail(List<String> adSpaceCodes)介面。
     *
     * @param spaceCodeList 展位 ID list,需要向投放平台申請
     * @param extInfo       擴充參數
     * @param immediately   只返回RPC結果
     * @param callback      回調介面
     */
    public abstract void batchGetSpaceInfoByCode(List<String> spaceCodeList, Map<String, String> extInfo, boolean immediately, final IAdGetSpaceInfoCallBack callback);

    /**
     * H5 介面
     * 查詢並展示廣告,目前僅供AdH5Plugin調用
     *
     * @param activity   當前頁面
     * @param parentView 父控制項
     * @param url        地址
     * @param h5Param    參數
     */
    public abstract void checkAndShowAdInH5(final Activity activity, ViewGroup parentView, String url, String h5Param);

    /**
     * 移除指定spaceCode的廣告view
     *
     * @param activity  需要移除公告的頁面
     * @param spaceCode 廣告識別碼
     */
    public abstract void removeAdvertisement(Activity activity, String spaceCode);

    /**
     * 擷取 action 執行器,沒有設定則返回 null
     *
     * @return action 執行器
     */
    public abstract ActionExecutor getActionExecutor();

    /**
     * 設定 action 執行器
     *
     * @param executor action 執行器
     */
    public abstract void setActionExecutor(ActionExecutor executor);


    /**
     * 設定使用者識別碼
     *
     * @param userId 使用者識別碼
     */
    public abstract void setUserId(String userId);

    /**
     * 擷取使用者識別碼
     *
     * @return 使用者識別碼
     */
    public abstract String getUserId();

    /**
     * 擷取廣告展位的回調類
     */
    public interface IAdGetSpaceInfoCallBack {
        /**
         * 擷取展位資訊成功
         *
         * @param adSpaceInfo 展位列表
         */
        void onSuccess(List<SpaceInfo> adSpaceInfo);

        /**
         * 擷取展位資訊失敗
         *
         * @param adSpaceCodes 展位請求code列表
         */
        void onFail(List<String> adSpaceCodes);
    }

    /**
     * 擷取單個展位的回調類
     */
    public interface IAdGetSingleSpaceInfoCallBack {
        /**
         * 擷取展位資訊成功
         *
         * @param spaceInfo 展位資訊
         */
        void onSuccess(SpaceInfo spaceInfo);

        /**
         * 失敗
         */
        void onFail();
    }
}

ActionExecutor

/**
 * Action 處理器
 *
 */
public interface ActionExecutor {

    /**
     * 是否攔截 Action
     * @param spaceInfo 展位資訊
     * @param spaceObjectInfo 廣告資訊
     * @param url action url
     * @return true表示攔截該 action,false 表示不攔截
     */
    boolean interceptAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);

    /**
     * 執行Action
     *
     * @param spaceInfo 展位資訊
     * @param spaceObjectInfo 廣告資訊
     * @param url action url
     * @return 1表示執行成功,其他值表示異常
     */
    int executeAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);
}

Refresh

     /**
     *  全量更新狀態回調
     *
     */

   public interface IRefreshZoneCallBack{
        /**
         *  開始重新整理
         *
         */
        void onStart();

        /**
         * 結束重新整理
         */
        void onEnd();
    } 

  /**
     * 當使用者更換地區、使用者id 等情境下重新請求廣告
     * @since  3.0
     * @param callBack
     */
   public abstract void refresh(IRefreshZoneCallBack callBack);