【第98回】 Behavioral Triggers を試してみよう Part.2
今回の記事は Salesforce Marketing Cloud における「Behavioral Triggers を試してみよう」の Part. 2 です。前回分は下記リンクよりご確認下さい。
今回の記事は「Behavioral Triggers を試してみたい」というマーケターの方向けの内容となり、現実の実装には即しません。本番で実装をする場合は、皆さんの会社の IT システム部の方と一緒に作業をして下さい。
Behavioral Triggers を実装される前の注意点です。この Behavioral Triggers は Einstein Recommendations の機能である「製品カタログ」や「コード」を使用します。すでに Einstein Recommendations がアカウントに実装済みの場合、既存の Einstein Recommendations に影響が出る場合がありますので注意してください。
この Behavioral Triggers を使うことで、カートや Web サイトでアクセスを断念した顧客に簡単にリーチすることができるようになります。Salesforce は、この仕組みを 2020 年 7 月に導入しました。
Behavioral Triggers には 3 種類のトリガーがあります。
・カート放棄
・ブラウズ放棄(Web サイトの閲覧放棄)
・欲しい物リスト放棄
今回の記事は Web サイト上に設置する顧客の行動を追跡するためのコードを Cloudpages に実装していきます。Cloudpasge 作成前に、今回使用するコードを一度整理しておきましょう。
まず </head> の直前に、以下のコードを配置する必要があります。
<script type="text/javascript" async src="//[Your_MID].collect.igodigital.com/collect.js"></script>こちらを「ベースコレクトコード」と言います。
続いて、行動トリガー用のコードです。こちらは各行動トリガーを並べて記載するとそれぞれの書き方の違いが理解し易いので、敢えて並べて記載します。これらは <body> タグ内に配置するものになります。
<script type="text/javascript">
_etmc.push(["setOrgId", "[Your_MID]"]);
_etmc.push(["setUserInfo", {"email": "[Your_SubscriberKey]"}]);
// ブラウズ放棄
_etmc.push(["trackPageView", { "item" : "BOR501" }]);
_etmc.push(["trackPageView", { "item" : "BOR502" }]);
_etmc.push(["trackPageView", { "item" : "BOR503" }]);
_etmc.push(["trackPageView", { "item" : "BOR504" }]);
_etmc.push(["trackPageView", { "item" : "BOR505" }]);
// 欲しいものリスト放棄
_etmc.push(["trackWishlist", {"items" : ["BOR506","BOR507"] }]);
// カート放棄
_etmc.push(["trackCart", { "cart": [ {"item" : "BOR508" }, {"item" : "BOR509" }, {"item" : "BOR510" } ] }]);
// 購入
_etmc.push(["trackConversion", { "cart": [ {"item" : "BOR508"}, {"item" : "BOR509"} ]}]);
</script>
上記のように各トリガーごとに書き方の違いがあることが分かると思います。ちなみに今回「購入」を含んでいるのは、カート放棄のシナリオで使用しますので含ませています。後ほど説明します。
_etmc.push(["setUserInfo", {"email": "[Your_SubscriberKey]"}]);上記の setUserInfo の「email」に関しては、本番では皆さんの IT システム部の方へ依頼して「動的コード」に置き換えて頂き「購読者キー」を取得して下さい。今回はテストなので、適当な購読者キー「700123」とします。
また、この購読者キー(今回の例だと「700123」)が「すべての購読者」に登録済みであることを確認して下さい。ここで使用する購読者キーが「すべての購読者」に登録されていないと、後のデータは取得できません。
それでは Cloudpages を新規で作成します。Cloudpages の HTML コードを開いて、以下の HTML コードで全体をそのまま貼り替えてください。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Behavioral Triggers Test</title>
<meta name="description" content="Behavioral Triggers Test">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/style.css" rel="stylesheet">
<script type="text/javascript" async src="//[Your_MID].collect.igodigital.com/collect.js"></script>
</head>
<body>
<script type="text/javascript">
_etmc.push(["setOrgId", "[Your_MID]"]);
_etmc.push(["setUserInfo", {"email": "[Your_SubscriberKey]"}]);
// ブラウズ放棄
//_etmc.push(["trackPageView", { "item" : "BOR501" }]);
//_etmc.push(["trackPageView", { "item" : "BOR502" }]);
//_etmc.push(["trackPageView", { "item" : "BOR503" }]);
//_etmc.push(["trackPageView", { "item" : "BOR504" }]);
//_etmc.push(["trackPageView", { "item" : "BOR505" }]);
// 欲しいものリスト放棄
//_etmc.push(["trackWishlist", {"items" : ["BOR506","BOR507"] }]);
// カート放棄
//_etmc.push(["trackCart", { "cart": [ {"item" : "BOR508" }, {"item" : "BOR509" }, {"item" : "BOR510" } ] }]);
// 購入
//_etmc.push(["trackConversion", { "cart": [ {"item" : "BOR508"}, {"item" : "BOR509"} ]}]);
</script>
<h1>Behavioral Triggers Test</h1>
</body>
</html>
HTML コードの貼り替えが完了したら、このページを「保存」して「公開」します。その後、公開された URL をクリックします。
この URL をクリックをすることで Cloudpages 側に埋め込まれた「ベースコレクトコード」が Emai Recommendations 側で初めて認識されます。
コードが初めて認識されると Emai Recommendations の「概要」ページの手順 ② が完了します。これで手順 ③ に進めるようになりますので「開始」ボタンをクリックしてください。

