コンテンツにスキップ

通信の仕様

タグが使う通信は 2 つです。どちらも Cookie を送らず(credentials: 'omit')、送信元のドメインを サイトの登録 の「タグを置くドメイン」と照らし合わせます。一致しないときは 403 を返し、CORS のヘッダーも付けません。

GET /v1/sites/{サイトキー}/config

ページを読み込んだときに 1 回だけ呼びます。3 秒で打ち切ります。

応答 意味
{"enabled": true, "blocks": {"hero": "…", "plan": "…"}} 出し分けが ON。差し替えるブロックとプランの場所の CSS セレクタ
{"enabled": false} 出し分けが OFF。タグは以後、何も読まず何も送りません
POST /v1/sites/{サイトキー}/judge
Content-Type: text/plain

本文は JSON です(送る内容の実物)。Content-Type: text/plain にしているのは、事前確認(preflight)の往復をなくして速く返すためです。1.5 秒で打ち切ります。

応答 意味 タグの動き
200 {state, hero, heroChanged, plan} 判定の結果 hero があれば、その訴求を出す。plan があればプランを出す
200 {"reset": true} 出し分けが止められた 標準の表示に戻し、以後は何も送らない
200 {"skip": "daily_limit"} サイトの 1 日の上限に届いた 何もしない
400 本文の形が崩れている 何もしない
403 送信元のドメインが登録されていない 何もしない
413 本文が 16KB を超えた 何もしない
429 流量の上限を超えた 何もしない
503 判定が時間内に返らなかった 何もしない
項目 上限
本文の大きさ 16KB
1 回に送る操作 直近 12 件(1 件 60 字、data-mitate-act と mitate.push は 120 字)
1 回に送るやり取り 直近 10 件(1 件 300 字)
判定の頻度 1 つのタブで 1 分に 30 回
サイトの 1 日の判定の回数 サイトごとに決めた上限(既定 5,000 回)