キャンペーン(クロスプロモーション)
キャンペーンは、クロスプロモーションを実現する機能です。「アプリ詳細」で説明している「広告プレースホルダーの広告ユニット → クロスプロモーション」のマッピングを使って、自社アプリ内で別の自社アプリを宣伝できます。
キャンペーン一覧
キャンペーンページ(/campaigns)には、作成したすべてのキャンペーンが表形式で表示されます。列は、行番号、タイトル、ターゲットアプリ(名前とパッケージを2行で表示)、キャンペーンタイプ(現在は常に「クロスプロモーション」。タイプ選択には「ネットワーク広告」という概念もありますが、実際の選択肢としては提供されていません)、ステータスと優先度(どちらも色付きのピル型ラベルで表示され、並べ替え可能)、開始日、終了日、作成日時、更新日時(後者2つも並べ替え可能)、操作(編集と削除)です。

一覧は、キャンペーンステータス、優先度、ターゲットブランドで絞り込めます。いずれも選択肢が動的に読み込まれる複数選択フィルターです。キャンペーンを編集する場合(鉛筆アイコン)、後述のウィザードが編集モードで開きます。削除する場合は、最初に確認が表示されます。削除は取り消せません。
+ 作成ボタンは、現在のプランでクロスプロモーションキャンペーンを追加作成できる場合(canCreateCampaign())にのみ利用できます。プランのキャンペーン数の上限に達すると、代わりに使用状況(「キャンペーン使用数:X/Y」)と、サブスクリプションページへの「🔒 アップグレード」リンクが表示されます。
キャンペーンの作成・編集 — ウィザード
+ 作成をクリックするか、既存のキャンペーンを編集すると、ステップ形式のウィザードが開きます。ウィザードは4ステップではなく、5ステップで構成されています。既存のキャンペーンを編集する際は最初のステップが自動的にスキップされるため、ステップ数を少なく数えがちです(キャンペーンの作成後はタイプを変更できません)。各ステップでは、一貫して「下書きしてから保存する」方式を採用しています。入力中の変更は、そのステップのコンポーネントのローカル状態にのみ保持されます。保存ボタンをクリックし、対応する API 呼び出しが成功するまでは、ウィザードの共有コンテキストには書き込まれず、サーバーにも永続化されません。未保存の変更がある状態で移動しようとすると、「未保存の変更があります。このページを離れてもよろしいですか?」という確認(「はい、離れる」/「このページに留まる」)が表示され、作業内容の消失を防ぎます。
ステップ1 — キャンペーンタイプの選択
選択できるカードは、クロスプロモーション(「他の自社アプリのユーザーに、自社アプリを宣伝します」)の1つだけです。実際に選択できるのはこのタイプのみです。内部コードには、将来の利用に向けたプレースホルダーとして「ネットワーク広告」という2つ目のタイプも存在しますが、現在の UI では選択できません。次へをクリックすると次のステップに進みます。ステップ2までは何も作成されないため、このステップ自体ではサーバーへの呼び出しは行いません。編集モードでは、このステップ全体がスキップされ、既存のキャンペーンタイプが確定した状態でステップ2が直接開きます。
ステップ2 — キャンペーン設定

