時間帯別スコアリングの実装方法 | Community
Skip to main content
Hiroyuki_Moriy1
Level 2
September 11, 2019

時間帯別スコアリングの実装方法

  • September 11, 2019
  • 0 replies
  • 317 views

時間帯別スコアリングの実装方法について、まとめます。

時間帯別スコアリングを使う目的、背景

カスタマーサポートやインサイドセールスにて、お客様にお電話をするとき、メールをするときに、「このお客様、今の時間帯ならいらっしゃるかな」「このお客様、前回送ったメールを開いたのが早朝だから、朝一でメール送ったほうがいいかも」と、お客様の行動を想像しながら、それに合わせてアクションとることがあります。その発想の延長で、お客様の行動する(メールを開く、ウェブを見る)時間帯を把握することができれば、それを基にアクションを最適化できるはず、と考えました。その簡単な実装方法として、Marketoは、複数のスコアを付けられるので、このスコアリング機能で、個々のお客様の時間帯別の行動パターンをスコア化して可視化する、というのがこのアイデアです。

どこまで厳密にスコア化するか?

厳密にすればするほど実装や運用が面倒になるので、実際に、そのスコア使って、どのようにアクションを最適化するか、それに必要な最低限の厳密さに留めるのがよいでしょう。

私が、以前実装したときは、かなりシンプルめの実装で、

  • 1日24時間を、4時間毎に6つの時間帯にわけスコア項目を用意する。例) 2-6時スコア、6-10時スコア、10-14時スコア、14-18時スコア、18-22時スコア、22-2時スコア。
  • 1時間帯(上記の場合であれば、4時間の枠)の間に、顧客が何かしらの行動(メールを開封する、メールのリンクをクリックする、ウェブにアクセスする)を取れば、1日に1回その時間帯スコアを +1 する。(つまり、同じ日に、何回開封しても、何回クリックしても、何回ウェブ訪問しても、1つの時間帯の中で何かしらアクションがあれば、1日に +1だけ)

としました。シンプルですが、これだけでも、1-2ヶ月ほどでもデータを貯めれば、その顧客の行動パターンは読めてくると考えたので。

もっと厳密にしようと思えば、

  • 1日24時間を、1時間毎24個の時間帯にわけ、24個の時間帯スコアを用意する
  • 曜日ごとにさらに分けて、7 x 24 個の時間帯スコアを用意する
  • スコア付与も、メール開封、メールのリンクをクリック、などの回数分だけ +1 する。

なんてことも考えてはみたのですが、そこまで細かくデータとっても、実装、運用の工数が大きくなるし、取れるアクションにそれほど大きな違いはないので、ここまでやんなくていいだろう、という判断です。

実装方法

以下の前提で、実装方法を記載します。もっと細かく設定したい方は、適宜、応用してみてください。

  • 1日24時間を、4時間毎に6つの時間帯にわけスコア項目を用意する。
  • 1時間帯(上記の場合であれば、4時間)の間に、顧客が何かしらの行動(メールを開封する、メールのリンクをクリックする、ウェブにアクセスする)を取れば、その時間帯スコアを +1 する。(つまり、何回開封しても、何回クリックしても、何回ウェブ訪問しても、その時間帯の中で何かしらアクションがあれば、+1だけ)

  1. 時間帯スコア項目を必要な数だけ、事前に作ります。例) 2-6時スコア、6-10時スコア、10-14時スコア、14-18時スコア、18-22時スコア、22-2時スコア。参考:Marketoでカスタムフィールドを作成する - Japanese - Product Documentation 
  2. スコアリング用のプログラムを作ります。
  3. スマートキャンペーンを作ります。今回、6つの時間帯スコア項目に対して、1つずつ作るのが楽ですね。以下では、その1つの作り方を示します。

スマートリスト

ウェブ上のリンククリック、ウェブ訪問、メール開封などトラックしたいアクションを、過去○○時間(時間帯幅に応じて。今回のケースでは4時間の時間帯幅なので、過去4時間)にした場合を絞り込みます。1 OR 2 OR 3 のOR条件で。

フロー

