Digital Platform API - 広告プロファイル サービス

ネットワークでは、パブリッシャーのページで実行できるブランドとクリエイティブの種類を定義するために、"広告承認プロファイル" を作成する必要がある場合があります。 Ad Profile Service を使用すると、メンバー レベルまたはパブリッシャー レベルで広告承認プロファイルを作成できます。 パブリッシャー レベルで作成するには、発行元 ID を含めます。 パブリッシャー ID が含まれていない場合は、すべてのパブリッシャーで使用できるネットワーク レベルのプロファイルになります。

広告プロファイルは、メンバー、ブランド、クリエイティブ、言語、技術属性、カテゴリ、広告サーバーという複数の要素で構成されます。 広告プロファイルを作成するときは、システム内の各クリエイティブを個別に承認または禁止できますが、ブランドまたはメンバー全体を承認または禁止することで時間を節約できます。

  • メンバーは信頼されている必要があります。 広告が常に受け入れられると思われる場合。 たとえば、ネットワーク A を信頼して質の高い広告を掲載できるため、各クリエイティブを監査する必要性を軽減できます。
  • ブランドは信頼する必要があります。 このブランドの広告はほぼ常に受け入れられると信じている場合。 ただし、特定のクリエイティブが "信頼できる" ブランドの一部であっても、常に禁止することができます。 特定のクリエイティブが禁止されていない場合は、既定で実行されます。
  • ブランドは禁止する必要があります。 このブランドの広告が受け入れられることはないと思われる場合。 メンバーが禁止されていない限り、"禁止" ブランドが割り当てられた特定のクリエイティブを承認することができます。
  • 既定のプロファイル (空白または ID を 0に設定) では、他のメンバーからの不正な広告が禁止されます (つまり、クリエイティブの member_id が TinyTag の member_id とは異なります)。

注:

ブランドは、親会社/子企業によってブランドを収集する方法として、親ブランドを持つことができます。 販売者が親ブランドをブロック/承認した場合、*explicit* 承認/ブロック設定を持たないすべての子ブランドは、親ブランド設定と一致します。

REST API

HTTP メソッド エンドポイント 説明
GET https://api.appnexus.com/ad-profile メンバーのすべての広告プロファイルを表示します。
GET https://api.appnexus.com/ad-profile?id=AD_PROFILE_ID 特定の広告プロファイルを表示します。
GET https://api.appnexus.com/ad-profile?publisher_id=PUBLISHER_ID 特定のパブリッシャーのすべての広告プロファイルを表示します。
POST https://api.appnexus.com/ad-profile
(ad_profile JSON)
メンバー レベルで新しい広告プロファイルを追加します。
POST https://api.appnexus.com/ad-profile?publisher_id=PUBLISHER_ID
(ad_profile JSON)
パブリッシャー レベルで新しい広告プロファイルを追加します。
PUT https://api.appnexus.com/ad-profile?id=AD_PROFILE_ID
(ad_profile JSON)
既存の広告プロファイルを変更します。
DELETE https://api.appnexus.com/ad-profile?id=AD_PROFILE_ID 既存の広告プロファイルを削除します。
GET https://api.appnexus.com/ad-profile?sort=description 広告プロファイルを説明でアルファベット順に並べ替えます。
GET https://api.appnexus.com/ad-profile?search=text_of_description 説明で広告プロファイルを検索します。

JSON フィールド