このステップでは、キャンペーンの作成(作成モードでの初回保存時)と、基本設定の編集(編集モード)を行います。設定項目は次のとおりです。
- キャンペーンステータス切り替え — 編集モードのみ。アクティブと一時停止を切り替えるスイッチです。どちらに切り替える場合も確認ダイアログが表示されます(「キャンペーンを有効化しますか?」/「キャンペーンを一時停止しますか?」)。キャンペーンを有効化しようとすると、保存前に、クリエイティブが1つ以上存在し、そのうち少なくとも1つがアクティブであることを確認します。条件を満たさない場合は、「キャンペーンを有効化できません — まずクリエイティブを1つ以上追加してください」または「…少なくとも1つのクリエイティブをアクティブにする必要があります」と表示され、切り替えは反映されません。
- キャンペーンタイトル — 必須のテキストフィールドです。
- ブランドの選択 — 自社ブランドを選ぶ必須のドロップダウンです。アプリ一覧はブランドに依存するため、ブランドを変更すると「宣伝するアプリ」の選択が解除されます。
- 宣伝するアプリ — 必須のドロップダウンです。選択したブランドに応じたアプリが表示されます。ブランドを選択するまでは無効になっています。
- キャンペーンの優先度 — 高 / 中 / 低の3つのピル型ボタンから選択します。デフォルトは「中」です。
- キャンペーン開始 — 「即時」または特定の日付を指定します。日付を指定する場合、過去の日付は選べません(今日の日付と比較してチェックされます)。ただし、編集モードで保存済みの日付を変更していない場合、この過去日チェックはスキップされます。
- キャンペーン終了 — 「なし(終了日なし)」または特定の日付を指定します。開始日と同じく過去の日付は指定できず、さらに終了日が開始日より後であることもチェックされます。
**アクティブ時のフィールドロック:**キャンペーンがアクティブになると、ブランド、宣伝するアプリ、開始日/即時の設定は変更できなくなります。これらのフィールドは無効になり、簡単な説明(「…キャンペーンがアクティブな間は変更できません」)が表示されます。タイトル、優先度、終了日は引き続き変更でき、切り替えスイッチで一時停止することもできます。
保存時(作成モードでは保存して次へ、編集モードでは保存)には、タイトル、ターゲットアプリ、キャンペーンタイプ、優先度、算出された開始日/終了日、および編集モードの場合はステータスがサーバーに送信されます。初回作成時は、レスポンスに既存の配信先/地域データが含まれていれば、それを使ってステップ3の初期状態を設定します。これらの情報がウィザードの共有コンテキストに書き込まれるのは、API 呼び出しが成功した後だけです。
ステップ3 — ターゲティング

ターゲティングは、実際には独立した2つのサブセクションで構成されています。配信先(自社のどのブランド/アプリにこのキャンペーンを表示するか)と地域(どの国で配信するか)が、1つのステップと1つの保存ボタンを共有しています。
**配信先。**チェックリストで、次のいずれかを選択します。
- すべてのブランド — 全体を対象にする単一のチェックボックスです。後から追加されるものも含め、所有するすべてのブランドとアプリでキャンペーンを表示できるようになります。
- 特定のブランド — スクロール可能なリストから1つ以上のブランドを選択します。各ブランドには、そのブランドのアプリのサブリストがあります。選択したブランド内では、個別のアプリにチェックを入れるか、ブランドごとの「すべて(今後追加されるアプリを含む)」にチェックを入れます。後者では、アプリを1つずつ選ばなくても、そのブランドに属するすべてのアプリ(現在および今後追加されるもの)が対象になります。
チェックリストの上には、「選択したブランド」と「選択したアプリ」の概要がチップで随時表示され、現在のターゲティング設定をひと目で確認できます。
地域。「すべて選択」ショートカット付きの国の複数選択フィールドで、キャンペーンの配信国を制限するかどうかを設定します。制限しない場合、キャンペーンはすべての地域で配信されます。この地域選択は、このガイドで後述する名前付きの「地域グループ」機能とは意図的に分離されています。キャンペーンごとに名前を付けずに国を選ぶシンプルな設定であり、保存して再利用できるグループではありません。(国の動的リストをサーバーから読み込めない場合は、16か国の小規模なフォールバックリストが使用されます。このため、この選択フィールドのフォールバック時の選択肢は、「地域グループ」のものより少なくなっています。)
両サブセクションとも、ウィザードの他のステップと同じ下書き/保存の動作に従います。変更は「保存」(または「保存して次へ」)をクリックするまでローカルに保持されます。クリックすると、配信先と地域がそれぞれ別の API 呼び出しで永続化され、その後で初めてウィザードの共有状態に統合されます。
ステップ4 — クリエイティブ

