ADの技術面:仕組みと導入方法
キャンペーンに必要なものはすべて動いています:アカウント、キャンペーン、クリエイティブ、広告枠、配信エンジン、パネル、レポート。このページは広告を配信しているのと同じコードから生成されます — 以下の上限・マクロ・イベント・ルートはビルドのたびにソースから読み取られ、手で書かれたものは一つもありません。
ADとは何か、誰のためのものか
ADは直接取引の広告サーバーです。オークションもブラックボックスもありません。パブリッシャーは自分が運営するサイトの広告スペースを売り、広告主は枠を選び、ターゲティングを設定して配信します。一つのアカウントでどちらの役割も — 両方も — 務められます。
広告主
キャンペーンを作り、クリエイティブを追加し、審査を通過し、マーケットプレイスの広告枠を購入して、表示回数とクリックがレポートに届くのを確認します。
パブリッシャー
サイトを登録し、サイズ・販売モデル・価格を持つ広告枠を定義し、タグを一つ貼り付けて、各販売の80%を受け取ります。自分の枠に自分の広告を出すのは無料です。
両方を同時に
広告主アカウントはサイトを登録した時点でパブリッシャーにもなります。重複は生じません。パネルには、お持ちの役割ごとのタブが表示されます。
入り方
forhosting.comにログインし、アカウントメニューの「AD を管理」を選びます。パネルは短いセッションで開きます — 数分で失効する認証情報(最長60分)で、ブラウザに永続的なキーは一切残りません。失効したら同じメニューから開き直してください。
連携には、パネル(プロフィール)またはPOST /tenants/:id/keysでAPIキーを作成します。スコープは2種類:tenant(自分のアカウントへのフルアクセス)とread(読み取り専用、ダッシュボードやボット向け)。キーは一度しか表示されません。紛失したら新しく作り、古いものを失効させてください。
サポートのため、当社スタッフがお客様のパネルを「顧客として」開くことがあります。そのセッションは最長15分で、開いた担当者の名前が記録されます。当社が永続キーでお客様のアカウントを操作することはありません。
キャンペーンとターゲティング
キャンペーンは入れ物です:名前、期間、任意の予算、そしてクリエイティブが共有するターゲティング。draftとして生まれ、activeにしたり、pausedで一時停止したり、終わったらendedにしたりできます。配信されるのはアクティブなキャンペーンのアクティブなクリエイティブだけ — キャンペーンを一時停止すると配信は即座に止まります。
| 条件 | 仕組み |
|---|---|
| 国・地域・都市 | 国のリスト。任意で地域と都市を一つずつ。都市にはその地域が、地域にはその国が必要です。訪問者の位置が不明でキャンペーンが地域条件を持つ場合、広告は配信されません — 誤って配信されることはありません。 |
| ブラウザーの言語 | 訪問者のブラウザーが通知する言語コードのリスト(最大 30 件)。サイトの言語と同じとはかぎりません。リストにない言語の訪問者には配信されないため、言語を指定しないキャンペーンを1つ残してください。それが残り全員を受けとめます。 |
| デバイス | any、mobile、desktopのいずれか。 |
| OS | 次のリストから選択:iPhone, iPad, iPod, Windows, Android, BlackBerry, Ubuntu, Linux, CrOs, Mac OS X。 |
| リファラー | 訪問者の遷移元ページに、設定した文字列が含まれている必要があります(大文字小文字は区別しません)。 |
| 期間 | キャンペーンの開始日と終了日。各クリエイティブにも独自の期間を設定でき、実際の配信期間は両者の重なる部分です。 |
| フリークエンシーキャップ | クリエイティブごと:訪問者一人あたり最大N回の表示。3日間有効なファーストパーティcookieで数えます。 |
| 上限 | クリエイティブごと:総表示回数、1日あたりの表示回数、総クリック数。上限に達すると5分以内に配信が停止します。 |
対象となるキャンペーンの中から、エンジンはランダムに選ぶのではなく順番に回します。一方を配信し、次にもう一方を配信し、両者が並んだときにだけ、各クリエイティブに設定した重みが同点を決めます — 同じ訪問者に同じキャンペーンを10回続けて見せても何も売れません。順番は訪問者ごと・広告枠ごとに、訪問者自身のブラウザで数えます。cookieがブロックされている場合は重み付きの抽選に切り替わります。配信上限のあるクリエイティブはペーシングもされます:5分ごとに重みを再調整し、予算が朝のうちに燃え尽きず、キャンペーン期間全体に行き渡るようにします。ペーシングは減速するだけで、トラフィックを生み出すことはありません。
クリエイティブは支払い済みの注文がある広告枠でのみ配信されます(「枠を購入する」を参照)。キャンペーン、クリエイティブ、広告枠、注文はパネル(キャンペーン、クリエイティブ、枠を購入する)で確認できます。
クリエイティブ:6種類、タグは一つ
すべてのクリエイティブはクリックURL、任意の固定サイズ、重みを持ちます。この表の上限はAPIがアップロード時に適用するもので、コードから読み取られており、ここに書かれたものではありません。
| 種類 | アップロードするもの | 上限 |
|---|---|---|
image · 画像 | ファイル1つ:PNG, JPEG, GIF, WebP, AVIF。 | 最大2 MB、2000×1800 px。クリエイティブが固定サイズを宣言している場合、ファイルはちょうどそのサイズでなければなりません。 |
text · テキストリンク | タイトルと任意の本文。ファイルなし。 | 広告枠自身のスタイルでリンクとして表示されます。 |
html5 · HTML5 | ルート(または単一のフォルダ内)にindex.htmlを含むZIP、または単一のHTMLファイル。 | ZIPは最大10 MB。厳格なコンテンツポリシーのiframe内で配信され、他のオリジンへのリクエストはできません。 |
video · 動画 | ファイル1つ:MP4, WebM。ポスター画像と音声切替ボタンは任意。 | 最大30 MB。当社プレイヤーでミュート・自動再生され、レポートには視聴ごとにstartとendのイベントが記録されます — このほかにどちらにも数えられないdebugイベントがあり、広告を確認するときに使えます。 |
vignette · インタースティシャル | 画像(imageと同じ規則)または動画。 | 全画面オーバーレイとして表示されます。いつ表示するかは広告枠が決めます — リンクのクリック時、N回の画面遷移後、または訪問者がタブを離れようとしたとき — 表示回数はオーバーレイが開いた時点で数えられます。 |
script · スクリプト | 下記のマクロを使った独自のHTML/JSと、最大5枚の画像。 | script形式を許可した広告枠のみ。第三者のコードがパブリッシャーのページ上で実行されるため、手動審査が唯一の防壁であり、決して省略されません。 |
HTML5の契約
index.htmlはiframe内に読み込まれ、クリック先はクエリ文字列のclickTagとして渡されます。これを読み取り、クリック可能領域のhrefに使ってください — このURLは署名付きでクリックを計測します。手で書いたリンクは計測されません。
// index.html — the click goes where the engine says
var clickTag = new URLSearchParams(location.search).get("clickTag");
document.getElementById("ad").href = clickTag;
クリエイティブの高さを変える必要があるときは、postMessageで実際の高さをページに伝えます。タグは読み込み時とリサイズのたびに枠の幅をクリエイティブに伝え、枠が初めて画面内に入ったときにvisibleを送ります — アニメーションを始める好機です。高さは10000 pxまで適用されます。
// creative → page: ask for the real height (applied up to 10000 px)
parent.postMessage({ fh: "resize", nh: document.documentElement.scrollHeight }, "*");
// page → creative: { fh: "size" | "visible" }
window.addEventListener("message", function (ev) {
if (ev.data && ev.data.fh === "visible") { /* start your animation */ }
});
両方を行う最小構成のクリエイティブです。そのままアップロードできます: サンプルZIPをダウンロード
スクリプト型クリエイティブのマクロ
script型クリエイティブでは、広告枠の公開時にエンジンがこれらのプレースホルダーを置き換えます。パネルのテンプレートも同じ仕組みで、フォームで入力する追加のプレースホルダーを持ちます。
| マクロ | 置き換わる値 |
|---|---|
[CLICKTAG] · [TRACKLINK] | 署名付きクリックURL — hrefに使ってください。これがないとクリックは計測されません。 |
[LINK] | トラッカーを通さない生の遷移先URL。必要なコード向け。 |
[TARGET] | クリエイティブの設定に応じた_blankまたは_self。 |
[ID] | クリエイティブのID。 |
[TITLE] · [TITOLO] | クリエイティブのタイトル(HTMLエスケープ済み)。 |
[IMG0] … [IMG4] | アップロードした各画像のURL(順番どおり)。 |
[TIMESTAMP] · [RANDOM] | 広告枠の公開時に固定されるタイムスタンプと乱数 — 自前ピクセルのキャッシュ回避用。 |
[CLICKTAG:<id>] · [TRACKLINK:<id>] | 一つの名前付き遷移先の署名付きクリックURL。ボタンが二つあるクリエイティブでも、それぞれのクリックを別々に数えられます。 |
一つのクリエイティブに複数の遷移先
クリエイティブは、主となるクリックURLのほかに名前付き遷移先を最大8件持てます — たとえば同じ広告の中にApp StoreボタンとGoogle Playボタンを並べる場合です。それぞれ最大20文字の小文字のIDを持ち、mainは主となるURL用に予約されています。
HTML5クリエイティブでは、通常のclickTagと並んでクエリ文字列にclickTag_<id>として渡されます。script型クリエイティブでは[CLICKTAG:<id>]と書きます。いずれもクリックトラッカーを通るため、合計に加算されかつレポートではボタンごとの内訳も得られます。
サードパーティのトラッキングと同意
どのクリエイティブにもトラッキングコード(計測事業者のピクセルやスクリプト)を付けられます。広告の後に出力され、各srcはdata-srcに変換されるため、タグが許可するまで何も読み込まれません。
事業者のIAB TCF v2 IDを設定すると、その事業者に対する訪問者の同意が得られた後にのみ、${GDPR}と${GDPR_CONSENT_n}を埋めた状態でコードが読み込まれます。タグはサイトの同意管理ツールを最大10秒待ちます。事業者IDがない場合、コードは通常の要素として読み込まれます。
手動審査
すべてのクリエイティブはen_revisionとして生まれ、配信前に人が審査します。承認されたらactiveまたはpausedに設定できます。却下された場合は理由が表示され、修正して再提出できます。未審査のクリエイティブからは、マークアップもスクリプトもトラッキングコードも、訪問者には一切届きません。
承認済みクリエイティブのクリックURL、内容、ファイルを変更すると再審査に戻ります。承認されたものだけが配信され、それ以外が配信されることはありません。
枠を購入する
マーケットプレイスには販売中のすべての広告枠が並びます:サイト、サイズ、許可形式、販売モデル、パブリッシャーが設定した価格。広告枠、その枠が許可する形式のクリエイティブ、予算、開始日を選びます。見積もりと課金は同じ式を使います:
| モデル | 課金単位 | 得られるもの |
|---|---|---|
cpm | 1,000表示 | 表示回数 = 予算 × 1000 / 単価 |
cpc | 1クリック | クリック数 = 予算 / 単価 |
cpd | 1日 | 日数 = 予算 / 単価 |
最低注文額は$5で、それ未満の見積もりは拒否されます。注文はボリュームの前払い購入で、お金が動くのは購入時の一度だけです。idempotencyKeyを送れば、再送しても二つ目の注文ではなく同じ注文が返ります。
支払い方法
| 方法 | 仕組み |
|---|---|
| アカウント残高 | 同じ呼び出しの中で、For Hostingの残高から注文が支払われます。残高が足りない場合、注文は保留のままになり、レスポンスにチャージへのリンクが含まれます。後で支払いを再試行できます。 |
| 手動 | 注文は保留状態で作成され、パネル外で入金を確認した後に当社スタッフが支払い済みにします。それまでは配信されません。 |
| 自社広告 | 自分の広告枠に自分のクリエイティブ:注文は費用ゼロの支払い済みとして生まれます。記録は同じ、お金は動きません。 |
注文が支払い済みになると、最終価格の80%が広告枠のパブリッシャーに計上されます — 配信量に応じた按分ではなく注文全体に対してです。広告枠はただちに再公開され、クリエイティブは翌分から配信されます。
サイト、広告枠、タグ、支払い
サイト
ドメインでサイトを登録します(パブリッシャーになる)。保留状態で生まれ、そのあと自分で確認を済ませます:お渡しするトークンを/.well-known/fh-ad-site-verification.txtかトップページに掲載し、確認を依頼すると、サイトは自分で有効になります — 待ち行列もなく、こちらの誰かが先に見る必要もありません。未確認のドメインは取り分を受け取れません。サイトを退役させるとドメインに90日間のクールダウンがかかり、その間は他の誰もそのドメインを登録して履歴を引き継ぐことができません。
広告枠
広告枠は販売できるスロットです:名前、ピクセル単位のサイズ(または可変幅なら-1)、許可する形式、価格付きの販売モデル、マーケットプレイスで販売中かどうか。他に対象がないときに配信される自分のフォールバッククリエイティブを設定でき、これはターゲティングとキャップを無視します。
訪問者のブラウザで動く任意の機能が二つあります:自動更新(N秒ごとに新しいリクエスト、最小5秒。非表示のタブでは更新せず、空で返ってきた枠は前の広告を保持します)とパラメータの転送(ページのクエリ文字列がクリックとともに広告主の遷移先へ渡されます)。
インタースティシャルが表示されるきっかけ
オーバーレイはサイトではなく広告枠の属性です:そのために貼り付けるものはなく(必要なものはタグが自分で作ります)、表示の間隔は枠を購入するパネルから変更します。モードは4種類:
| モード | 表示されるとき | 設定 |
|---|---|---|
enlace | 訪問者が広告枠のセレクターに一致するリンクをクリックしたとき。 | CSSセレクター — 既定はp a, nav a, h2 a。 |
navegacion | 同じ訪問者がN回ページを移動したあと。ページの読み込みも、ページ内での画面遷移も数えるため、同じタグが従来型のサイトでもシングルページアプリでも、誰も一行書かずに動きます。 | 段階的なスケジュール。たとえば[3,5,10,20]なら、3回目の移動で表示し、次は5回、次は10回、次は20回空けて、以降は最後の値を繰り返します。最大20段階、各値は1から500まで。 |
salida | 訪問者がタブを離れようとする動きをしたとき。細かいポインターでは、マウスがアドレスバーへ向かう動きです。スマートフォンでは戻るボタン、またはしばらく離れてから戻ってきたときで、スクロールでは決して出しません(不意打ちになるため)。 | 同じ訪問者に対して、オーバーレイとオーバーレイの間を空ける分数。最大10080。 |
popunder | 訪問者が本物のリンクを最初にクリックすると、その行き先が新しいタブで開き、残されたタブに広告が読み込まれます。読み込むのは相手がすでに別の画面を見ているときだけで、戻ってきた場合は取りやめます。 | 段階的なカレンダー、分単位の休止、またはその両方(どちらか一方は必須)。そして開く先:広告を収めた当社のページか、指定のURLか。 |
間隔が一定だと、30日目の訪問者も1日目と同じだけ疲れさせてしまいます — 段階的なスケジュールはそのためのもので、最初の表示は早めに使い、そのあとは身を引きます。回数は訪問者自身のブラウザに保存され、ストレージが使えない場合は、壊れる代わりにメモリ上で数える動作に切り替わります。
広告をいつ要求するか — サイトが先です
広告がサイトを遅くしてはなりません。その設定はお客様のHTMLではなくこちらにあります。サイトごとに、タグが最初の広告を要求するタイミングを選べます:
| モード | 表示されるとき |
|---|---|
carga-ocioso | 既定。ページの読み込みが終わったあと、タグはブラウザーが何もしていない空き時間を待ちます — 上限は2000 msで、忙しいタブでも広告がきちんと表示されるようにしています。 |
carga | ページの読み込みが終わり次第。 |
retraso | 読み込み後に一定時間待ちます。100〜15000 msの範囲。 |
inmediato | できるだけ早く。ネットワークをお客様自身のコンテンツと奪い合います。そうしたい理由がはっきりしている場合にのみ。 |
そして広告が届くまでの間も、枠は空白ではありません:タグはプレースホルダーを描画し、高さを学習します — 初回の訪問では余裕を見たサイズを確保し、2回目からは確保する枠がちょうどの大きさになるため、広告が届いてもページが跳ねません。この跳ねがGoogleの測るレイアウトシフトであり、広告ネットワークがサイトのスコアを落とす典型的な原因です。
タグ
広告を出したい場所に貼り付けてください — または広告枠自身に場所を宣言させて、この手順をまるごと省略できます(下の「広告が出る場所」を参照)。広告枠のidはパネル(サイトと広告枠)にあります。同じタグでその枠が受け付けるすべての形式を配信します。インタースティシャルの枠も標準のタグを使います。
標準(divとscriptが一つずつ、非同期):
<div data-fh-ad="zon_XXXXXXXXXXXXXXXXXXXXXXXX"></div>
<script src="https://api.ad.forhosting.com/ad-tag.js" async></script>
レガシー版。非同期スクリプトを実行できないCMS向け:
<script src="https://api.ad.forhosting.com/ad-serve?zone=zon_XXXXXXXXXXXXXXXXXXXXXXXX&mode=js"></script>
テキストリンク:表示回数を数えて広告主へリダイレクトするURL:
https://api.ad.forhosting.com/ad-serve?zone=zon_XXXXXXXXXXXXXXXXXXXXXXXX&mode=link
タグは自動で更新されます。URL にバージョンは含まれず変わることもないため、当社側の改善は約 60 分で全サイトに届き、誰もテンプレートを編集しません(現在は v11 を配信、x-tag-version ヘッダーで確認できます)。ページの読み込みが完全に終わってから広告を要求するので、広告がコンテンツと帯域を奪い合うことはありません。ページに残る印は data-fh-ad 属性とオーバーレイの id だけで、主要な広告ブロックリストと照合して一致はゼロです。フリークエンシーキャップはファーストパーティ Cookie を使います。
同じ位置がページ内で繰り返される場合 — たとえばフォーラムの「Nスレッドごと」 — タグはそのすべてのコピーを1回のリクエストでまとめて要求し(最大10)、フリークエンシーキャップはそのまとまりの中で進むため、一つのクリエイティブがページ上のすべての枠を埋めることはありません。当社側がまとめての要求を解釈できない場合、タグはページを空のままにせず、一枠ずつの動作に戻ります。広告枠を繰り返す場合は当社に申告してください:原則として位置ごとに一つの広告枠です。レポートが集計する単位が広告枠だからです。
広告が出る場所 — テーマに触れずに
広告枠はどこに置くかを自分で宣言できます:CSSセレクタ(最大300文字)と、そのセレクタが見つけた要素に対する位置です。枠はタグが作るので、広告を動かすのはパネルでの変更であって、テーマの編集ではありません。
| 位置 | 枠が入る場所 |
|---|---|
despues | 見つかった要素のすぐ後ろ。既定値です。 |
antes | そのすぐ前。 |
dentro-inicio | その内側、最初の子として。 |
dentro-fin | その内側、最後の子として。 |
繰り返しは任意の2つの数値で決まります:N件ごとに枠を置くもの(最大50)と、作る枠の総数の上限(繰り返すときは既定で4、最大20)です。上限は常にあります:pのような緩いセレクタは長い記事で何百回も一致するので、その制限が設定する人の記憶に頼ってはいけません。
知っておくとよいことが2つ。テーマにご自身で置いたdata-fh-adのdivが優先されます:タグはその枠に2つ目を作らないので、一方の方式からもう一方へ移っても1回の表示で2回課金されることはありません。そして一致しないセレクタはエラーになりません — ページは広告なしで問題なく表示され、パネルも緑のままです。配置はブラウザで、デスクトップ幅とスマートフォン幅の両方で確認してください:記事には存在してトップページには存在しないセレクタもあれば、デスクトップで1360px、スマートフォンで0pxになるものもあります。
WordPress:貼り付けるものはありません
サイトがWordPressならforhosting-adというプラグインがあります。インストールすると自分で名乗り出ます:ご自身のドメインにチャレンジを公開し、こちらがそれを読み、認証情報は一度だけ渡されます。鍵もidもトークンも入力しません — そしてドメインを管理していると証明することは招かれていることと同じではありません:サイトが承認されるまで何も発行されません。
そこから先は広告枠をパネルで管理します。配置も含みます。プラグインはさらに、サイトで使っているページキャッシュに、HTMLが変わったページの破棄を依頼します — よくあるものを判別し、それぞれのやり方で頼みます。キャッシュされたページは、タグはHTMLにあるのに広告が画面に出ない、いちばんよくある理由です。しかもコマンドラインからは見えません:古い写しは本物のブラウザにしか渡されないからです。
もう一つforhosting-ad-updaterというプラグインがあり、パッケージを受け取って導入します。これは設計上リモート実行の経路なので、当社のサイトにしか入れません。お客様のサイトでは更新はWordPress本来の経路で届き、適用する時期はお客様が決めます。
支払い
支払い済み注文ごとの80%の取り分がパネル(支払い)に積み上がります。累計が$10に達したら、プロフィールの方法(paypal, bank, other)で支払いを申請してください。当社スタッフがパネル外で送金し、参照番号を記録します。
状態:accrued → requested → processing → paid。送金に失敗した場合は理由とともに戻され、情報を修正して再申請できます。
レポート
表示回数、クリック、動画の開始/終了は、リクエストごとにエッジで数えられます。計測前にトラフィックをフィルタリングします:ユーザーエージェントで知られるクローラー、データセンターのネットワーク、ボットスコアが非常に低いリクエスト、2秒以内に同じリクエストを繰り返すIP。フィルタされたリクエストにも広告やリダイレクトは返されます — 守られるのはカウンターだけです。
5分ごとに、計測値はクリエイティブ・広告枠・リファラーのホスト別の日次行に集計されます。当日はその分だけ遅れることがあり、締めた日の数値は変わりません。
パネル(レポート)では、合計と日次推移、CTR(クリック ÷ 表示 × 100)、eCPM(配信価値 × 1000 ÷ 表示)を広告主側またはパブリッシャー側で表示し、6つの集計単位のいずれかでまとめた上位一覧も見られます:
| 集計単位 | 行の内容 |
|---|---|
creative | クリエイティブごとに1行。 |
campaign | キャンペーンごとに1行。 |
zone | 広告枠ごとに1行。 |
site | サイトごとに1行。そのサイトの広告枠を合算します。 |
refHost | 表示が発生したページのホストごとに1行 — 保存されるのはホストだけで、URLは保存されません。 |
link | 名前付き遷移先ごとに1行:お客様のどのボタンがクリックされたか。この種の行はクリックだけを持ち表示回数を持たないため、合計ではなく内訳として読んでください。 |
いずれの表示も、キャンペーン・クリエイティブ・広告枠・リファラーのホスト・遷移先で絞り込めます。同じ数値はAPIからも取得できます。
計測される前に、トラフィックはボットフィルターを通ります。当社は3つのモードのいずれかで運用します:block(既定。フィルターされたリクエストにも広告は返されますが、数えられません)、log(数えたうえで別に記録し、判断の前に計測します)、off。
APIリファレンス
ベースURLはhttps://api.ad.forhosting.com。キーはBearerトークンとして送り、リクエストボディとレスポンスはJSONです。すべてのレスポンスは{"success":true,"data":…}または{"success":false,"error":{"code","message"}}の形で、対応するHTTPステータスを伴います。
curl https://api.ad.forhosting.com/me \
-H "Authorization: Bearer ads_ten_…"
認証情報のスコープ
| スコープ | できること |
|---|---|
session | パネルが使うもの:自分のアカウント、フルアクセス、数分で失効。パネルを開くときにポータルが発行します。 |
tenant | 自分のアカウント、フルアクセス、永続。連携用。 |
read | 自分のアカウント、読み取り専用。何も変更してはいけないダッシュボードやボット用。 |
system | 当社:任意のアカウント(明示的なtenantId付き)、審査、サイト確認、手動支払い、送金。スタッフも失効するsystemセッションを使います。 |
tenant、read、sessionの認証情報は常に自分のアカウントを操作します — クライアントが送ったtenantIdは無視されます。他人のIDには403ではなく404が返ります。APIはその存在を決して確認しません。
ルート
サービスが公開するすべてのルートと、ルーターが要求するスコープ — ビルドのたびにルーター自身から導出されます。
| メソッド | ルート | スコープ |
|---|---|---|
| GET | / | 公開 |
| GET | /ad-serve | 公開 |
| GET | /ad-click | 公開 |
| GET | /ad-video-event | 公開 |
| GET | /ad-a/* | 公開 |
| GET | /ad-p/* | 公開 |
| GET | /ad-pu/* | 公開 |
| GET | /ad-preview/* | 公開 |
| GET | /ad-tag.js | 公開 |
| GET | /wp/:plugin.json | 公開 |
| GET | /wp/:plugin.zip | 公開 |
| POST | /wp/enroll | 公開 |
| POST | /wp/enroll/:id/verify | 公開 |
| POST | /wp/enroll/:id/updater-secret | 公開 |
| GET | /wp/enroll/:id | 公開 |
| GET | /wp/altas | system |
| POST | /wp/altas/:id/approve | system |
| POST | /wp/altas/:id/reject | system |
| POST | /wp/altas/:id/reopen | system |
| POST | /wp/altas/:id/adoptar | system |
| POST | /wp/altas/:id/updater-secret | system |
| GET | /wp/preauth | system |
| POST | /wp/preauth | system |
| DELETE | /wp/preauth | system |
| POST | /tenants | system |
| GET | /tenants | system |
| GET | /tenants/:id | 任意 |
| PATCH | /tenants/:id | 書き込み |
| POST | /tenants/:id/sessions | system |
| POST | /sessions/staff | system |
| DELETE | /sessions/self | 任意 |
| DELETE | /sessions/:id | system |
| GET | /me | 任意 |
| POST | /tenants/:id/keys | 書き込み / system |
| GET | /tenants/:id/keys | 読み取り / system |
| DELETE | /tenants/:id/keys/:keyId | 書き込み / system |
| GET | /me/payout-profile | 読み取り |
| PUT | /me/payout-profile | 書き込み |
| POST | /campaigns | 書き込み |
| GET | /campaigns | 読み取り |
| GET | /campaigns/:id | 読み取り |
| PATCH | /campaigns/:id | 書き込み |
| DELETE | /campaigns/:id | 書き込み |
| POST | /campaigns/:id/duplicate | 書き込み |
| POST | /creatives | 書き込み |
| GET | /creatives | 読み取り |
| GET | /creatives/:id | 読み取り |
| PATCH | /creatives/:id | 書き込み |
| DELETE | /creatives/:id | 書き込み |
| PUT | /creatives/:id/asset | 書き込み |
| POST | /creatives/:id/duplicate | 書き込み |
| POST | /creatives/bulk | 書き込み |
| GET | /moderation/queue | system |
| GET | /moderation/preview-url/:id | 任意 |
| POST | /creatives/:id/approve | system |
| POST | /creatives/:id/reject | system |
| POST | /creatives/:id/emergency-block | system |
| POST | /sites | 書き込み |
| GET | /sites | 読み取り |
| GET | /sites/pending | system |
| GET | /sites/:id | 読み取り |
| PATCH | /sites/:id | 書き込み |
| DELETE | /sites/:id | 書き込み |
| POST | /sites/:id/verify | 書き込み |
| POST | /zones | 書き込み |
| GET | /zones | 読み取り |
| GET | /zones/:id | 読み取り |
| PATCH | /zones/:id | 書き込み |
| DELETE | /zones/:id | 書き込み |
| GET | /zones/:id/tag | 読み取り |
| GET | /zones/:id/quote | 任意 |
| POST | /zones/:id/publish | system |
| GET | /marketplace | 任意 |
| POST | /checkout | 書き込み |
| GET | /orders | 読み取り |
| GET | /orders/:id | 読み取り |
| GET | /orders/pending | system |
| POST | /orders/:id/pay | 書き込み |
| POST | /orders/:id/mark-paid | system |
| GET | /payouts | 読み取り |
| GET | /payouts/pending | system |
| POST | /payouts/:id/request | 書き込み |
| POST | /payouts/:id/status | system |
| POST | /payouts/:id/mark-paid | system |
| GET | /stats | 読み取り |
| GET | /stats/top | 読み取り |
| GET | /settings | 任意 |
| PUT | /settings | system |
| GET | /templates | 任意 |
| POST | /templates | 書き込み |
| PATCH | /templates/:id | 書き込み |
| DELETE | /templates/:id | 書き込み |
| POST | /templates/:id/render | 任意 |
| GET | /geo/countries | 任意 |
| GET | /geo/regions | 任意 |
公開: 認証不要 — 配信経路 · 任意: 有効な認証情報なら何でも、自分のアカウントに対して · 読み取り: tenant、session、read · 書き込み: tenantまたはsession(readは拒否) · system: 当社のみ
知っておきたいエラー:401 unauthorized(認証情報がない、または失効)、403 forbidden(そのスコープでは実行不可)、404 not_found、400 bad_request(理由はメッセージに)、409 conflict(許可されない状態遷移)、注文の支払い時の402 insufficient_balance、販売停止中の503 payments_disabled。
技術的な質問
今日、実際のキャンペーンを配信できますか?
はい — 最初から最後まで:パネルでキャンペーンとクリエイティブを作成し、審査を通過し、枠を購入すれば、タグがトラッキング付きで配信します。ご自身のサイトなら即時・無料で有効になります。
タグはどこで取得できますか?
パネル → サイトと広告枠 → タグを取得。枠ごとに専用タグがあり、標準版はdivとscriptの2行です。
クリエイティブがすぐ配信されないのはなぜ?
すべてのクリエイティブは配信前に短い手動審査を通ります — 広告が載るサイトを守るためです。ローテーションと上限も適用されます:上限やペーシングのあるクリエイティブは意図的にリクエストを飛ばし、変更した広告枠がエッジで更新されるまで最大1分かかります。