「開始」ボタンをクリックすると以下のような画面に遷移します。こちらの画面が表示できたら OK です。この先は Behavioral Triggers の設定ではなく Email Recommendations の設定となるため、今回は作業しません。

手順 ③ の「開始」ボタンを押すと「概要」ページの手順 ①②③ がすべて完了し「Einstein データエクステンションの有効化」が可能になります。
さて、ここで以下の 2 点の確認が必要になります。
■ セッションの長さについて
■ Einstein データエクステンションの有効化について
まず「セッションの長さについて」ですが、初期設定は 1 時間として設定されています。これは「ストップウォッチ」のようなものをイメージすると分かりやすいのですが、タグが仕込まれている「最後のページを閲覧を開始した時」からストップウォッチが動き出し、そこから 1 時間経ったら「放棄」として判断され、メールが飛ぶような仕組みになっています。
ここでは「最後のページを離れた時から」ではなく「最後のページを閲覧を開始した時から」計測が始まるというところがポイントとなります。
ですので、例えば、閲覧開始後ページを離れたものの 30 分が経過した後にその購読者が再び、タグが仕込まれているページに訪れた場合は、それまで進んだストップウオッチはクリアされ、再び 1 時間の計測が始まります。
このように、タグが仕込まれている最後のページを閲覧してからの「セッションの長さ」を設定できるようになっています。今回はテストなので、最も短い 15 分で設定しておきます。
それでは「セッションの長さ」を変更する方法を説明します。「管理者」タブの「実装」をクリックしてください。

左メニューの中から「詳細設定」をクリックします。

こちらで「セッションの長さ」を「15 Minutes」に変更して保存します。

さて、次に Einstein データエクステンションの有効化です。こちらも有効化の手順を説明します。「ステータス」タブをクリックしてください。

ステータスコンソールの右端にある歯車マークからデータエクステンション設定を選択します。

こちらより Einstein データエクステンションを有効化してください。

