通信の仕様
タグが使う通信は 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/{サイトキー}/judgeContent-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 回) |