フィールド 種類 説明
id int この ad_profileを参照するために API によって割り当てられた Xandr ID。
クエリ文字列で必要な On:PUT
state 列挙 広告プロファイルの状態。 使用可能な値: "active" または "inactive"
デフォルト:"active"
member_id int この ad_profileを所有するメンバー ID。
description string 省略可能な説明。
default_member_status 列挙 明示的な選択が行われなかった場合に既定で使用されるメンバーの状態。 使用可能な値:
- "case-by-case": このメンバーのクリエイティブは、広告プロファイルで定義されているすべてのブランド、言語、技術属性、カテゴリ、広告サーバーフィルタリングを渡す必要があります
- "banned": このメンバーのクリエイティブは一人も配信できません。
default_brand_status 列挙 明示的な選択が行われなかった場合に既定で使用されるブランドの状態。 使用可能な値: "trusted" または "banned"
default_language_status 列挙 明示的な選択が行われなかった場合に既定で使用される言語の状態。 使用可能な値: "trusted" または "banned"
default_ad_server_status 列挙 明示的な選択が行われなかった場合に既定で使用される広告サーバーの状態。 使用可能な値: "trusted" または "banned"
default_category_status 列挙 明示的な選択が行われなかった場合に既定で使用されるカテゴリの状態。 使用可能な値: "trusted" または "banned"
default_technical_attribute_status 列挙 明示的な選択が行われなかった場合に既定で使用される技術属性の状態。 使用可能な値: "trusted" または "banned"
default_audit_type 列挙 明示的な選択が行われなかった場合に既定で使用される監査状態。 使用可能な値:
- "platform": クリエイティブは Xandr プラットフォーム監査を受けている必要があります。
- "platform_or_self": クリエイティブはメンバーによって自己監査されているか、Xandr 監査を受けている必要があります。
members オブジェクトの配列 メンバーの状態を持つ配列。 詳細については、以下の 「メンバー 」を参照してください。
brands オブジェクトの配列 ステータスを持つブランド (親ブランドと子ブランド) の配列。 詳細については、以下の 「ブランド 」を参照してください。
creatives オブジェクトの配列 ステータスを持つクリエイティブの配列。 詳細については、以下 の「クリエイティブ」 を参照してください。
languages オブジェクトの配列 状態を持つ言語の配列。 詳細については、以下 の「言語 」を参照してください。
ad_servers オブジェクトの配列 状態を持つ広告サーバーの配列。 詳細については、以下の 「広告サーバー」を 参照してください。
categories オブジェクトの配列 状態を持つカテゴリの配列。 詳細については、以下の 「カテゴリ 」を参照してください。
technical_attributes オブジェクトの配列 状態を持つ技術属性の配列。 詳細については、以下の 「技術属性 」を参照してください。
frequency_caps オブジェクトの配列 周波数/レジェンシー キャップの配列。 詳細については、以下の 「周波数キャップ 」を参照してください。
total_creative_count int クリエイティブの数。
approved_creative_count int 承認されたクリエイティブの数。
banned_creative_count int 禁止されたクリエイティブの数。
creatives_approved_percent double 承認されたクリエイティブの総数に対する割合。
creatives_unreviewed int レビューが保留中のクリエイティブの数。
brands_unreviewed int レビューが保留中のブランドの数。
exclude_unaudited ブール値 監査されていないクリエイティブを除外するかどうか。
exclude_unaudited_direct ブール値 直接広告主に対して監査されていないクリエイティブを除外するかどうか。
audit_type_direct string 直接広告主のクリエイティブを配信するために必要な監査の種類を指定します。 有効な値は次のとおりです。
- "platform": クリエイティブは Xandr プラットフォーム監査を受ける必要があります。
- "platform_or_self": クリエイティブは、メンバーによって自己監査されるか、Xandr 監査を受ける必要があります。
check_attributes_direct ブール値 技術属性を持つクリエイティブを直接広告主に対して実行できるかどうかを決定します。
excluded_landing_page_urls URL の配列 注意事項なし。 競合除外の禁止は、ブランドの除外を通じて行う必要があります。
notes string 省略可能なメモ。
publisher_id int 広告プロファイルに関連付ける発行元の ID。
last_modified timestamp 読み取り専用です。 この広告プロファイルに対する最後の変更のタイムスタンプ。
require_seller_audit_default ブール値 販売者監査が必要かどうか。
既定値: false

メンバー

