次の方法で共有


デジタル プラットフォーム API - クリエイティブ

キャンペーンを配信するには、有効なクリエイティブが関連付けられている必要があります。 すべてのクリエイティブを API 経由で登録する必要がありますが、これを行うのは難しい場合があります。 クリエイティブのアップロード方法は、クリエイティブの形式に大きく依存します。

注:

クリエイティブの形式に関係なく、いくつかの考慮事項があります。

  • リアルタイムインベントリを購入するには、クリエイティブを監査プロセスにオプトインする必要がありますが、 を に設定 "audit_status" し、 を "pending" に設定 "allow_audit" する "true"必要があります。
  • クリエイティブの監査が完了すると、監査結果に関する重要な情報がさまざまな監査状態とフィードバック フィールドに入力されます。 これらのフィールドは、"audit_status""audit_feedback""google_audit_feedback""google_audit_status""msft_audit_status""msft_audit_feedback"です。
  • フィールドと "original_content" フィールドの"content"目的は少し異なります。 フィールドは "content" 、広告通話でインプレッション バスによって実際に提供されるものであり、適切に配信するためにエスケープされた文字を含む場合があります。 フィールドは "original_content" 、 を表示および変更するために UI によって使用されます "content"。 このため、 フィールドと "original_content" フィールドの"content"値が若干異なる場合があります。
  • すべてのクリエイティブを 1 つの広告主に関連付ける必要があります。 これは パラメーターを使用して設定されます "advertiser_id"
  • 特定のクリエイティブのクリックを追跡するには、クリック URL マクロ ("${CLICK_URL}" または "${CLICK_URL_ENC}") を含め、フィールドを に設定する"track_clicks"true必要があります。

URL によって返される HTML と JavaScript

URL によって返される HTML または JavaScript ("format""url-html" 値と "url-js"、それぞれ) は、クリエイティブに使用する比較的簡単な形式です。 一般に、URL には通常 JSON 構文と競合する文字は含まれません。 この形式のクリエイティブの登録は比較的簡単です。 形式については、次の例を "url-html" 参照してください。 形式は "url-js" 非常に似ているので、1 つの例を示します。

形式の "url-html"

JSON を含むファイルを作成し、正しい値を追加します。 必要なフィールドには、形式、幅、高さ、監査状態、メディア URL が含まれます。

$cat creative
{
  "creative": {
    "name": "HTML returned by a URL",
    "advertiser_id": 1234,
    "format": "url-html",
    "width": 300,
    "height": 250,
    "audit_status": "pending",
    "track_clicks": true,
    "media_url": "http://ad.adserver.com/show_ad.php?ad_id=123456&width=300&height=250&click=${CLICK_URL}&random=${CACHEBUSTER}"
  }
}

次に、新しいクリエイティブを作成するには、API に要求を POST 送信します。

$ curl -b cookies -c cookies -X POST --data-binary @creative 'https://api.appnexus.com/creative?advertiser_id=1234'
{
  "response":{
    "status": "OK",
    "id": 123456
  }
}

ホステッド フラッシュとイメージ

ホストされているフラッシュ形式とイメージ形式 ("format"それぞれ および "image""flash"値) は、API を使用して作成するのがもう少し困難です。 Flash ファイルのイメージは base-64 でエンコードされ、フィールドに "content" 含まれている必要があります。 API にアップロードすると、このクリエイティブの CDN (コンテンツ配信ネットワーク) への転送が開始されます。 クリエイティブが CDN に完全に転送されると、クリエイティブ "content" は null に変更され、 "media_url" は CDN 上のクリエイティブの場所を指すよう変更されます。 フィールドは、元の "format" 値に応じて、 "image" または "flash"のいずれかになります。 次の例は、イメージ クリエイティブをアップロードする方法を示しています。 サンプルに使用するイメージは、 https://dummyimage.com/300x250次の場所にあります。

イメージ クリエイティブをアップロードする方法