この Einstein データエクステンションを有効化することでできるようになることは、Part.1 の記事でも少し話題にしましたが、Part.1 でインポートした「製品カタログ」が格納される IGO_PRODUCTS データエクステンションが使用できるようになります。
他、全 8 種の Einstein データエクステンションが有効化されますので、詳細は下記リンクをご確認ください。これらは、データエクステンションのトップディレクトリ内に用意されています。
今回 Einstein データエクステンションを有効化しただけでは IGO_PRODUCTS にデータは入っていないと思います。もし製品カタログを IGO_PRODUCTS で確認したい場合は、再度 SFTP より取り込み作業を行って下さい。
ここまで色々な設定がありましたが、いよいよ「カート」のデータが取得できるか試してみましょう。例として「カート」を行いますが「ブラウズ」や「欲しいものリスト」や「購入」も基本的に同じ流れになります。
すでに Cloudpages に貼り付けているコードのうち、カート放棄の部分だけ「非表示」から「表示」に変更します。下記の通りカート放棄の _etmc.push の前にある「//」を削除してください。これで適用状態となります。
// カート放棄
_etmc.push(["trackCart", { "cart": [ {"item" : "BOR508" }, {"item" : "BOR509" }, {"item" : "BOR510" } ] }]);「//」を削除したら Cloudpages を公開し、Cloudpages の URL をクリックして Web ページを開きます。Cloudpages の更新には 5 分程度かかる場合があります。必ず最新の状態になっていることを「Web ページのソース」を見て確認してください。
Cloudpages の URL をクリックしますと「カート」のデータが Einstein Recommendations 側に返されます。この「カート」のデータと同時に「購読者」のデータも返されて、先ほど有効化した IGO_PROFILES という Einstein データエクステンションにデータが取り込まれます。これには 30 分ほど時間がかかりますので、後で確認してみてください。
<参考>
IGO で始まるデータエクステンションにデータが格納されるまでの時間をまとめると、以下のような形になります。
■ IGO_PROFILES ・・・ 30 分程度
■ IGO_VIEWS ・・・ 5 分程度
■ IGO_PURCHASES ・・・ リアルタイム
■ IGO_PRODUCTS ・・・ 10 分程度(画面のレポートはリアルタイム)
■ IGO_PRODUCTATTRIBS ・・・(同上)
「カート」のデータは Einstein データエクステンションが存在しないため、「カート」のデータをデータエクステンションでは確認できません。では、どのようにこのデータを確認できるかですが、その手順を説明します。
まずは「レポート」タブをクリックします。

続いて「連絡先」をクリックします。

下記の「メール」の箇所が「購読者キー」を入力する欄になります。今回、私は「700123」 という購読者キーを使用しましたので、そちらを入力して「開始」ボタンをクリックします。

すると「カート」のデータが読み込まれていました。成功です。

ちなみに表示されている CD は私がかつて音楽レーベルを運営していた時に制作した CD ですので、権利云々は特に気にしないで使用してください。
画面上に最終更新日が記載されています。これがショッピングカートのページの閲覧を「開始」した時間です。この時間はタイムゾーンが UTC で表示されますので日本時間の 9 時間前になります。日本時間だと AM 9:55 ですね。
先ほど「セッションの長さ」を 15 分にしたのでジャーニーが起動するのは AM 9:55 の 15 分後となります。よって AM 10:10 前後になったら Behavioral Triggers のジャーニーが起動するようなイメージになります。
さて、ここで一点注意事項があります。それは「カート放棄」と「購入」の関係です。ヘルプにも以下のように記載がある箇所です。

これが何を意味するかと言いますと「カート」のデータが来ても「購入」のデータがあると「カート」のデータが自動的にクリアされます。これは普通の EC サイトの動きを考えると当たり前のことですよね。「カート」情報が自動的にクリアされないとすでに「購入」しているのに、カート放棄のメールが飛んでしまいます。
是非、皆さんの方でも、この「購入」のトリガーは試してみてください。下記のように「カート」のデータがページ上から消えて「購入」のデータだけが表示されたら成功です。

では、最後にワンポイントアドバイスです。同一セッション内(つまり現在の設定の例ですと、閲覧から 15 分以内の話です)の顧客の EC サイト上の動きを考えると、以下のようなケースがあるかと思います。
① 自身のマイページから「欲しいものリスト」を閲覧し
② 登録されている「製品ページ」へ遷移し、製品をカートに入れることで
③ 「ショッピングカート」に移動してきます。
この時、最終的にこの顧客が「カート」に入った製品を購入しない場合もありますよね。そうすると「① 欲しいものリスト放棄」「② ブラウズ放棄」「③ カート放棄」が同じタイミングで発生してしまいます。

この場合、どうなるかと言いますと下記の通りです。
同一セッション内で、複数種類のトリガーが発火(閲覧)された場合、
① カート ② 欲しい物リスト ③ ブラウズ の優先順で 1 つの Behavioral Triggers だけが起動します。
ご心配なく。すべての Behavioral Triggers が起動するわけではありません。また、優先順も発火された順番ではありませんので、覚えておいて下さい。
いかがでしたでしょうか。
今回は「コード」の設定なので、少しでも設定を間違えますと最後の「連絡先レポート」の画面に製品が表示されない場合があります。まずはアレンジせず、私の手順通り、試してみてみると良いかもしれません。
それでは、明日は「Behavioral Triggers の設定編」の記事を公開します。ご期待下さい。
今回は以上です。
