コンテンツにスキップ

JavaScript の API

相談の文面や、独自の操作を MITATE に渡します。

window.mitate = window.mitate || [];
window.mitate.push({ type: 'chat', speaker: 'user', text: '家族4人で戸建てです' });
type ほかの項目 動き
'chat' speaker:'user'(訪問者)か 'agent'(案内)、text:文面 訪問者の発言はすぐに判定します。案内の発言は次の判定で一緒に読みます
'action' text:操作を表す文 行動として記録し、ほかの操作とまとめて判定します
'conversion' goal:ゴールの key(省略可) 申し込みとして数えます。タブごとに 1 回だけです。goal を省いたら主のゴールとして数えます(効果を測る)
// 申し込みのゴールが 1 つだけなら、goal は省いて構いません
window.mitate.push({ type: 'conversion' });
// ゴールが複数あるサイトでは、どのゴールが完了したかを付けます(key は[設定]の「軸・ゴール」で確認できます)
window.mitate.push({ type: 'conversion', goal: 'download' });
  • 文面は 300 字まで、操作の文は 120 字までにそろえます。
  • 送る前に、メールアドレス・電話番号などを伏せ字にします。
  • タグの読み込みの前に push したものは、読み込んだあとに順に渡されます。
  • 出し分けが OFF のサイトでは、何も送りません。

このページでの読み取りを止め、標準の表示に戻します。以後、このページでは何も送りません。訪問者が同意を取り消したときなどに使います。

window.mitate.stop();

いま出している訴求・案内・プランを返します。音声 AI の会話を途中から始めるときに、画面と同じ内容を渡すのに使います。タグの読み込みが済んでから使えます(window.mitate.current があるかを確かめてください)。

const { concern, fields, guide, plan, group } = window.mitate.current();
// concern:関心の key。標準の表示なら 'default'
// fields:出している訴求の文面。標準の表示なら null
// guide:出している案内 { key, label }。なければ null
// plan:出しているプラン(下の mitate:plan と同じ形)。なければ null
// group:このタブの群。'test'(出し分ける)か 'control'(比べる群で、表示を変えない)。数えていなければ null

訴求を差し替えたとき、または標準の表示に戻したときに、window に mitate:change のイベントを出します。

window.addEventListener('mitate:change', (e) => {
const { concern, fields } = e.detail;
// concern:関心の key。標準の表示に戻したときは 'default'
// fields:承認済みの訴求の文面 { eyebrow, title, sub, points }。標準に戻したときは null
});
  • 同じ訴求のあいだは、重ねて出しません。
  • data-mitate-block を付けていないページでも出します。React や Vue などで、フレームワークの側で訴求を表示したいときは、fields を使って描画してください(組み込みの注意)。

判定が案内を選んだとき、または止めて案内を外したときに、mitate:guide のイベントを出します。お客様のチャットで、案内の文字をそのまま返答のボタンにするときなどに使います。

window.addEventListener('mitate:guide', (e) => {
// e.detail:{ key, label }。案内を外したときは null
});
  • data-mitate-guide の説明がこのページになくても出します(リンクは出しません)。
  • 同じ案内のあいだは、重ねて出しません。

プランを組み立てたとき、または中身が変わったときに、mitate:plan のイベントを出します。音声 AI に渡すと、声の説明と画面の数字をそろえられます。

window.addEventListener('mitate:plan', (e) => {
if (!e.detail) return; // 止めてプランを外したときは null
const { lines, total, separateDiscount, period, labels, missing, text } = e.detail;
// text:画面と同じ数字で書いた文。音声 AI の指示(システムプロンプトや会話の文脈)にそのまま入れられます
voiceAgent.updateContext(text); // 音声 AI の側の関数(例)
});

text の例:

そらネット 10G(戸建て) 月額6,050円(在宅勤務があるので)
ネット料金(2年間の目安):134,200円
スマホ代の割引(2年間・別の請求):−105,600円
まだ分からない条件:今の回線の契約
  • data-mitate-plan を付けていないページでも出します。
  • 同じプランのあいだは、重ねて出しません。
  • 文面は料金表の規則からプログラムが作ったもので、AI が書いたものではありません。

window.dataLayer があるとき(Google タグマネージャー)は、次の値も積みます。訪問者の相談の文面や、プランの中身は積みません。

{ event: 'mitate_change', mitate_concern: 'speed' } // 訴求が変わった
{ event: 'mitate_guide', mitate_guide: 'switch' } // 案内が変わった(外したときは 'none')
{ event: 'mitate_plan' } // プランが変わった

出し分けあり・なしで申し込み率を比べるときの目印に使えます。