フィールド 種類 説明
id int メンバーの ID。
status 列挙 メンバーがパブリッシャーのページでクリエイティブを実行できるかどうか。 有効な値は次のとおりです。
- "trusted": このメンバーのクリエイティブは、いずれも配信できます。
- "case-by-case": このメンバーのクリエイティブは、広告プロファイルで定義されているすべてのブランド、言語、技術属性、カテゴリ、広告サーバーフィルタリングを渡す必要があります。
- "banned": このメンバーのクリエイティブは一人も配信できません。
audit_type 列挙 このメンバーのクリエイティブを提供するために必要な監査の種類。 有効な値は次のとおりです。
- "platform": クリエイティブは Xandr プラットフォーム監査を受けている必要があります。
- "platform_or_self": クリエイティブはメンバーによって自己監査されているか、Xandr 監査を受けている必要があります。
exclude_unaudited ブール値 true場合、監査されていないクリエイティブはこのメンバーから除外されます。
require_seller_audit_status 列挙 メンバーが特定の購入者のクリエイティブに対して独自の監査を必要とできるかどうか:
- "always": このメンバーは、特定の購入者のクリエイティブに対して常に監査を要求できます。
- "never": このメンバーは、特定の購入者からのクリエイティブの監査を必要とすることはできません。
- "case-by-case": 監査に必要な状態を ad_profile.require_seller_audit_default にフォールバックします。

ヒント

[メンバー status]、[ audit_type]、[ exclude_unaudited ] フィールドの組み合わせによって、[ネットワーク広告品質] プロファイルに表示される購入者の信頼レベルが決まります。

status audit_type exclude_unaudited UI の信頼レベル
banned 該当なし 該当なし 禁止
case-by-case platform true 標準
case-by-case platform_or_self true
trusted platform true
trusted platform false 最大

ブランド

フィールド 種類 説明
id int ブランドの ID。 ブランド サービスを使用してブランド ID を取得できます。
status 列挙 このブランドのクリエイティブがパブリッシャーのページで実行できるかどうか。 使用可能な値: "trusted" または "banned"

手記: ブランドが対象としてマークされている場合、このブランドに関連付けられているクリエイティブは、ブランドのカテゴリが禁止されている場合でも配信されます。 たとえば、"1 と 1 のインターネット (17310)" というブランドを対象としてマークした場合、そのカテゴリ全体である "電気通信 (27)" を禁止した場合でも機能します。
parent_brand_id int ブランドに親ブランドがある場合、既定値は null に設定されます。

クリエイティブ

フィールド 種類 説明
id int クリエイティブの ID。 クリエイティブ サービスを使用して、クリエイティブ ID を取得できます。
approved ブール値 true場合、クリエイティブはパブリッシャーのページで実行できます。

言語

フィールド 種類 説明
id int 言語の ID。 言語サービスを使用して、言語 ID を取得できます。
status 列挙 この言語のクリエイティブがパブリッシャーのページでクリエイティブを実行できるかどうか。 使用可能な値: "trusted" または "banned"

広告サーバー

フィールド 種類 説明
id int 広告サーバーの ID。 Ad Server Service を使用して、広告サーバー ID を取得できます。
status 列挙 広告サーバーがパブリッシャーのページでクリエイティブを実行できるかどうか。 使用可能な値: "trusted" または "banned"

Categories

フィールド 種類 説明
id int カテゴリの ID。 カテゴリ サービスを使用して、カテゴリ ID を取得できます。
status 列挙 このカテゴリのクリエイティブがパブリッシャーのページで実行できるかどうか。 使用可能な値: "trusted" または "banned"

技術属性

フィールド 種類 説明
id int 技術属性の ID。 技術属性サービスを使用して、技術属性 ID を取得できます。
status 列挙 この技術属性を持つクリエイティブがパブリッシャーのページで実行できるかどうか。 使用可能な値: "trusted" または "banned"

周波数キャップ

フィールド 種類 説明
id int 読み取り専用です。 周波数上限定義の ID。
member_id int 読み取り専用です。 広告プロファイルを所有するメンバーの ID。
max_session_imps int 指定した technical_attributes または categoriesを持つクリエイティブのセッションあたりのインプレッションの最大数。 設定する場合、この値は 0255の間である必要があります。
max_day_imps int 指定した technical_attributes または categoriesを持つクリエイティブの 1 人あたり 1 日あたりの最大インプレッション数。 設定する場合、この値は 0255の間である必要があります。
min_minutes_per_imp int 指定した technical_attributes または categoriesを持つクリエイティブのユーザーあたりのインプレッション数の最小分数。
cap_users_without_cookie ブール値 true場合、Cookie を持たないユーザーには、指定されたtechnical_attributesまたはcategoriesを含むクリエイティブは表示されません。 これらは、周波数上限に達したかのように扱われます。
false場合、Cookie を使用しないユーザーには、特定のtechnical_attributesまたはcategoriesの頻度上限は適用されません。 指定した technical_attributes または categoriesでクリエイティブを無制限に表示できます。
technical_attributes 配列 制限する技術属性の ID。 技術属性サービスを使用して、技術属性の完全な一覧を取得できます。 technical_attributesフィールドとcategoriesフィールドには OR リレーションシップがあります。
categories 配列 制限するカテゴリの ID。 カテゴリ サービスを使用して、カテゴリの完全な一覧を取得できます。 technical_attributesフィールドとcategoriesフィールドには OR リレーションシップがあります。

