Dynamic Retargeting Emailをマルケトから配信する方法
Dynamic Retargeting Email(以下、「DRM」という)をマルケトから配信してみました。
実際はこんなメールです。


上記DRMは弊社オリジナルの配信方法なので参考程度に捉えていただければと思います。
さっそく手順に進みたいと思います。
1.カスタムオブジェクトを公開する
Marketo Custom Objects - Japanese - Product Docs
フィールドは商品名、価格、画像URL、ランディングURLの4種類で最大10商品としました。
その他にlast_modified_dateの後々使うと思って追加。
※カスタムオブジェクトはフィールド数の上限が1オブジェクト/50フィールドなので
1フィールドにまとめられる値はなるべくまとめてフィールド数を節約する。
2.セッションIDを利用してリードのアクティビティをファイルに記録する
このセクションはマーケターには難しいので私の場合はエンジニアに相談しました。
プログラムは合計3つで構成しました。
- リードがウェブサイト上でログイン/コンバージョンするとセッションIDとメールアドレスまたは顧客IDなどが結びつくのでアクティビティをファイルに記録。
- ファイルからDBにアクティビティを入れる。
- DBからREST APIでカスタムオブジェクトのフィールドにUPSERTする。
Marketo REST APIs: Custom Objects » Marketo Developers
かなり端折りましたが、こんな感じになります。

弊社の場合は中古車で一物一価なので、該当の商品が売れると該当のフィールド値をクリアして
直近に閲覧した販売可能な商品順でフィールドを維持しています。
※URL関連はhttps://www.example.com/を含めると後々問題になるのでルート以降をフィールドに入れる。
3.メールスクリプトのマイトークンを作成
このセクション以降はマーケターでなとかなります。
マイトークンはこんな感じです。

HTMLメールで使用するトークンは55個にしました。
商品1個から10個まで表示できるテンプレート合計10枚作成して、
それぞれの商品毎にトークンを作りました。
※トークンを55個作ったのはプロモーションコードを識別するためです。
マイトークンの中身はこんな感じで、こういった商品を表示するためのテーブルです。

#set($url_01 = "www.picknbuy24.com/${dynamicRetargetingEmail_cList.get(0).car_url_01}?utm_source=*********&utm_medium=*********il&utm_campaign=*********")
#set($carimg = "www.picknbuy24.com/${dynamicRetargetingEmail_cList.get(0).car_img_url_01}")
#set($name = ${dynamicRetargetingEmail_cList.get(0).car_name_01})
#set($price = $number.format(${dynamicRetargetingEmail_cList.get(0).car_price_01}))
<table cellpadding="0" cellspacing="20" border="0" width="404" bgcolor="#FFFFFF" class="single" style="border:1px solid #D1D5D6;">
<tr>
<td><a href="https://${url_01}" style="display:block;width:100%;"><img src="https://${carimg}" alt="" width="362" height="272" border="0" style="margin:0 auto;display:block;"></a></td></tr>
<tr><td><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td style="padding-bottom:15px;"><font style="font-family:Arial,Helvetica,sans-serif;font-size:20px;font-weight:bold;color:#6D7271;">$!{name}</font></td>
</tr>
<tr>
<td style="padding-bottom:15px;"><table cellpadding="0" cellspacing="0" border="0" width="100%" style="border-bottom:1px solid #949799;">
<tr>
<td style="display:table-cell !important;width:25%;"><font style="font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#6D7271;">Car Price</font></td>
<td style="display:table-cell !important;" align="right"><font style="font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:bold;color:#E60012;">US$ </font><font style="font-family:Arial,Helvetica,sans-serif;font-size:24px;font-weight:bold;color:#E60012;">$!{price}</font></td>
</tr>
</table></td>
</tr>
<tr>
<td bgcolor="#2D3231" align="center" style="padding:15px 0;"><a href="https://${url_01}" style="font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:bold;text-decoration:none;color:#FFFFFF;">See More Detail</a></td>
</tr>
</table></td>
</tr>
</table>
※注意したい点
このDRMを作成している段階ではメールスクリプトのトークン内には商品名、価格、画像URL、ランディングURLだけを
書き込んでHTMLはテンプレートに書いていましたが、メールのテスト配信段階でテキストメールでトラッキングできなかったり、
トークンの{{}}カッコやタグを閉じる<>や&がエンコードされて指定したURLにランディングできません。
velocityの仕様なのでしょうか???
4.メールテンプレートを作成
弊社の場合はレスポンシブで作りました。 実際はこんなテンプレートです。
※1台用から10台用合計10枚作りました。

5.スマートキャンペーンを作成
DRMの配信するタイミングを下記のとおりに定義しました。
商品閲覧後24時間後にDRMを配信
この定義でスマートキャンペーンを作成するとこうなりました。
※スマートキャンペーンその1
スマートリストはこんな感じ。

フローはこうなります。

※先にスマートキャンペーン2でキャンペーンをリクエスト-Marketoフローアクションを準備しておかないと
上記のキャンペーンリクエストの選択肢にスマートキャンペーン2が出てきません。
※トリガー起動キャンペーン スケジュールは任意で頻度を設定
※スマートキャンペーンその2
スマートリストはこんな感じ。

フローはこんな感じです。

※左側のマーケティング活動はこんな感じ

※キャンペーンがリクエストされると
実際にキャンペーンは10個同時にリクエストされますが
カスタムオブジェクトのフィールドの値が空である or 空でないか確認して
最終的に1つのキャンペーンがメールを送信します。

マルケトからDRMを配信するメリット
シンプルに一つで、いくらDRMを送ってもコストはかからない点です。
Criteoは既にサービスを提供しているよう?ですが、
http://www.criteo.com/jp/products/
どなたかコスト感をご存知の方がいらっしゃれば教えて下さい。
別のソリューションではAdrollがSendrollというソリューションを提供するようですが
私のアカウントではまだ利用できません。 CPCはUS$1とか?
以上、長々とわかりにくい点もございますが、DRMをマルケトから配信する方法とさせていただきます。
また改善したほうが良い点がございましたらご指摘いただけると幸いです。![]()