ターミナルから、次のコマンドを使用して、ファイルの base-64 エンコードを取得できます。

注:

base64 の出力にテキスト折り返しが含まれている場合、行の戻り値を削除する必要があります。

$ base64 300x250.gif
R0lGODdhLAH6AOMAAMzMzAAAAJmZmbKysjMzM39/f2ZmZkxMTBkZGQAAAAAAAAAAAAAAAAAA
AAAAAAAAACwAAAAALAH6AAAE/hDISau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//A
oHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHxOr9vv+Lx+z+/7
/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0
tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq
6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMgwoICHECNKnChgAAgBBg4QIHDg
gAEB/icwauToEaSaASJHdixg8gNKijAjhhC5sePHIgIC6NzJs6fPAAQ6DDjwcyeCAxZBDC2q
82jSMQIOIGDa1MDTDQaoUm2pYSlTp0JyaqUaFOvYnQU+ZD0bIG0YAVPZBkDANcNauTvrXrg7
1u0PsXh5ls1AFO+BDoXlHgbDV65fwoHzbkjMdrEPwJGBaqDMEwGBuD4NTC7qGXRP0V8ay9Vb
gfPqzaQ/F0XdY0CB27hz6yYQOkMBnwgeAyhgWidrCb97Bq9A3OfxK3wJfHxqm7fyDdZ1EtDN
PfdV5sCFN+/5nIhq2heKW7bAGUEG9ZA7p55rVYNq4RWyB1hfAj6G9ky4/oaeBcntNBgG+rV1
QYHaYdcTfljc5gFnB1pg2oAjMKiZBglCOISADvL0nQUD9FShBAmOWEGJgrnBIk8aXIhCihu8
2CASrnk4gY37dZAgiT3xh2BPK6golA/FGQmAaTp6wKOQF/x4RIIKbqBhkxNcCR5PWCL3YAo5
YcjBZ0rSwJmSX5qgJQdrEkFllwBw5uRprREpFJ0h7SRmBtYhUKYMZ2aQZgly3snTnjwM8KYH
+rnngWkVNvoBpHkeymhnf8JA4wU8luejfI+2KMQAxVXZgWlQDmlUBah+IKkJmOmE6AQJ+rlD
cRl0ekKrl64aBKk+wTkBnojZOaylExpbQqwB/sxaa6Yv8Hjijj0NYJtUUyFwVAGZEstBoT8A
S55S3polIrXIdtAYtBswu+ezPGiIaKyuBakkj7NWsC4QGjbl2QHctjsoB/tKEKuwABRcabq0
KsfuC5tewOxYdGFwsFrV8nsWUhlc7IGGLXncAcgquEsBvPGaqEG/bKkoMpvj/sDyTxVLPLCV
MQPwMs48eXpRbwCgzENx5bF8lAFISwWczVx+QLLMctlqwc4r50y1bzmD6ZNGDvvQ2LQUaEgA
a/dNfXPVPQNh7doPFWBAqRtWcDUGT+t8NtZpszAxppf59GdUHXmEtq8UzL1g1kYIQKVehhNo
9d10I641aQ9HW1y+/iJEbDDkh+etRIJCNq5vxps37YHCetNcuQvi7pQqrDeLTgHqSPDoKAX4
YnyuBLmfTnoLrbvuQ/Bxs/DkiuXa97sSgVYQ5AfgSvB8sjCyTqVOr89AvNQuTE+B998qqwTt
S4r6KeESUNprU9ZTlT0M268OgvoU0D8mqExoOOKrp5qPIv4csF8KFKWcreEgfjIA3//QtwEB
JoF85ONUuSIIJIahgICYYtb7VgCXriWQJ0KiIPIsmIToZYlzYUNcmwZnHBagTIM06BcB5DeT
5K0Qb5Jpgmlu5zz/8Ul80vOhqnbiQg+WDoQyUA3YWsAZ1qjsftXLnwIb5jmLTTFokpPb/hVJ
ILQJwPAFrtngAH0yxBZqgF4+EBaPAnCcWHGPRERjmlHuFccUdLFwBjQelTB3Rldt0Y10zOIN
6FOeDgrxZCZSEfGWmKAZcqo4SwzBHbW4xREY0nQl+Ex9clUqJTVSkZD8QWdKwjYDXK+QPzlA
RQCAknopaWKqtEgrf0JDCzTmjVYUZAjWCJTA+fKXgTNSdrZVEWsJoADXmxUsVzlLv4kyM12a
mVawJE2qICx8TWEXZq55xsxUEZGRiaSXIsPNF0DTd3iBk2qmycS5VE4s5eyYN3NogetpRYwJ
C0w8XQA3pjjyA5ekSs06ENCv+GwEm7zIPnM5z+PU6yvXLChp0A5qg6j0symqJAEy/RnPjRZl
O1CZpxk5ZUqBgjRD9gTKQmlwTLch7Ta1XNExkWYAllxwpi+lqB9s49KaBuymPbVpQ4ZK1KIa
9ahITapSl8rUpjr1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2
uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZ
ylr2spjNrGY3y9nOevazoA2taEdL2tKa9rRbjQAAOw==