警告

に追加する PUT

要求にappend=trueクエリ文字列パラメーターを追加しない限り、既存のデータをPUT要求の内容で上書きします。 詳細については、 API セマンティクス に関するページと、以下の「 既存の広告プロファイルを更新する 」の例を参照してください。

新しい広告プロファイルを作成する

これはかなり複雑なプロファイルです。 次に、 cat コマンドを使用して広告プロファイル JSON ファイルの例を出力しました。

$ cat ad_profile
{
    "ad-profile": {
        "description": "Network Level ad profile",
        "member_id": 326,
        "brands": [
            {
                "id": "168",
                "status": "banned"
            },
            {
                "id": "255",
                "status": "banned"
            },
            {
                "id": "1072",
                "status": "trusted"
            },
            {
                "id": "1090",
                "status": "trusted"
            }
        ],
        "creatives": [
            {
                "id": "5",
                "approved": true
            }
        ],
        "notes": "This is a great ad profile",
        "default_language_status": "banned",
        "default_ad_server_status": "trusted",
        "default_category_status": "trusted",
        "default_technical_attribute_status": "trusted",
        "excluded_landing_page_urls": ["https://www.netflix.com","https://www.blockbuster.com"],
        "languages": [
            {
                "id": 1,
                "status": "trusted"
            }
        ],
        "ad_servers": null,
        "categories": [
            {
                "id": 41,
                "status": "banned"
            },
            {
                "id": 43,
                "status": "trusted"
            }
        ]
    }
}

既存の広告プロファイルを更新する

最初の例の広告プロファイル JSON を考えると、 categories 配列を更新して別の項目を含める必要があるとします。 実際のユース ケースでは、配列に 47 個のカテゴリが存在する可能性があります。 PUTのセマンティクスは、配列に別のカテゴリを追加するには、既存のカテゴリの 47 個と新しいカテゴリをすべて渡す必要があることを意味します。

次の例に示すように、 append=true クエリ文字列パラメーターを要求に追加することで、この余分な作業を回避できます。 下位互換性の理由から、パラメーター append_only=true も機能します。

$ cat ad-profile-update.json
{
  "ad-profiles":
  [
    {
      "id": 984276,
      "categories" : [
        {
          "id" : 42,
          "status" : "banned"
        }
      ]
    }
  ]
}
$ curl -b cookies -X PUT -d '@/tmp/ad-profile-update.json' \
'https://api.appnexus.com/ad-profile?id=984276&member_id=1282&append=true'
{
   "response" : {
      "id" : 984276,
      "ad-profile" : {
         "id" : 984276,
         "description" : "Rich's Crazy Reseller - Network Ad Profile",
         "categories" : [
            {
               "id" : 41,
               "status" : "banned"
            },
            {
               "id" : 42,
               "status" : "banned"
            },
            {
               "id" : 43,
               "status" : "trusted"
            }
         ],
         // many other fields...
         "default_category_status" : "trusted"
      },
      "status" : "OK",
      "count" : 1,
      "start_element" : 0,
      "num_elements" : 100,
   }
}

メンバーに広告プロファイルを追加する

$ curl -b cookies -c cookies -X POST -d @ad_profile  "https://api.appnexus.com/ad-profile"
{
    "response": {
        "status": "OK",
        "id": "1317"
    }
}

広告プロファイルを表示する

