context-targeting:writeスコープを持つAPIキーが必要です。オプショングループの取得にはcontext-targeting:readが必要です。事前準備を参照してください。
このページの例では News Sections ターゲティング(01JAB3XK5Q8V7M2N4P6R9T0W1Y)に、下位オプション Baseball と Soccer を持つ Sports オプショングループを作成します。オプション名はターゲティング内で一意である必要があるため、このターゲティングには Sports という名前のオプションがほかにないものとします。
オプショングループとは
オプショングループは、自身のコンテキストIDと下位オプションのコンテキストIDの両方に一致します。次の構成では Sports を含むキャンペーンが、コンテキストIDがsport、baseball、soccerのいずれかである広告リクエストに一致します。
- 階層は1段階のみ:下位オプションは常に通常のオプション(
type: "atomic")です。オプショングループは常に最上位のオプションで、ほかのオプショングループを含むことはできません。 - 空にはできない:オプショングループには、下位オプションか自身のコンテキストIDが少なくとも1つ必要です。
- 自身のコンテキストIDは一意:オプショングループ自身のコンテキストIDを、プロジェクト内のほかのオプショングループの自身のコンテキストIDと重複させることはできません。制約事項を参照してください。
- 名前:オプショングループと下位オプションの名前は名前のルールに従い、オプショングループと下位オプションを含めてターゲティング内で一意である必要があります。重複すると
409 TARGETING_CATEGORY_NAME_DUPLICATEで失敗します。
オプショングループの内容は、次のように取得します。
- オプションの取得の
contextsにはオプショングループ自身のコンテキストIDだけが含まれ、offsetとlimitでページ単位に取得します(合計ownContextCount件)。下位オプションのコンテキストIDは、各下位オプションを取得して確認してください。 childCountが50を超える場合は、オプション一覧の取得でparentクエリパラメータにオプショングループIDを指定すると、すべての下位オプションを取得できます。
contextsで変更されるのは自身のコンテキストIDだけです。変更は少し時間をおいて広告配信に反映されます。変更が反映されるタイミングを参照してください。
オプショングループの作成
オプションの追加と同じエンドポイントに、type: "collection"とchildrenのどちらか、または両方を指定して送信します。childrenの各項目は新しい下位オプションになり、オプショングループと一緒に作成されます。
リクエスト
パスパラメータ
リクエストボディ
childrenに1件以上の項目、またはcontextsに1つ以上のコンテキストIDを指定してください。どちらもないオプショングループは400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。type: "atomic"とchildrenを一緒に指定した場合も同様です。childrenの項目に指定できるのはnameとcontextsだけです。下位オプションが自身の下位オプションを持つことはできません。- オプショングループ自身のコンテキストIDのいずれかが、プロジェクト内のほかのオプショングループの自身のコンテキストIDとしてすでに使われている場合、リクエストは
400 TARGETING_COLLECTION_CONTEXT_DUPLICATEDで失敗します。制約事項を参照してください。 - 新しいオプショングループは新しい最上位オプションなので、ほかの新しいオプションと同じく広告商品とキャンペーンへの影響が適用されます。
categoriesの各項目に同じフィールドを指定して作成することも、オプションの一括追加で作成することもできます。
リクエスト例
type: "collection"を指定し、childrenは省略します。
レスポンス例
レスポンスは201で、作成されたオプショングループが返されます。
オプショングループへのオプション追加
既存のオプショングループに新しい下位オプションを追加するには、オプションの追加のエンドポイントに、parentとしてオプショングループIDを指定して送信します。
parentには、同じターゲティング内の最上位のオプショングループを指定する必要があります。ターゲティングにそのIDのオプションがない場合、リクエストは404 TARGETING_CATEGORY_NOT_FOUNDで失敗します。そのオプションがオプショングループでない場合は400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。- 新しいオプションは通常のオプションになります。
parentと一緒にtype: "collection"、children、exposeChildrenのいずれかを指定すると、400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。 - オプショングループは、新しいオプションのコンテキストIDにも一致するようになります。オプショングループを含むキャンペーンはそれらのコンテキストIDもターゲットにし、オプショングループを除外するキャンペーンはそれらも除外するようになります。広告商品の設定は変わりません。
リクエスト
パスパラメータ
リクエストボディ
リクエスト例
レスポンス例
レスポンスは201で、作成された下位オプションが返されます。
オプションの移動と切り離し
オプションの位置を変更するには、オプションの更新でparentを送信します。
- オプショングループIDを指定すると、オプションは最上位またはほかのオプショングループから、そのオプショングループの下に移動します。
nullを指定すると、下位オプションはオプショングループから切り離され、最上位に移動します。
移動先のオプショングループはそのオプションのコンテキストIDに一致するようになり、移動元のオプショングループは一致しなくなります。
- オプショングループは移動できません。オプショングループに
parentを指定すると400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。 - 移動先は、同じターゲティング内の最上位のオプショングループである必要があります。そうでない場合、リクエストは
404 TARGETING_CATEGORY_NOT_FOUNDまたは400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。 - 自身のコンテキストIDを持たないオプショングループの最後の下位オプションは、移動も切り離しもできません。リクエストは
400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。
リクエスト
パスパラメータ
リクエストボディ
parentはcontextsと一緒に指定できません。コンテキストIDは別のリクエストで変更してください。
リクエスト例
Soccer を切り離して最上位に移動します。レスポンス例
レスポンスは200で、更新後のオプションが返されます。切り離されたオプションにはparentがありません。
下位オプションを広告主に表示
デフォルトでは、広告主はオプショングループを全体としてしか選択できません。exposeChildrenをtrueにすると、広告主はキャンペーンの予約時に、下位オプションを1つずつ含めたり除外したりできるようになります。
- 広告主が下位オプションを選択できるのは、広告商品でそのオプショングループの選択方法が 自由選択 の場合だけです。ターゲティングの販売を参照してください。
exposeChildrenによって、オプショングループが一致する対象は変わりません。変更しても、既存の広告商品やキャンペーンは変更されません。exposeChildrenを指定できるのはオプショングループだけです。ほかのオプションに指定すると400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。nullは400で失敗するため、値はtrueまたはfalseで指定してください。- オプショングループの作成時に設定することもできます。
リクエスト
パスパラメータ
リクエストボディ
同じリクエストで
nameとcontextsも送信できます。
リクエスト例
レスポンス例
レスポンスは200で、更新後のオプショングループが返されます。
オプショングループの削除
オプショングループはオプションの削除で削除します。下位オプションは削除されません。- 下位オプションは最上位に移動し、広告商品とキャンペーンにおけるオプショングループの設定を引き継ぎます。たとえば、広告商品で Sports が 必須含む に設定されている場合は Baseball と Soccer が 必須含む になり、Sportsを含んでいたキャンペーンはBaseballとSoccerを含むようになります。
- オプショングループ自身のコンテキストIDは削除され、一致しなくなります。この例では、Sportsを含んでいたキャンペーンは
sportに一致しなくなります。 - 設定の引き継ぎにより 必須含む または 必須除外 に設定されたオプションが500個を超える広告商品が生じる場合、リクエストは
400 AD_PRODUCT_TARGETING_POLICY_LIMIT_EXCEEDEDで失敗し、何も削除されません。
コンソールでグループを削除すると、下位オプションも一緒に削除されます。APIでオプショングループを削除すると、コンソールのグループを解除と同じように、下位オプションが最上位オプションとして残ります。
リクエスト
パスパラメータ
リクエスト例
レスポンス例
レスポンスは200で、削除されたオプショングループのIDが返されます。
制約事項
構造- オプショングループは移動できず、オプションのタイプは作成後に変更できません。既存のオプションをまとめるには、オプショングループを作成してから、その下にオプションを移動します。新しいオプショングループは空にできないため、自身のコンテキストIDか新しい下位オプションを指定して作成してください。
childrenで作成した下位オプションも、1リクエストあたりと1ターゲティングあたりのオプション数の上限に含まれます。上限を参照してください。
- オプショングループ自身のコンテキストIDは、ほかのオプショングループがどのコンテキストターゲティングにあっても、プロジェクト内のほかのオプショングループの自身のコンテキストIDと重複できません。通常のオプションと下位オプションは、どのオプションともコンテキストIDを共有できます。
- このルールは、オプショングループの作成時と、
addまたはsetでオプショングループに自身のコンテキストIDを追加するときに適用されます。重複すると400 TARGETING_COLLECTION_CONTEXT_DUPLICATEDで失敗し、detail.conflictsには、重複したコンテキストIDとそれをすでに持つオプショングループが最大20件まで含まれます。エラーコードを参照してください。
自身のコンテキストIDを持つオプショングループは、下位オプションをすべてなくすことができます。その場合、自身のコンテキストIDだけを持つオプショングループとして残ります。
一括リクエストあたりのオプショングループ関連項目
オプションの一括リクエスト1件に含められるオプショングループ関連項目は、最大150件です。これを超えるとリクエスト全体が
400で失敗し、何も反映されません。項目を分割し、リクエストを1件ずつ順番に送信してください。
- 一括削除の場合、エラーコードは
TARGETING_CATEGORY_TREE_ITEMS_LIMIT_EXCEEDEDです。detail.limitは上限、detail.countはリクエストに含まれるオプショングループと下位オプションの数です。 - オプショングループ名の変更、自身のコンテキストIDの変更、
exposeChildrenの設定は、オプショングループ関連項目に含まれません。
ids内の順序によって変わります。
- オプショングループが先:下位オプションは最上位に移動してオプショングループの設定を引き継いだ後、最上位のオプションとして削除されます。オプショングループを含んでいたキャンペーンから、その条件がなくなることがあります。
- 下位オプションが先:オプショングループが自身のコンテキストIDを持たない場合、最後の下位オプションの削除は
400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。そのオプションは、その後オプショングループが削除されたときに最上位に移動します。