B2Bマーケのデータマネジメントvol.3-集客施策の寄与度を可視化する-
こんにちは、カミムラです。今回は、Pardotを使ったメールなどの集客施策の成果をどう可視化するのか?というテーマです。
登壇では一般ウケしなそうなので話せない、細部のデータマネジメントをこのnoteにて。細かくて具体的な話です。CVRの改善とか、原因の因数分解とかが好きな数字志向のデジタルマーケター向け。
これはメールだけの話?もっと広い話?
これ、何かひとつ例を挙げないと説明が難しいのでメールを選んでみましたが本当はもうちょっと広いテーマでして。
リードジェネレーションの構造として、リードは各キャンペーン(セミナー、イベント、Web資料請求など)から生まれて、各キャンペーンへの流入は各集客施策(集客メール、広告、Web導線など)から生まれるという二段構造になります。
このとき、各集客施策の寄与度をデータでちゃんと可視化するためのデータマネジメントの話です。Vol.1 キャンペーンメンバーの話や、Vol.2 ロボットで自動化 の話もちょっと絡んできます。
メールって何が可視化できたら良い?
シンプルな単発メール施策(セミナー集客や、資料DLの誘導など)場合、構造は図のようになります。見たい数値は赤文字の指標※。観点として、各メールでどのキャンペーンにどれだけCV増えたの?改善できるとしたらどこなの?が分かるようになりたいです。
メールってともすると開封率やCTRみたいな、すごく細かい指標で語られがちで、そうなっちゃうと「結局そのメールってどれだけリード獲得・売上に寄与したの?」がわかんなくなっちゃう。それはまずいと思ってます。
※ブランディング目的の定期メルマガやスコアリング目的のステップメールとかは指標が別になるので、これはどちらかというとダイレクト・レスポンス・マーケティングなメール施策の話。
開封率が悪ければ、送信者名やタイトル、配信時間を工夫しますし、クリック率が悪ければ、本文やCTA付近のオファー文を工夫する。フォームCVRが悪ければフォームを工夫する。因数分解できるようにしておくとどこが改善しやすそうか特定しやすいし、同じような施策で横並べの比較もしやすい。
「課題は小さい方が扱いやすい」と思ってまして、マネジャーの仕事の1つは複雑で大きな課題を細かく分けて、メンバーに割り振ることだと思ってます。なのでこれも細かく小さく、扱いやすい大きさに分ける。
改めて、赤文字の見たい指標を並べるとこちら。
▽メール施策で見たい指標
1.メールの開封数・率/クリック数・率/オプトアウト数・率
2.フォームCV数・CVR(専用フォームの場合)
3.フォームCV数・CVR(汎用フォーム※の場合)
4.複数メール施策の総CV数・内訳
※セミナー申込フォームなど、Webとかに常設してありメール施策以外からも流入・CVがあるフォームのこと。
これらをエクセルとかで手動集計せず、自動集計していつでも見られるようにするには、後半の指標ほどちょっと工夫が必要。ただ、4.が可視化できるようになるととても便利。どのメールがどれだけ集客に寄与しているのかがひと目でわかるようになる。
というわけでこんな状態を目指して、それぞれのデータ取得手順を並べてみます。(1.2.はごく普通の話なので、知ってる人は読み飛ばしてください)
1.メールの開封、クリック、オプトアウト
これは普通にPardot内のレポートから見られます。送信済みメールの右上にある「レポートを表示」からですね。表示も大きいしグラフつきでわかりやすい。他のMAやメール配信ツールでもきっと標準で備わってるかと。
2.専用フォームCV数・CVR
こちらも普通にPardot内のレポートから見られます。フォームやランディングページの右上にある「レポートを表示」からですね。
専用フォームなので、ここを見に来るユーザは全てメール経由でクリックしてきたユーザです。単純にこのフォームの成果=メールの成果です。
▽見たい数値の算出方法
・フォームCV数:ユニーク登録数
・フォームCVR:ユニーク登録数 / ユニークビュー数
※この画面で言うコンバージョン数とは、このフォームを通じて初めてPardotに登録されたプロスペクトの数を指すようです。
3.汎用フォームCV数・CVR(Engagement Studio)
ここから少しややこしくなります。汎用フォームに飛ばすといったいどのユーザがメール経由で来た人なのかがわかりにくいので、ひと工夫が必要です。
Pardot単体でやろうとすると、Engagement Studioを組む形になります。『アクション:メールを送信』の後に『トリガー:フォーム』で、メール施策の対象者がどれだけフォームを通過したかを検知します。できなくはないですけど、毎回の施策メールのたびにこれを作るのはけっこう大変。
なので最近の僕たちは、次のような形でデータ取得をしています。やっていることは、'3a.Hidden項目で流入元を取得し、'3b.プロセスビルダーでそれをキャンペーンメンバーに格納するという2ステップです。
'3a.汎用フォームCV数・CVR(Hidden項目)
Pardotのフォームには便利な機能がありまして、フォームURLにくっつけたパラメータを読み取って、フォーム登録するとプロスペクト項目に入れてくれるHidden項目機能があります。
例えば「utm_campaign」というカスタム項目をつくっておいて、あるセミナーの申込フォーム(汎用フォーム)に2種類のメールから誘導したとします。するとメール経由のフォーム通過者にはカスタム項目に値が入ります。これが思いのほか便利なんです。
これを設定する手順は、
▽フォームの流入元を取得する3ステップ
'3a-1.プロスペクトにカスタム項目をつくる
'3a-2.フォームにHidden項目をおく
'3a-3.メール内リンクにパラメータをつける
▼'3a-1.プロスペクトにカスタム項目をつくる
管理 > 設定項目 > プロスペクト項目 > +カスタム項目を追加 にて。
ここでは、「名前:流入Campaign」「カスタム項目ID:utm_campaign」としてみます。
後のことを考えて、Pardot側だけでなく、Salesforce側のリードと取引先責任者にも同じ名前の項目を作っておいて同期させておきます。
設定箇所
▽Salesforce
・リード カスタム項目
・取引先責任者 カスタム項目(リードと同じAPI参照名にする)
・リードの項目の対応付け 上のカスタム項目を連動させておく
▽Pardot
・プロスペクト カスタム項目
(Salesforce.com項目名に、上で作った項目を連動させる)
▼'3a-2.フォームにHidden項目をおく
流入元を取りたいフォームにHidden項目を置きます。
・種別 :非表示
・すでに入力されていても常に表示する:チェックする
・事前入力しない :チェックする
▼'3a-3.メール内リンクにパラメータをつける
送信するメールのURLにパラメータをつけます。
例:
xxx.go.pardot.co.jp/xxx?utm_campaign=mail01
//フォームURL + "?" + カスタム項目ID + "=" + "そのメールを表す任意の文字列"
これで3ステップ揃いました。このメールをクリックしてフォームを通過すると、カスタム項目「流入Campaign」に、この例ならば「mail01」のデータが入ります。
メールだけでなく、どの広告/Web導線から飛んできたのかを取得することもできますね。
ただ残念なことに、この状態だと不十分でして、
▽不十分な点
・パラメータ付きフォームを複数通過すると値がどんどん上書きされちゃう
・どのフォーム通過時についたパラメータかわからない
なのでプロスペクトオブジェクトではなく、Vol.1で触れた各キャンペーンとの接点ごとにレコードが作られるキャンペーンメンバーの方に値を移してあげないと実用的ではありません。そしてそうなるとまた壁が。
▽機能の壁
・Pardotフォームを使って、プロスペクトにはデータが入るけど、キャンペーンメンバーには値を入れられない
なのでVol.2に引き続き、またロボットに活躍してもらいます。プロセスビルダーの出番です。
'3b.ロボットでキャンペーンメンバーにデータを移す
やりたい処理としては、次のような動作になります。
▽キャンペーンメンバーにデータを移すプロセスビルダーの動作
'3b-1.キャンペーンメンバーが新規作成されたときに、
'3b-2.親レコード(リード/取引先責任者)の「流入Campaign」などの
値をキャンペーンメンバーの項目にコピーする
'3b-3.親レコードの「流入Campaign」などの値を空にしておく
Vol.2で紹介したフローは、ユーザのクリックなど誰かに呼び出してもらわないと起動しません。プロセスビルダーなら「レコードが作られたとき」とかに自動的に起動してくれます。
フローの方が複雑な処理ができますが、プロセスビルダーの方が圧倒的に作りやすいのでこっちの方が市民権を得ている感じがしますね。とっつきやすいミニロボットです。
▼'3b-1.キャンペーンメンバーが新規作成されたときに
▽プロセスの開始タイミング
オブジェクト :キャンペーンメンバー
プロセス開始条件:レコードを作成したときのみ
▽アクショングループ1の条件設定(取引先責任者のとき)
項目 :キャンペーンメンバーの取引先ID [CampaignMember].ContactID
演算子:次の文字列で始まる
種別 :ID
値 :003
※キャンペーンメンバーの親レコードはリードか取引先責任者しかなく、必ずどちらかが指定されているので、2つ目のリード用のアクショングループは条件設定なしで大丈夫です。
▼'3b-2.親レコード(リード/取引先責任者)の「流入Campaign」などの値をキャンペーンメンバーの項目にコピーする
▽アクション1(キャンペーンメンバーに値を入れる)
アクション種別:レコードを更新
レコード :プロセスを開始した CampaignMember レコードを選択
更新するレコードの新しい項目値:
種別:項目の参照 を使って、親レコードの項目を指定します
※画面では4つの項目をコピーするように作られていますが、必要な項目量に応じて流入キャンペーンだけ、とかでも大丈夫です。
▼'3b-3.親レコードの「流入Campaign」などの値を空にしておく
▽アクション2(親レコードの値を空にしておく)
アクション種別:レコードを更新
レコード :CampaignMember に関連するレコードを選択
更新するレコードの新しい項目値:
種別:グローバル定数 $GlobalConstant.EmptyString
これを有効化すれば、ユーザが新しいフォームを通過するたびに(キャンペーンメンバーが作られるたびに)その時の流入元情報をキャンペーンメンバーに記録することができます。ロボットが面倒なデータコピーを代行してくれます。
4.複数メール施策の総CV数・内訳
こうして、'3a.Hidden項目で流入元を取得し、'3b.プロセスビルダーでそれをキャンペーンメンバーに格納すると、あとはレポートで集計するだけ。冒頭で表示したような、どのメールがどのキャンペーンのCVにどれだけ寄与したかが可視化できます。
ここで見られる成果と合わせて、1.2.3.のポイントを見ていけば、メールのどの要素が良かったか悪かったかの振り返りがしやすく、PDCAが素早く回ります。
メールだけに限らず、広告やWeb導線もパラメータを付与してキャンペーンメンバーに格納していけば、どの集客施策が各キャンペーンの成果に寄与したかが見えるようになります。
分解すれば改善できる
というわけで、こんな形でメールなどの各集客施策が後工程にどれだけ繋がっているかを可視化しています。Vol.1と合わせると、これらがどれだけ有効リードになったか、アポになったか、いくら受注したか、までが全部Salesforce上で追えるようになりました。
難しいこと、複雑なことも細かく分解していけば手に追える改善しやすさになります。逆に細かく分解しすぎて後工程への貢献や全体が見えなくならないように大局も可視化しておく。そんな感じでバランスを取ってなんとかやりくりしています。