$ curl -b cookies -c cookies "https://api.appnexus.com/ad-profile?id=1317"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 1317,
      "state": "active",
      "description": "Network Level ad profile",
      "member_id": 326,
      "default_brand_status": "trusted",
      "members": null,
      "brands": [
        {
          "id": "168",
          "status": "banned"
        },
        {
          "id": "255",
          "status": "banned"
        },
        {
          "id": "1072",
          "status": "trusted"
        },
        {
          "id": "1090",
          "status": "trusted"
        }
      ],
      "creatives": [
        {
          "id": "5",
          "approved": true
        }
      ],
      "total_creative_count": 8369,
      "approved_creative_count": 1,
      "banned_creative_count": 8368,
      "creatives_approved_percent": 0.011948858883977,
      "creatives_unreviewed": 8367,
      "brands_unreviewed": null,
      "exclude_unaudited": true,
      "exclude_unaudited_direct": false,
      "notes": "This is a great ad profile.",
      "publisher_id": null,
      "last_modified": "2010-07-23 16:15:49",
      "default_language_status": "banned",
      "default_ad_server_status": "trusted",
      "default_category_status": "trusted",
      "excluded_landing_page_urls": ["https://www.netflix.com","https://www.blockbuster.com"],
      "default_technical_attribute_status": "trusted",
      "languages": [
        {
          "id": 1,
          "status": "trusted"
        }
      ],
      "ad_servers": null,
      "categories": [
        {
          "id": 41,
          "status": "banned"
        },
        {
          "id": 43,
          "status": "trusted"
        }
      ],
      "technical_attributes": null
    }
  }
}

クリエイティブ属性の頻度上限の例

広告プロファイルに頻度上限ルールを追加する

{{"frequency_caps"}} フィールドは、最初に{{null}}されます。

$ curl -b cookies -c cookies -X GET "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 199943,
      "state": "active",
      "description": null,
      "member_id": 941,
      ...
      "frequency_caps": null
    }
}

頻度上限ルールを追加する

$ cat add_freq_cap_rule.json
{
   "ad-profile": {
      "id": 199943,
      "frequency_caps": [
        {
          "max_day_imps": 5,
          "min_minutes_per_imp": 120,
          "technical_attributes": [ {"id":4},{"id":6} ],
          "categories": [ {"id":59},{"id":37} ]
        }
      ]
   }
}
$ curl -b cookies -c cookies -X PUT --data-binary @add_freq_cap_rule.json "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "id": "199943"
  }
}

広告プロファイルに頻度上限ルールが設定されるようになりました

$ curl -b cookies -c cookies -X GET "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 199943,
      "state": "active",
      "description": null,
      "member_id": 941,
      ...
      "frequency_caps": [
        {
          "id": 64,
          "max_session_imps": null,
          "max_day_imps": 5,
          "min_minutes_per_imp": 120,
          "member_id": 941,
          "technical_attributes": [
            {
              "id": 4,
              "name": "Video"
            },
            {
              "id": 6,
              "name": "Expandable"
            }
          ],
          "categories": [
            {
              "id": 37,
              "name": "Politics"
            },
            {
              "id": 59,
              "name": "Get Rich Quick"
            }
          ]
        }
      ]
      ...

頻度上限ルールを変更する

{{ad-profile}} サービスで {{PUT}} コマンドを使用します。 頻度上限の ID は、更新 JSON で指定する必要があります。 頻度上限 ID が指定されていない場合は、既存のルールが削除され、新しいルールが作成されます。

{code}
$ cat update_freq_cap_rule.json
{
   "ad-profile": {
      "id": 199943,
      "frequency_caps": [
        {
          "id": 64,
          "technical_attributes": [ {"id":4} ],
          "categories": [ ],
          "max_day_imps": 20
        }
      ]
   }
}
$ curl -b cookies -c cookies -X PUT --data-binary @update_freq_cap_rule.json "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "id": "199943"
  }
}
{code}

更新されたルールを表示するには、広告プロファイルを確認します

$ curl -b cookies -c cookies -X GET "https://sand.api.appnexus.com/ad-profile?id=199943"
{
  "response": {
    "status": "OK",
    "ad-profile": {
      "id": 199943,
      "state": "active",
      "description": null,
      "member_id": 941,
      ...
      "frequency_caps": [
        {
          "id": 64,
          "max_session_imps": null,
          "max_day_imps": 20,
          "min_minutes_per_imp": 120,
          "member_id": 941,
          "technical_attributes": [
            {
              "id": 4,
              "name": "Video"
            }
          ],
          "categories": null
        }
      ]
      ...