「2-6時スコア」に +1 する。(以下のスクショでは、テスト環境で項目作りづらかったので、便宜上 Lead Score 使ってますが、実際には、作成したスコア項目を指定してください。)

スケジュール

「毎回実行」で、その時間帯の最後の時刻、ここでは、2-6時スコアの加算用なので、「06:00」となります。※ここの時間帯がずれると測定がずれるのでご注意ください。)

これで、2-6時スコアを加算するようのスマートキャンペーンが作れました。

あとは、同様に、各時間帯スコアの加算用のスマートキャンペーンを繰り返し作れば完成です。

おまけ

  • 時間帯をもっと細かく(例えば1時間ごとに)、や、曜日ごとにも分けて集計しようと思えば、その分だけ、スコア項目作って、スマートキャンペーンも複数つくればできます。
  • クリックの回数だけ、開封した回数だけ、スコアを加算したい場合には、フィルターではなく、トリガーキャンペーンで実装すれば可能ですが、その場合、時間帯ごとに処理を分ける部分がすこし複雑な作りになります。その方法を、簡単に以下に記述します。しかし、この方法は、メール開封、クリック、ウェブアクセスなどすべての行動に対してトリガー処理が発生して、負荷が大きくなりすぎるので、おすすめは、ウェブアクセスは含まず、メールの開封のみ、もしくは、メール開封とメールのリンククリックのみ、程度に絞ることです。トラフィックの大きいウェブサイトのアクセスで時間帯スコアやるなら、先述の(トリガーではなく)フィルターでの実装をおすすめします。
    1. 時刻を記録するカスタムフィールドを作ります。例) テキスト項目、名称「時刻記録」
    2. スマートキャンペーン内のスマートリストで、トリガーで「メール開封」「メール内リンクをクリック」など必要なアクションのトリガー条件を入れます。
    3. フローには、上記で作った「時刻記録」という項目を、「データ値の変更」で「{{system.time}}」を入れます。

      {{system.time}} というシステムトークンは、04:34 PM (GMT -0700) という形式で、その時の時刻を記録してくれます。
      参考:System Tokens Glossary - Marketo Docs - Product Documentation 
    4. さて、ここまでで、「メール開封」「メール内リンクをクリック」「ウェブページにアクセス」などが発生したときに、すぐに、「時刻記録」項目が書き換わって、その時の時刻が書き込まれたことになります。
    5. 次に、別のスマートキャンペーンを用意して、スマートリストで以下のような条件を組みます。
      • 1. トリガー:データ値変更:属性=時刻記録(先程つくった項目名)
      • 2. フィルター:時刻記録 が 「AM」を含む
      • 3. フィルター:時刻記録 が 「02」から始まる
      • 4. フィルター:時刻記録 が 「03」から始まる
      • 5. フィルター:時刻記録 が 「04」から始まる
      • 6. フィルター:時刻記録 が 「05」から始まる
      • トリガー に加えて、 2 AND ( 3 OR 4 OR 5 OR 6 )  (とすると、時刻記録が 2-6am であるときを絞り込めます。)
    6. そして、フローには、「2-6時スコア」に 「+1」とします。
    7. 同様のスマートキャンペーンを、2-6時だけでなく、時間帯の数だけ作ります。
    8. これにより、メール開封、メール内リンククリック、のたびに(「時刻記録」項目が更新され、同時に)その時間帯スコアが +1 されます。
  • さて、ここまでで、時間帯スコアを蓄積する仕組みは作れましたが、では、個々の顧客が、「どの時間帯が一番アクセスが多いのか」を判別するのが、Marketo だけでは実装難しいです。SFDCと連携している場合は、SFDC側に、上記のスコア項目を同期しておいて、別の数式項目で、各スコア項目のもっとも値の高いものを MAX関数とかで見つけ出すような項目作るのがいいでしょう。(私は以前そうしていました。)SFDCなど連携していなければ、定期的に、スコア項目のデータをExport して、Excel上で、どのスコアが高いか判別させて、もっともアクセスの高い項目名をもつ、「アクセスの多い時間帯」フィールドなどを新設してそこに Import するといった方法が考えられます。(手作業発生するのはちょっと面倒ですけどね。)

もし、試した方いらっしゃれば、コメントいただけると嬉しいです!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.