JSON を含むファイルを作成し、正しい値を追加します。 必要なフィールドには、形式、幅、高さ、監査状態、およびコンテンツが含まれます。

注:

次の例では、読みやすくするために、行の戻り値と余分なスペースが含まれています。 実際には、行の戻り値は JSON 構文では無効です。

$cat creative
{
  "creative": {
    "name": "Image",
    "advertiser_id": 1234,
    "format": "image",
    "width": 300,
    "height": 250,
    "audit_status": "pending",
    "track_clicks": true,
    "content": "R0lGODdhLAH6AOMAAMzMzAAAAJmZmbKysjMzM39/f2ZmZkxMTBkZGQAAAAAAAAAAAAAAAAAA
                AAAAAAAAACwAAAAALAH6AAAE/hDISau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//A
                oHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHxOr9vv+Lx+z+/7
                /4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0
                tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq
                6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMgwoICHECNKnChgAAgBBg4QIHDg
                gAEB/icwauToEaSaASJHdixg8gNKijAjhhC5sePHIgIC6NzJs6fPAAQ6DDjwcyeCAxZBDC2q
                82jSMQIOIGDa1MDTDQaoUm2pYSlTp0JyaqUaFOvYnQU+ZD0bIG0YAVPZBkDANcNauTvrXrg7
                1u0PsXh5ls1AFO+BDoXlHgbDV65fwoHzbkjMdrEPwJGBaqDMEwGBuD4NTC7qGXRP0V8ay9Vb
                gfPqzaQ/F0XdY0CB27hz6yYQOkMBnwgeAyhgWidrCb97Bq9A3OfxK3wJfHxqm7fyDdZ1EtDN
                PfdV5sCFN+/5nIhq2heKW7bAGUEG9ZA7p55rVYNq4RWyB1hfAj6G9ky4/oaeBcntNBgG+rV1
                QYHaYdcTfljc5gFnB1pg2oAjMKiZBglCOISADvL0nQUD9FShBAmOWEGJgrnBIk8aXIhCihu8
                2CASrnk4gY37dZAgiT3xh2BPK6golA/FGQmAaTp6wKOQF/x4RIIKbqBhkxNcCR5PWCL3YAo5
                YcjBZ0rSwJmSX5qgJQdrEkFllwBw5uRprREpFJ0h7SRmBtYhUKYMZ2aQZgly3snTnjwM8KYH
                +rnngWkVNvoBpHkeymhnf8JA4wU8luejfI+2KMQAxVXZgWlQDmlUBah+IKkJmOmE6AQJ+rlD
                cRl0ekKrl64aBKk+wTkBnojZOaylExpbQqwB/sxaa6Yv8Hjijj0NYJtUUyFwVAGZEstBoT8A
                S55S3polIrXIdtAYtBswu+ezPGiIaKyuBakkj7NWsC4QGjbl2QHctjsoB/tKEKuwABRcabq0
                KsfuC5tewOxYdGFwsFrV8nsWUhlc7IGGLXncAcgquEsBvPGaqEG/bKkoMpvj/sDyTxVLPLCV
                MQPwMs48eXpRbwCgzENx5bF8lAFISwWczVx+QLLMctlqwc4r50y1bzmD6ZNGDvvQ2LQUaEgA
                a/dNfXPVPQNh7doPFWBAqRtWcDUGT+t8NtZpszAxppf59GdUHXmEtq8UzL1g1kYIQKVehhNo
                9d10I641aQ9HW1y+/iJEbDDkh+etRIJCNq5vxps37YHCetNcuQvi7pQqrDeLTgHqSPDoKAX4
                YnyuBLmfTnoLrbvuQ/Bxs/DkiuXa97sSgVYQ5AfgSvB8sjCyTqVOr89AvNQuTE+B998qqwTt
                S4r6KeESUNprU9ZTlT0M268OgvoU0D8mqExoOOKrp5qPIv4csF8KFKWcreEgfjIA3//QtwEB
                JoF85ONUuSIIJIahgICYYtb7VgCXriWQJ0KiIPIsmIToZYlzYUNcmwZnHBagTIM06BcB5DeT
                5K0Qb5Jpgmlu5zz/8Ul80vOhqnbiQg+WDoQyUA3YWsAZ1qjsftXLnwIb5jmLTTFokpPb/hVJ
                ILQJwPAFrtngAH0yxBZqgF4+EBaPAnCcWHGPRERjmlHuFccUdLFwBjQelTB3Rldt0Y10zOIN
                6FOeDgrxZCZSEfGWmKAZcqo4SwzBHbW4xREY0nQl+Ex9clUqJTVSkZD8QWdKwjYDXK+QPzlA
                RQCAknopaWKqtEgrf0JDCzTmjVYUZAjWCJTA+fKXgTNSdrZVEWsJoADXmxUsVzlLv4kyM12a
                mVawJE2qICx8TWEXZq55xsxUEZGRiaSXIsPNF0DTd3iBk2qmycS5VE4s5eyYN3NogetpRYwJ
                C0w8XQA3pjjyA5ekSs06ENCv+GwEm7zIPnM5z+PU6yvXLChp0A5qg6j0symqJAEy/RnPjRZl
                O1CZpxk5ZUqBgjRD9gTKQmlwTLch7Ta1XNExkWYAllxwpi+lqB9s49KaBuymPbVpQ4ZK1KIa
                9ahITapSl8rUpjr1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2
                uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZ
                ylr2spjNrGY3y9nOevazoA2taEdL2tKa9rRbjQAAOw=="
  }
}

