【第235回】 Interactive Email Forms と Smart Capture に関する Q&A 集
Salesforce Marketing Cloud には、Interactive Email Forms というメールメッセージ上にアンケートフォームを設定できる機能が付いており、受信者としては、なかなかそのようなメールを受信する機会は少ないので、非常にインパクトのあるメールを送信することができます。
Interactive Email Forms の基本的な使い方に関しては、Salesforce のテクニカルサポートチームが作成している、以下の YouTube が非常に分かりやすくまとめられており、使用前には、必ず見ておいて頂きたいです。
今回は、メール内で直接回答を収集できる「Interactive Email Forms」と、Marketing Cloud のアンケート機能で Web サイトに遷移して回答を収集する「Smart Capture」についての Q&A をまとめてみたいと思います。
■ Interactive Email Forms に関する Q&A
1. スーパーメッセージの消費タイミングについて
スーパーメッセージは、以下の 2 つのタイミングで消費されます。
Intactive Email Forms を含むメールを送信した時
消費:2 スーパーメッセージ
・・・この内訳には、メール送信自体で消費される 1 スーパーメッセージ が含まれています。
受信者がアンケートの回答を送信した時
消費:1 スーパーメッセージ
・・・アンケートの回答を送信しなければ、スーパーメッセージは消費されません。顧客が複数回、回答をした場合は、その回数分消費されます。これは Cloudpages の仕組みを使用しているためです。
2. %%=Now()=%% を使用した場合に格納される日時の内容とは
1. Intactive Email Forms で %%=Now()=%% を使用した場合
Intactive Email Forms の場合は、そのアンケートを含む メールが送信された時間 が記録されます。
※ 顧客の回答時間が格納されるわけではありませんので注意して下さい。
※ 顧客の回答時間を格納したい場合は、「3. 回答時のタイムスタンプを記録する方法」を参考にして下さい。
なお、%%=Now()=%% を使用するとシステム時間で現在の時間が格納されるため、日本においては 15 時間前の時間が記録されます。これを事前に、日本時間にローカライズしたい場合は、以下のように記載してください。
%%=SystemDateToLocalDate(Now())=%%
2. ちなみに、Smart Capture で %%=Now()=%% を使用した場合は・・・
Smart Capture においては、同じ %%=Now()=%% を使っていても、その アンケートフォームを開いた時間 が記録されます。顧客がフォームを開いた後、すぐに回答するケースが多いため、実際の回答時間と近い時間が記録されますが、正確には「フォームを開いた時間」であり、顧客が「回答した時間」ではない点に注意してください。
3. 回答時のタイムスタンプを記録する方法
Interactive Email Forms で 回答された時点のタイムスタンプ を記録する際のポイントは、以下の通りです。
回答時間を記録する方法
アンケート結果を格納するデータエクステンション内に日付項目を 1 つ追加してください。
その項目に「Use Current Date」機能をデフォルト値として設定します。
※ この設定により、日本のタイムゾーンの場合は、回答時点の15時間前 の時間がレコード作成時に格納されます。
注意点
「Use Current Date」は回答が行われる度に「最新の日付」を取得する機能ではありません。記録されるのは、最初に入力された日付のみとなりますので注意してください。

※「タイムスタンプを送信する」の設定について
ブロック設定の「非表示項目」に「タイムスタンプを送信する」というオプションがあります。これを入力しても、%%=Now(1)=%% が入力されるだけで、【 2 】で説明した通り、これを設定しても Interactive Email Forms を含むメールの送信時間 が記録されるだけで、回答時間は記録されません。

4. アンケート結果を上書きせずに履歴レコードとして保存する
アンケート結果を購読者単位で上書きせず、個別のレコードとして保存するためのポイントは、以下の通りです。
顧客キー ID の取り扱いについて
アンケート格納用データエクステンションの必須項目である「Id」に %%_subscriberkey%% を設定すると、アンケート結果が上書きされてしまいます。
これを防ぐために、顧客 ID 用として「Id」とは別に「Id2」などの管理用の ID 項目を新たに設け、そちらに顧客 ID を連携してください。


ここで、必須項目である「Id」に何も設定を行わないことで、同じ顧客が複数の回答履歴を持つことが可能になります。必須項目の「Id」にはランダムな GUIDが自動的に入力されます。私はこれをアンケート ID と呼んでいます。カスタムで作成した「Id2」には、顧客 ID が入力されます。

