すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:プリセットブースの設定

最終更新日:Jan 17, 2025

HTML5 ページでのプリセットブースの操作には、ブース情報の取得のみが含まれます。取得方法は、個別取得一括取得です。

ブース情報の取得に加えて、API 操作を呼び出すことで、ブース情報と広告情報をインターセプトすることもできます。

このタスクについて

初心者の方は、mPaaS コンソール(サーバー側)で iOS ページの広告ブースを動的に設定することをお勧めします。詳細については、「ブースを作成する」をご参照ください。

個別取得

getCdpSpaceInfo を HTML5 ページで呼び出して、ブース情報を取得します。

AlipayJSBridge.call('getCdpSpaceInfo', {
  spaceCode: 'space-code1',
  extInfo: {
    tradeNo: '123'
  },
  immediately: false,
  multiCallback: true
}, function (result) {
  console.log(result);
});

各項目の説明:

  • spaceCode: ブースコード。バックエンドに申請します。

  • extInfo: 拡張情報。キーと値の形式です。

  • immediately: ブール値。キャッシュデータが不要で、サーバーから直接データを取得するかどうかを示します。デフォルトでは、データはキャッシュから読み取られ、転送する必要はありません。

  • multiCallback: ブール値。API を 1 回呼び出したときに複数回のコールバックが必要かどうかを示します。

説明

multiCallbackNO に設定されているか、設定されていない場合、コールバックは 1 回だけ実行されます。キャッシュメカニズムが存在する場合、ページを初めて開いたときにスケジュールどおりに広告が表示されず、次にページを開いたときに表示されます。このパラメータを YES に設定した場合は、MCDP コールバックを 2 回実行する必要があります。最初のコールバックはキャッシュデータ(キャッシュがある場合)、2 番目のコールバックは RPC から返された結果です。

一括取得

getCdpSpaceInfos を HTML5 ページで呼び出して、ブース情報を取得します。

AlipayJSBridge.call('getCdpSpaceInfos', {
  spaceCodes: ['space-code1', 'space-code2'],
  extInfo: {
    tradeNo: '123'
  },
  immediately: false,
  multiCallback: true
}, function (result) {
  console.log(result);
});
/**
 * MCDP 広告サービス API
 *
 */
public abstract class CdpAdvertisementService extends ExternalService {

    /**
     * すべての広告情報を初期化します。
     *
     * @param extInfo 拡張情報。
     * @param callBack コールバック。
     */
    public abstract void initialized(Map<String, String> extInfo, IAdGetSpaceInfoCallBack callBack);

    /**
     * ブース ID でブースを照会します。非同期で onSuccess(SpaceInfo spaceInfo) をコールバックして、クエリ結果を返します。
     * ローカルキャッシュが存在しない場合は、RPC クエリ結果がコールバックされます。
     * ローカルキャッシュが存在し、更新時刻より前の場合は、ローカルクエリ結果がコールバックされます。
     * ローカルキャッシュが存在し、更新時刻より前の場合は、ローカルクエリ結果がコールバックされ、その後 RPC 後に更新結果がコールバックされます。
     * onFail() API は、RPC が失敗した場合にのみコールバックされます。
     *
     * @param spaceCode ブース ID。広告配信プラットフォームに申請する必要があります。
     * @param callback コールバック API。
     */
    public abstract void getSpaceInfoByCode(String spaceCode, IAdGetSingleSpaceInfoCallBack callback);

    /**
     * ブース ID でブースを照会します。非同期で onSuccess(SpaceInfo spaceInfo) をコールバックして、クエリ結果を返します。
     * ローカルキャッシュが存在しない場合は、RPC クエリ結果がコールバックされます。
     * ローカルキャッシュが存在し、更新時刻より前の場合は、ローカルクエリ結果がコールバックされます。
     * ローカルキャッシュが存在し、更新時刻より前の場合は、ローカルクエリ結果がコールバックされ、その後 RPC 後に更新結果がコールバックされます。
     * onFail() API は、RPC が失敗した場合にのみコールバックされます。
     *
     * @param spaceCode ブース ID。広告配信プラットフォームに申請する必要があります。
     * @param extInfo 拡張パラメータ。
     * @param immediately RPC 結果のみを返します。
     * @param callback コールバック API。
     */
    public abstract void getSpaceInfoByCode(String spaceCode, Map<String, String> extInfo, boolean immediately, final IAdGetSingleSpaceInfoCallBack callback);

