sport、baseball、soccerを含む「Sports」)。APIのパスとフィールドでは、オプションをcategory、そのコンテキストIDをcontextsと表します。
オプションのタイプは次の2つです。
atomic:コンテキストIDのリストです。collection:自身のコンテキストIDと下位オプションのコンテキストIDに一致するオプションです。オプショングループを参照してください。
https://lake.adrop.ioからの相対パスです。認証とリクエスト形式については、基本情報を参照してください。
オプションオブジェクト
このページのエンドポイントは、オプションを次の形で返します。このオブジェクトにはコンテキストIDそのものではなく、コンテキストIDの数が入ります。コンテキストIDを読み取るには、オプションの取得を使用します。
オプションに該当しないフィールドは省略されます。
オプション一覧の取得
ターゲティングのオプションを、_idの昇順(おおむね作成順)でページごとに返します。オプショングループと下位オプションも含まれます。各項目はオプションオブジェクトです。
リクエスト
context-targeting:readスコープが必要です。
パスパラメータ
クエリパラメータ
リクエスト例
レスポンス例
next=01JAB3XK5RA1B2C3D4E5F6G7H8を付けて同じリクエストを送信します。
- 最後のページには
nextがありません。nextがなくなるまでたどると、すべてのオプションを重複も漏れもなく1回ずつ取得できます。 - 後続のページがある場合でも、1ページの項目数が
limitより少ないことがあります。取得を終えるのは、nextがなくなったときだけにしてください。 - 名前で検索する機能はありません。取得した項目は、
name、parent、childrenを使って手元で絞り込んでください。
オプションの取得
オプションを、そのコンテキストIDの1ページ分とあわせて返します。リクエスト
context-targeting:readスコープが必要です。
パスパラメータ
クエリパラメータ
リクエスト例
レスポンス例
- オプションのすべてのコンテキストIDを読み取るには、
offsetがcontextCountに達するまでoffsetをlimitずつ増やします。 - オプショングループの場合、
contextsにはオプショングループ自身のコンテキストIDだけが入るため、ownContextCountに達するまでページごとに読み取ります。下位オプションのコンテキストIDを読み取るには、その下位オプションを取得します。
オプションの追加
既存のターゲティングにオプションを追加します。通常のオプション、オプショングループ、既存のオプショングループの下位オプションのいずれかを追加できます。リクエスト
context-targeting:writeスコープが必要です。レスポンスは201で、追加したオプションオブジェクトを返します。
パスパラメータ
リクエストボディ
IDはすべてサーバーが発行します。
_idなど、ここに記載されていないフィールドを含むボディは400で失敗します。
次の組み合わせは400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗し、何も作成されません。
- 下位オプションも自身のコンテキストIDもないオプショングループ
childrenを指定したtype: "atomic"- 通常のオプションに指定した
exposeChildren parentと、type: "collection"、children、exposeChildrenのいずれかとの組み合わせ。オプショングループに追加するオプションは常に通常のオプションです- 最上位オプショングループではないオプションを指定した
parent
リクエスト例
レスポンス例
新しい最上位オプションは、そのターゲティングを使用する広告商品と、その広告商品のキャンペーンにも追加されることがあります。広告商品とキャンペーンへの影響を参照してください。
すべてのエラーコードとエラー形式については、エラーコードを参照してください。
オプションの更新
オプションの名前やコンテキストIDを変更したり、オプションをオプショングループに入れたり、オプショングループから出したり、別のオプショングループに移したり、オプショングループが下位オプションを広告主に表示するかどうかを変更したりします。リクエスト
context-targeting:writeスコープが必要です。レスポンスは200で、更新後のオプションオブジェクトを返します。
パスパラメータ
リクエストボディ
すべてのフィールドは省略できます。変更するフィールドだけを送信してください。省略したフィールドはそのまま残ります。
ボディには次のルールが適用されます。
contextsにはadd、remove、setのいずれかを含める必要があり、setはaddやremoveと組み合わせられません。これに反するリクエストは400で失敗します。parentはcontextsと組み合わせられません。オプションの移動・切り離しとコンテキストIDの変更は、別々のリクエストで行ってください。parentはnameとは組み合わせられます。移動に失敗した場合は、名前も変わりません。nullを受け付けるのはparentだけです。name、contexts、exposeChildren、add、remove、setにnullを指定すると400で失敗します。変更しないフィールドは省略してください。- オプショングループは移動できません。オプショングループに
parentを指定した場合も、通常のオプションにexposeChildrenを指定した場合も、400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。 - オプショングループの場合、
contextsはオプショングループ自身のコンテキストIDを変更します。下位オプションのないオプショングループから自身のコンテキストIDをすべて削除すると、400 TARGETING_CATEGORY_NOT_SUPPORTEDで失敗します。 name、contexts、exposeChildrenはまとめて書き込まれます。コンテキストIDの変更に失敗した場合は、名前とexposeChildrenも変わりません。addとremoveを両方送信するとaddが先に適用されるため、removeが失敗しても、追加したコンテキストIDは残ります。
add/removeとsetの使い分けについては、コンテキストIDの更新方法を参照してください。
リクエスト例
レスポンス例
オプションの削除
オプションとそのコンテキストIDを削除します。- オプショングループを削除すると、その下位オプションは最上位に移り、広告商品とキャンペーンにおけるオプショングループの設定を引き継ぎます。オプショングループ自身のコンテキストIDがあった場合、それらは一致しなくなります。オプショングループの削除を参照してください。
- 自身のコンテキストIDがないオプショングループの最後の下位オプションは削除できません。代わりにオプショングループを削除してください。
リクエスト
context-targeting:writeスコープが必要です。レスポンスは200で、削除したオプションのIDを返します。
パスパラメータ
リクエスト例
レスポンス例
一括操作
一括操作のエンドポイントでは、1回のリクエストで最大5,000個のオプションを追加、更新、削除できます。context-targeting:writeスコープが必要です。
- リクエスト全体が失敗しない限り、各一括エンドポイントは
200を返し、項目ごとの結果をリクエストの順序で返します。各結果のsuccessを確認してください。失敗した項目にはerrorが入ります。一括操作のレスポンスを参照してください。 - ボディが不正なリクエストは、不正な項目が1つだけでも、リクエスト全体が
400で失敗します。たとえば、コンテキストIDのルールに違反するコンテキストID、addと組み合わせたset、受け付けられないフィールドなどです。 - プロジェクトに対するAPIの書き込みは1件ずつ処理されます。一括リクエストは並列に送らず、1件ずつ順番に送信してください。同時書き込みを参照してください。
オプショングループ関連項目は次のとおりです。
- 追加:オプショングループを作成する項目(
type: "collection"またはchildren)と、parentを指定した項目 - 更新:
parentを指定した項目(nullを含む) - 削除:オプショングループと下位オプションのID
400で失敗し、何も適用されません。削除リクエストに含まれるオプショングループと下位オプションが150個を超える場合、エラーはTARGETING_CATEGORY_TREE_ITEMS_LIMIT_EXCEEDEDになり、detail.limitに上限が、detail.countにリクエスト内のオプショングループと下位オプションの数が入ります。数万個のオプションのような大量のデータをアップロードするには、最大5,000項目のリクエストを1件ずつ順番に送信してください。
オプションの一括追加
既存のターゲティングにオプションを追加します。項目ごとに別のターゲティングに追加できます。リクエスト
リクエストボディ
成功した項目の
dataには、追加したオプションオブジェクトが入ります。
リクエスト例
レスポンス例
ターゲティングに「Sports」という名前のオプションがすでにあるため、3番目の項目だけが失敗します。オプションの一括更新
オプションを更新します。項目ごとに別のオプションを変更できます。リクエスト
リクエストボディ
- 1つのリクエストで、各
_idは1回しか指定できません。_idが重複するとリクエスト全体が400で失敗するため、1つのオプションへの変更はすべて1つの項目にまとめてください。 - 各項目は個別に適用され、同時に実行されることがあります。それでも、結果はリクエストの順序で返されます。
- 前の項目で使われなくなった名前は、同じリクエスト内の後の項目で使用できます。
dataには、更新後のオプションオブジェクトが入ります。
リクエスト例
レスポンス例
オプションの一括削除
オプションを削除します。各IDには、オプションの削除と同じルールが適用されます。リクエスト
リクエストボディ
成功した項目の
dataには、削除したオプションのIDが入ります。
リクエスト例
レスポンス例
コンテキストIDのルール
次のルールは、contexts、children、add、remove、setで送信するすべてのコンテキストIDに適用されます。
リクエスト内のコンテキストIDが1つでもこれらのルールに違反すると、リクエスト全体が
400で失敗します。
同じコンテキストIDを複数のオプションに登録できます。そのコンテキストIDを含むリクエストは、それらすべてのオプションに一致します。例外はオプショングループ自身のコンテキストIDで、プロジェクト内の別のオプショングループ自身のコンテキストIDと同じにすることはできません。制約事項を参照してください。
コンテキストIDには、数とサイズの上限もあります。
オプションまたはプロジェクトが上限を超える変更は、
400 TARGETING_CONTEXT_LIMIT_EXCEEDEDで失敗します。これらの上限は、変更によってオプションまたはプロジェクトが大きくなる場合にのみチェックされるため、コンテキストIDを削除するだけの変更がブロックされることはありません。コンテキストIDが10,000個を超えるリクエストは、全体が400で失敗します。すべての上限については、上限を参照してください。
コンテキストIDの更新方法
コンテキストIDは、オプションの更新またはオプションの一括更新で、add/removeまたはsetを使って変更します。
add、remove、setは、同じリクエストをもう一度送信しても結果が変わらないため、タイムアウトした後に再送できます。再試行と重複リクエストを参照してください。
コンテキストIDが10,000個を超える場合
1回のリクエストに含められるコンテキストIDは最大10,000個のため、それより長いリストをsetで一度に置き換えることはできません。代わりに、次の手順でオプションを同期します。
- オプションの取得で
offsetとlimitを使ってページごとに読み取り、オプションの現在のコンテキストIDを取得します。 - 取得したコンテキストIDを、手元のリストと比較します。
- 差分だけを、1回のリクエストあたり最大10,000個のコンテキストIDに収めて、
addとremoveで1件ずつ順番に送信します。
setリクエストに分割しないでください。setは毎回すべてのコンテキストIDを置き換えるため、後のsetによって、前のリクエストで送ったコンテキストIDが消えます。setを1回送ってからaddリクエストを続ける場合でも、リクエストとリクエストの間はオプションにリストの一部しかない状態になり、広告配信がその途中のリストを読み込む可能性があります。
変更は少し遅れて広告配信に反映されます。変更が読み込まれたかどうかを確認する方法は、変更が反映されるタイミングを参照してください。
広告商品とキャンペーンへの影響
広告商品とキャンペーンはオプションを選択して使うため、オプションを変更するとキャンペーンの配信先が変わることがあります。コンテキストIDを追加または削除すると、そのオプションを含める、または除外するキャンペーンが配信されるページが変わります。 新しい最上位オプション 最上位オプションを追加すると、通常のオプションかオプショングループかにかかわらず、そのターゲティングの設定を持つ広告商品にもそのオプションが追加されます。- 広告商品がターゲティングの現在の最上位オプションをすべて 必須含む に設定している場合、新しいオプションも 必須含む に設定され、その広告商品の終了していないキャンペーンにも含まれます。この動作は 必須除外 でも同じです。
- それ以外の場合、新しいオプションは、広告主が選択できるオプションとして広告商品に追加されます。一部の最上位オプションが必須ではない場合や、最上位オプションに 必須含む と 必須除外 が混在している場合がこれにあたります。キャンペーンは変わりません。
400 AD_PRODUCT_TARGETING_POLICY_LIMIT_EXCEEDEDで失敗します。
一括リクエストでは、そのターゲティングに追加する新しい最上位オプションがすべて失敗し、ほかの項目は適用されます。コンソールで広告商品の必須オプションを減らしてから、リクエストを再送してください。オプショングループの削除や下位オプションの切り離しでも、オプショングループの設定が下位オプションにコピーされるため、同じ上限が適用されます。
オプションを削除する場合
ターゲティングの削除とは異なり、オプションはキャンペーンで使用中でも削除がブロックされません。オプションは、それを選択しているキャンペーンから削除されます。キャンペーンがそのターゲティングから含めていたオプションがそれ1つだけだった場合、キャンペーンはそのターゲティングのコンテキストIDを一切必要としなくなります。キャンペーンは停止せず、ほかのコンテキストIDを含むリクエストや、コンテキストIDのないリクエストにも配信されることがあります。
オプションを削除する前に、キャンペーンで使用されていないか確認してください。コンソールでは、キャンペーンが予約されているオプションのステータスが 使用中 になります。ターゲティングの管理を参照してください。オプションを削除する前に、それらのキャンペーンを変更するか終了してください。
コンテキストIDを除外する場合
オプションには、一致させるコンテキストIDを並べることしかできません。「このオプションに含まれない」という条件はありません。特定のページに広告を表示しないようにするには、それらのページのコンテキストIDをオプションに登録し、広告商品やキャンペーンでそのオプションを除外します(例:広告商品で 必須除外 に設定)。それ以外のコンテキストIDをすべて並べたオプションは作らないでください。