次に、新しいクリエイティブを作成するには、API に要求を POST 送信します。

$ curl -b cookies -c cookies -X POST --data-binary @creative 'https://api.appnexus.com/creative?advertiser_id=1234'
{
   "response":{
      "status": "OK",
      "id": 123456
   }
}

RAW HTML と JavaScript

生の HTML と JavaScript ("format" の値 "raw-html" と、それぞれ) は、JSON 構文と "raw-js"競合する HTML または JavaScript 内の特定の文字によって複雑になる可能性があります。 特に二重引用符である特殊文字はすべて、円記号 ("\") で囲む必要があります "escaped" 。 次の例は、単純な HTML クリエイティブをアップロードする方法を示しています。

注:

実際の行の戻り値を含めると JSON 構文が無効になるため、行の戻り値は "\r\n" としてエンコードする必要があります。

シンプルな HTML クリエイティブをアップロードする方法

JSON を含むファイルを作成し、正しい値を追加します。 必要なフィールドには、形式、幅、高さ、監査状態、およびコンテンツが含まれます。 生の HTML クリエイティブを記述する方法のため、HTML は JavaScript document.write() 呼び出しでラップする必要があります。

$cat creative
{
  "creative": {
    "name": "Raw HTML",
    "advertiser_id": 1234,
    "format": "raw-html",
    "width": 300,
    "height": 250,
    "audit_status": "pending",
    "track_clicks": true,
    "content": "document.write('<a href=\\\"http://www.advertiser.com/landingpage\\\" _target=\\\"blank\\\"><img src=\\\"http://dummyimage.com/300x250\\\" height=\\\"250\\\" and width=\\\"300\\\" /></a>');",
    "original_content": "<a href=\"http://www.advertiser.com/landingpage\" _target=\"blank\"><img src=\"http://dummyimage.com/300x250\" height=\"250\" and width=\"300\" /></a>"
  }
}

次に、新しいクリエイティブを作成するには、API に要求を POST 送信します。

$ curl -b cookies -c cookies -X POST --data-binary @creative 'https://api.appnexus.com/creative?advertiser_id=1234'
{
   "response":{
      "status": "OK",
      "id": 123456
   }
}

IFRAME の HTML

IFRAME タグ ("format" 値) で提供される HTML クリエイティブを作成するには、生の "iframe-html"HTML クリエイティブを作成するのとよく似ています。 主な違いは、HTML が JavaScript document.write() 呼び出しでラップ されていないこと です。 次の例は、IFRAME HTML クリエイティブを作成する方法を示しています。

IFRAME HTML クリエイティブを作成する方法

JSON を含むファイルを作成し、正しい値を追加します。 必要なフィールドには、形式、幅、高さ、監査状態、コンテンツ、および元のコンテンツが含まれます。

$cat creative
{
  "creative": {
    "name": "Iframe HTML",
    "advertiser_id": 1234,
    "format": "iframe-html",
    "width": 300,
    "height": 250,
    "audit_status": "pending",
    "track_clicks": true,
    "content": "<a href=\"http://www.advertiser.com/landingpage\" _target=\"blank\"><img src=\"http://dummyimage.com/300x250\" height=\"250\" and width=\"300\" /></a>",
    "original_content": "<a href=\"http://www.advertiser.com/landingpage\" _target=\"blank\"><img src=\"http://dummyimage.com/300x250\" height=\"250\" and width=\"300\" /></a>"
  }
}

次に、新しいクリエイティブを作成するには、API に要求を POST 送信します。

$ curl -b cookies -c cookies -X POST --data-binary @creative 'https://api.appnexus.com/creative?advertiser_id=1234'
{
   "response":{
      "status": "OK",
      "id": 123456
   }
}

クリエイティブをキャンペーンに関連付ける

クリエイティブとキャンペーンを関連付けするには、次の 2 つの方法があります。

  1. キャンペーン サービスの使用。
  2. クリエイティブ サービスの使用。

キャンペーン サービス

複数のクリエイティブを 1 つのキャンペーンに関連付けるには、 PUT 1 つのキャンペーン サービスに要求を送信し、フィールドを "creatives" 更新します。 次の例は、構文を示しています。

注:

API 呼び出しは、読みやすくするために省略されています。

$ cat campaign
{
  "campaign": {
    "id": 6553,
    "creatives":[
      {"id": 123456},
      {"id": 123457},
      {"id": 123458},
      {"id": 123459}
    ],
    ...
  }
}

クリエイティブ サービス

1 つのクリエイティブを複数のキャンペーンに関連付けるには、 PUT クリエイティブ サービスへの要求、更新 "campaigns" フィールド。 次の例は、構文を示しています。

注:

API 呼び出しは、読みやすくするために省略されています。

$ cat creative
{
  "creative": {
    "id": 123456,
    "campaigns":[
      {"id": 6553},
      {"id": 6554},
      {"id": 6555},
      {"id": 6556}
    ],
    ...
  }
}