    /**
     * ブース ID リストに基づいてブースを一括で照会します。非同期で onSuccess(List<SpaceInfo> adSpaceInfo) をコールバックして、クエリ結果を返します。
     * ローカルキャッシュが存在しない場合は、RPC クエリ結果がコールバックされます。
     * ローカルキャッシュが存在し、更新時刻より前の場合は、ローカルクエリ結果がコールバックされます。
     * ローカルキャッシュが存在し、更新時刻より前の場合は、ローカルクエリ結果がコールバックされ、その後 RPC 後に更新結果がコールバックされます。
     * RPC が失敗した場合にのみ、onFail(ListString adSpaceCodes) API をコールバックします。
     *
     * @param spaceCodeList ブース ID リスト。広告配信プラットフォームに申請する必要があります。
     * @param extInfo 拡張パラメータ。
     * @param immediately RPC 結果のみを返します。
     * @param callback コールバック API。
     */
    public abstract void batchGetSpaceInfoByCode(List<String> spaceCodeList, Map<String, String> extInfo, boolean immediately, final IAdGetSpaceInfoCallBack callback);

    /**
     * TODO: 予約済み H5 API。
     * 広告を照会して表示します。AdH5Plugin によってのみ呼び出されます。
     *
     * @param activity 現在のページ。
     * @param parentView 親コントロール。
     * @param url URL。
     * @param h5Param パラメータ。
     */
    public abstract void checkAndShowAdInH5(final Activity activity, ViewGroup parentView, String url, String h5Param);

    /**
     * 指定された spaceCode の広告ビューを削除します。
     *
     * @param activity アナウンスを削除するページ。
     * @param spaceCode 広告 ID
     */
    public abstract void removeAdvertisement(Activity activity, String spaceCode);

    /**
     * アクションエグゼキュータを取得します。このパラメータが設定されていない場合は、null が返されます。
     *
     * @return アクションエグゼキュータ。
     */
    public abstract ActionExecutor getActionExecutor();

    /**
     * アクションエグゼキュータを設定します。
     *
     * @param executor アクションエグゼキュータ。
     */
    public abstract void setActionExecutor(ActionExecutor executor);


    /**
     * ユーザー ID を設定します。
     *
     * @param userId ユーザー ID。
     */
    public abstract void setUserId(String userId);

    /**
     * ユーザー ID を取得します。
     *
     * @return ユーザー ID。
     */
    public abstract String getUserId();

    /**
     * 広告ブースのコールバッククラスを取得します。
     */
    public interface IAdGetSpaceInfoCallBack {
        /**
         * ブース情報の取得に成功しました。
         *
         * @param adSpaceInfo ブースリスト。
         */
        void onSuccess(List<SpaceInfo> adSpaceInfo);

        /**
         * ブース情報の取得に失敗しました。
         *
         * @param adSpaceCodes ブースリクエストのコードリスト。
         */
        void onFail(List<String> adSpaceCodes);
    }

    /**
     * 単一ブースのコールバッククラスを取得します。
     */
    public interface IAdGetSingleSpaceInfoCallBack {
        /**
         * ブース情報の取得に成功しました。
         *
         * @param spaceInfo ブース情報。
         */
        void onSuccess(SpaceInfo spaceInfo);

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

ActionExecutor

ActionExecutor(アクションエグゼキュータ)は、ブースと広告情報のインターセプトを実装します。クライアントは、インターセプト後に対応するブースと広告コンテンツを表示せず、インターセプトなしでブースと広告コンテンツを表示します。

/**
 * アクションエグゼキュータ
 *
 */
public interface ActionExecutor {

    /**
     * アクションをインターセプトするかどうか
     * @param spaceInfo ブース情報。
     * @param spaceObjectInfo 広告情報。
     * @param url アクション URL。
     * @return 値 true はアクションをインターセプトすることを示し、false はそれ以外を示します。
     */
    boolean interceptAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);

    /**
     * アクションを実行します。
     *
     * @param spaceInfo ブース情報。
     * @param spaceObjectInfo 広告情報。
     * @param url アクション URL。
     * @return 値 1 は成功を示し、その他の値は例外を示します。
     */
    int executeAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);
}