ちなみに Smart Capture の場合は・・・
単純にデータエクステンションにおける「Id」項目に プライマリーキーを設定しない ようにしてください。これにより、既存レコードが上書きされることを防ぐことができます。
Intactive Email Forms の場合は「Id」は必須項目となりますので、その点で設定の違いが生まれてくるわけですね。
5. AMPscript とパーソナライズ文字列を使用する際の注意点
AMPscript やパーソナライズ文字列を適切に使用するためのポイントは、以下の通りです。
フォールバック機能を使用する場合の挙動
AMPscript やパーソナライズ文字列は、フォーム上のラベル、説明、プレースホルダーなどに使用できますが、フォールバック機能を使用する場合は注意が必要です。フォールバック用の CloudPages に遷移した際に、AMPscript やパーソナライズ文字列がそのまま表示されます。これはバグではなく仕様のため、Salesforce は修正しない予定とのことです。
使用を避けるべきケース
上記の挙動を踏まえると、フォールバック機能を使用しない場合のみ、AMPscript やパーソナライズ文字列を使用できます。
以下が、送信されたメールに表示されたフォームの状態です。

そして、以下がフォールバック Cloudpages に遷移した時のフォームの状態です。AMPscript やパーソナライズ文字列がそのまま表示されています。

3. 回避策
この回避策としては「自動フォールバックを含める」のチェックを外し、上側にある「フォールバックの種別」でカスタムで作成したフォールバック用のボタンを選択することです。その際、ボタンリンクは VAWP(メールを Web ページとして表示:%%view_email_url%%)を使用します。

この VAWP(メールを Web ページとして表示)の場合は、AMPscript やパーソナライズ文字列は適切に機能します。VAWP の表示は無料ですが、ここで回答することで、結局 Cloudpages へ遷移しますので 1 スーパーメッセージが消費されます。

注意点:
但し、この場合は「自動フォールバックを含める」のチェックボックスが外れているので、以下の記事で説明した プレーンテキスト版への対応はできなくなりますので注意してください。
6. Interactive Contents フォルダ内の 00 IC Error Log の活用法
アンケート結果がデータエクステンションに対して、正常に書き込まれなかった場合に、「データエクステンション」>「Interactive Contents」フォルダ内の「00 IC Error Log」を活用してトラブルシューティングします。

このエラーログ専用データエクステンションには、以下の情報が記録されます。
記録されるエラーログ情報
タイムスタンプ:送信エラーが発生した日時
テスト送信:エラーがテスト送信時のものかを示す true または false の値
購読者キー:メール受信者に関連付けられた購読者キー
メールアドレス:メール受信者のメールアドレス
対象データエクステンション名:書き込み対象のデータエクステンション名
対象データエクステンションカスタマーキー:書き込み対象のデータエクステンションのカスタマーキー
送信データ:書き込もうとしたデータ(JSON オブジェクト形式)
エラーメッセージ:書き込み時に記録されたエラーメッセージ
メール Web リンク:エラー発生時のメールの Web 閲覧用リンク
これらの情報を活用することで、問題の原因を特定し、迅速な解決に役立てることが可能です。
7. Intactive Email Forms 部分が空欄になってしまいます
一部のメールクライアントは Intactive Email Forms をサポートしていません。日本においてサポートされていない代表的なメールクライアントは、Outlook の Web 版/アプリ版 と Yahoo Japan の Web 版/アプリ版です。
※これらのメールを Apple メールアプリなどで開いた場合は、フォームが表示されます。
これらのサポートされていないメールクライアントに対応するため、「フォールバック」機能が提供されています。上記の 2 メールクライアントで必ずテストを行ない、フォールバック機能によりボタンが表示された場合の挙動などを確認することをオススメします。
以下がフォームが表示された場合の例です。

以下がフォームが表示されずに、フォールバックボタンが表示された場合の例です。フォームが非表示となり、代わりにボタンが表示されます。