ここでは、キャンペーン配信時に実際に表示する広告クリエイティブをアップロードします。
新しいクリエイティブの追加。表形式の「新しいクリエイティブを追加」フォームで、1行以上をまとめて追加できます(+ クリエイティブを追加リンクで空の行を追加し、ゴミ箱アイコンで行を削除します)。各行には次の項目があります。
- 画像 — 空の正方形をクリックしてアップロードします。対応形式は JPEG、PNG、JPG、GIF、WebP、最大サイズは10MBです。条件を満たさないファイルは受け付けられず、具体的なエラーがその場に表示されます(形式が正しくない旨、または実際のサイズを示す「最大10MB(X.XXMB)」)。
- 名前 — 必須のテキストです。
- ターゲット URL — 必須です。有効な
http://またはhttps://の URL である必要があり、入力中にリアルタイムで検証されます。 - 広告タイプ — インタースティシャル、バナー、ネイティブ、リワード、appOpen から選択します(他の箇所の広告ユニットでも使用される5種類のフォーマットと同じです)。
保存して次へ(作成モード)または保存(編集モード)をクリックすると、空でないすべての行が検証され、各画像がアップロードされた後、API 経由で各クリエイティブが作成されます。保存済みリストに追加されるのは、処理が成功したクリエイティブだけです。保存に失敗したものがある場合は失敗件数が表示され、再試行できます。作成モードでは、クリエイティブを1つ以上追加しないと、このステップから先に進めません。
**保存済みクリエイティブ一覧。**保存済みのクリエイティブは、新規追加フォームの上にカード形式で表示されます。各カードには、サムネイル(クリックで拡大)、名前、広告タイプ、ターゲット URL、切り替えスイッチ付きのアクティブ/非アクティブのピル型ステータスラベル、編集(鉛筆)ボタン、削除(ゴミ箱)ボタンが表示されます。
- キャンペーン内で唯一アクティブなクリエイティブは、非アクティブに切り替えられません(「少なくとも1つのクリエイティブをアクティブにしておく必要があります」)。それ以外の切り替えでは、「クリエイティブを有効化/無効化しますか?」という簡単な確認が表示されます。
- 編集(鉛筆)ボタンをクリックすると、そのクリエイティブ専用のインライン編集フォームが開きます(名前、画像、ターゲット URL を編集可能。広告タイプは変更不可)。このフォームには専用の「保存」/「キャンセル」ボタンがあります。
- 削除時には「この操作は取り消せません!」という確認が表示され、その後クリエイティブが完全に削除されます。
ステップ5 — キャンペーンの確認

ステップ2〜4で入力したすべての内容が、読み取り専用の概要として表示されます。表示項目は、キャンペーンステータス、タイトル、タイプ、ブランド、宣伝するアプリ、優先度、開始日、終了日、1行のターゲティング概要(例:「すべてのブランド · すべてのアプリ」、またはブランドごとの内訳)、選択した地域(チップ、または「すべての地域」)、およびすべてのクリエイティブの一覧(サムネイル、名前、ターゲット URL、広告タイプのバッジ付き)です。
作成モードの場合のみ、このステップの最上部に操作可能なステータス切り替え(アクティブ/一時停止)も表示されます。有効化の条件はステップ2と同じです。クリエイティブが存在しない場合、またはアクティブなクリエイティブがない場合は有効化できず、「キャンペーンを有効化できません」と表示されます。編集モードでは、代わりにステータスが読み取り専用のバッジとして表示されます。ステータスを変更するには、この画面ではなくステップ2の切り替えスイッチを使用します。
完了をクリックすると、キャンペーン一覧に戻ります。編集モードでは、先に「キャンペーンを保存しました」という簡単な確認メッセージが表示されます。作成モードでは、各ステップですでに保存されているため、追加の確認なしでそのまま一覧に戻ります。