8. メールフォームが表示されない場合の原因と対処法
Intactive Email Forms がサポートされているはずのメールクライアントでメールフォームが正しく表示されない場合、主な原因とその解決方法は、以下の通りです。
CSS の競合による問題
他のメールコードと、メールフォームのコンテンツブロックで挿入されたコードの間で CSS が競合している可能性があります。この場合は以下の手順を試してください。
メール内の他のコードを一旦すべて削除し、メールフォームが想定通りに機能するか確認します。
他のコードを 1 つずつ追加しながら、どのコードが競合を引き起こしているかを特定します。
Gmail 特有の制限による問題
問題が Gmail でのみ発生している場合、以下の制限を確認してください。
メールのサイズ制限:Gmail は、102 KB を超えるメッセージの HTML を切り捨てるため、フォームが正しく表示されなくなる可能性があります。
CSS スタイルタグの文字数制限:Gmail では、CSS スタイルタグの文字数が最大 16,000 文字に制限されています。この制限を超える CSS コードは無視されるため、表示に影響を及ぼすことがあります。
9. Gmail で一部のフィールドにラジオボタンが表示される理由
Gmail では、一部の CSS 属性がサポートされていないため、インタラクティブ要素を作成する際に意図して非表示にするはずのラジオボタンやチェックボックスが表示される場合があります。
対象となる入力種別
以下の入力種別では、Gmail の Web クライアントまたはアプリで、種別に応じたラジオボタンやチェックボックスが表示されることがあります。
画像の単数選択
画像の複数選択
ボタンの単数選択
ボタンの複数選択
評価
背景と影響
Gmail が特定の CSS 属性をサポートしないため、これらの入力要素がブラウザ標準の見た目で表示されます。ただし、この表示上の違いは、フォームの使い勝手やパフォーマンスには影響を与えません。
10. モバイルに最適化されているか
はい、インタラクティブメールフォームは、サポートされているメールクライアントのすべての画面サイズで適切に表示されるよう設計されています。ただし、以下の点に注意が必要です。
使用するテンプレートの影響
フォームの表示に影響を与える可能性があるのは、メールテンプレートの種類です。
反応型テンプレート:デバイスや画面サイズに応じて調整されるため、モバイル上でもフォームが最適に表示されます。
モバイル最適化されていないテンプレート:レスポンシブ対応していないテンプレートでは、フォームが正しく表示されない場合があります。
11. 「チェックボックス」を横並びにすることは可能か
残念ながら、インタラクティブメールフォームで「チェックボックス」を横並びに配置することはできません。
代替案
横並びの配置が必要な場合は、「画像の選択」を検討してください。こちらは横並びで表示されるため、デザイン要件を満たす形で代用が可能です。
12. 受信者ごとに異なるフォームを動的に表示できるか
残念ながら、動的コンテンツを使用して受信者ごとに異なるフォーム内容を表示することはできません。
■ Smart Capture に関する Q&A
1. CloudPagesURL() 使用時に 500 エラーが発生する問題
問題の概要
WEB解析コネクタや GA 連携で utm パラメーター が自動付与されているアカウントにおいて、CloudPagesURL() メソッドを使用してリンクを生成すると、リンク遷移時に 500 エラー が発生する場合があります。
この問題は以下の状況で発生します:
CloudPagesURL() を使用したリンクに ?qs= パラメーターが付与される。
同時に、GA 連携により ?utm= パラメーターも付与される。
これにより、後続の ?utm= が適切に &utm= に変換されず、競合が発生する。
回避方法
このエラーを回避するためには、CloudPagesURL() を RedirectTo() で囲む方法を推奨します。
誤った記載例(エラーが発生する記載)
%%=CloudPagesURL(217)=%%正しい記載例(エラーを回避する記載)
%%=RedirectTo(CloudPagesURL(217))=%%解決の仕組み
RedirectTo() で CloudPagesURL() を囲むことで、後続の ?utm= パラメーターが適切に &utm= に変換され、競合が解消されます。この方法を使用することで、500 エラーを回避できます。
2. LINE メッセージで CloudPages アンケートを利用する方法
問題の概要
LINE メッセージ上では CloudPagesURL() を使用することができません。そのため、非表示フィールドに %%_SubscriberKey%% を使用するアンケートのリンクを作成する場合、通常の方法では対応できません。
解決方法
以下の手順を実施することで、LINE メッセージ上でも CloudPages のアンケートを使用できるようになります。
手順①
CloudPages の URL にパラメーターを追加する
CloudPages の URL の末尾に、以下のようなパラメーターを付与してください。
?u=%%LINE_SUBSCRIBER_ID%%
(LINE_SUBSCRIBER_ID は ContactID を示します)
または?u=%%LINE_ADDRESS_ID%%
(LINE_ADDRESS_ID は UID を示します)
https://yourcloudpagesurl.com/?u=%%LINE_SUBSCRIBER_ID%%手順②
Smart Captureの非表示フィールドに設定を追加する
Smart Captureの非表示フィールドに、以下のいずれかのコードを設定してください。このコードは、URLパラメーターの値を基に、ContactKey を取得します。
ContactID を使用する場合
%%=Lookup('_MobileLineAddressContactSubscriptionView', 'ContactKey', 'ContactID', RequestParameter('u'))=%%
AddressID を使用する場合
%%=Lookup('_MobileLineAddressContactSubscriptionView', 'ContactKey', 'AddressId', RequestParameter('u'))=%%注意点
パラメーター名 (u) は任意ですが、Smart Capture で使用するフィールドと一致させる必要があります。
_MobileLineAddressContactSubscriptionView は LINE の連携データが格納されているシステムビューです。
いかがでしたでしょうか。
過去に私が実際に直面した問題を元にして、Q&A 集にしていますので、現場のリアルな問題だったりするのではないでしょうか。
もし、他にも共有できそうな知識をお持ちの方がいれば、是非コメント欄でお知らせください。
今回は以上です。
Click here for English version
次の記事はこちら
前回の記事はこちら
私の note のトップページはこちら
