見出し画像

【第120回】 Journey Builder でメール送信ができなかった理由を確認する方法

Salesforce Marketing Cloud の Journey Builder のメールアクティビティにおいて、メール送信ができなかった場合、そのメール送信ができなかった理由を確認したい場合があると思います。

このメール送信ができなかった理由を調べるには、いくつかの方法がありますので、今回、以下の 3 つの方法で確認してみます。

■ 方法 1:Journey Builder のメールアクティビティ上で確認する
■ 方法 2:Journey Builder の履歴タブで確認する
■ 方法 3:Automation Studio の Extract Not Sent で確認する

これら 3 つの方法では、それぞれで確認ができる範囲データの保管期間が異なります。方法 1 が、最も狭い範囲の確認方法であり、方法 3 に向かうに従って、より広い範囲で確認ができるというイメージになります

それでは一つずつ確認していきましょう。


■ 方法 1:Journey Builder のメールアクティビティ上で確認する

この方法は、メールアクティビティ単位で送信できなかった理由を確認したい場合に使用できます

手順は以下の通りです。

1. メールアクティビティの下にある数字をクリックします。

2.「連絡先の詳細の表示」のリンクをクリックします。

3. 「詳細の表示」のリンクをクリックします。

4. ハードエラーの「ステータスの詳細」の列にて、送信できなかった理由が表示されます。連絡先キーを使って検索も可能です。

【方法 1 の注意点】

ハードエラーの例は、以下です。
・(自動)連絡禁止リストに含まれている
・ ドメイン送信除外による除外
・ List Detective による除外
・ メールアドレスが不正
・ メールアドレスが空欄

以下の場合は、実際には送信されませんが「成功」として処理されます。
・ 保留(Held)
購読取り消し済み(Unsubscribed)
除外スクリプトによる送信除外

直近の 30 日分のみ検索ができます。

あるメールアクティビティにてメール送信ができなかった場合は、この方法で確認してみてください。上記の注意点の通り、一部の送信できない理由は検索できませんので注意してください。

また、画面上に連絡先リストのダウンロードボタンはありません。画面の下の方にある「さらに読み込み」を最後のページまで押し続けて表示すれば、表示されているリストをエクセルなどへコピペすることは可能です。

一方で REST API を使用すれば、連絡先リストを CSV ファイルでダウンロードすることが可能です。以下の記事を参考に、連絡先のリストをダウンロードしてみてください。API のサンプルコードも記載しておきます。

--- メソッド 
POST 

--- スキーム 
[REST ベース URL].rest.marketingcloudapis.com/interaction/v1/interactions/journeyhistory/download?columns=ContactKey,Result.Messages

--- ヘッダー 
Content-Type:application/json 
Authorization:Bearer [アクセストークン] 
x-direct-pipe:true

--- ボディ(サンプル)
{
  "activityIds": ["24da6e39-df68-4318-87ac-d864306cdb06"],
  "statuses": ["Failed"]
}

■ 方法 2:Journey Builder の履歴タブから確認する

続いて、Journey Builder の履歴タブから検索するこの方法は、ジャーニー単位で確認したい場合や、複数のジャーニーをまとめて確認したい場合に使用できます

こちらの履歴タブの機能では、方法 1 のような「あるメールアクティビティを選択して」という形では検索ができません。あるジャーニーに含まれている全メールアクティビティが選択の対象となります。

それでは、手順は以下の通りです。

1. Journey Builder の履歴タブを開き、フィルターボタンをクリックします。

2. フィルターのパラメーターを設定します。この方法で検索できる最小単位は「ジャーニーのバージョン」までとなります。先ほども記載した通り、メールアクティビティ単位では確認できません。

ジャーニーのバージョンの選択後、アクティビティは「メール」にして、ステータスは「失敗」に設定します。その後、「適用」ボタンを押してフィルターの設定画面を閉じます。

3. フィルタリングの結果が画面に表示されます。デフォルトでは、直近 24 時間内のデータを表示していますので、必要があれば、最大 30 日間の範囲で調整を行って下さい。

【方法 2 の注意点】(※方法 1 と同じです。)

ハードエラーの例は、以下です。
・(自動)連絡禁止リストに含まれている
・ ドメイン送信除外による除外
・ List Detective による除外
・ メールアドレスが不正
・ メールアドレスが空欄

以下の場合は、実際には送信されませんが「成功」として処理されます。
・ 保留(Held)
購読取り消し済み(Unsubscribed)
除外スクリプトによる送信除外

直近の 30 日分のみ検索ができます。

さて、こちらの方法 2 では、方法 1 には無いメリットがあります。それは CSV ダウンロード機能がついていることです。CSV は UTF-8 でダウンロードされます。

但し、このダウンロード機能には一点、使いずらさがあります。それは、現在表示されている範囲のみがダウンロードの対象となることです。

この画面のデフォルトの表示件数は 100 件です。ダウンロードする際、上の画像のように 4 件のみのダウンロードであれば、そのままダウンロードすることは可能ですが、これが例えば 10,000 件あった場合は、10,000 件すべてが表示されるまでスクロールが必要になります。このスクロールは 100 件ずつ増える仕様のため、なかなかの作業量になります。

ですので、このような場合は、先ほども方法 1 で説明しましたが REST API によるダウンロードを活用してみてください

ジャーニー単位でダウンロードする場合はアクティビティ ID を使うのではなく、definitionIds を使用します。この definitionIds はジャーニーのバージョン ID になりますので、以下の SQL で検索が可能です。

SELECT VersionID
FROM _Journey
WHERE JourneyName = 'ジャーニー名'
AND VersionNumber = 'バージョンの数字'

API のコードサンプルは以下です。

--- メソッド 
POST 

--- スキーム 
[REST ベース URL].rest.marketingcloudapis.com/interaction/v1/interactions/journeyhistory/download?columns=ContactKey,Result.Messages

--- ヘッダー 
Content-Type:application/json 
Authorization:Bearer [アクセストークン] 
x-direct-pipe:true

--- ボディ(サンプル)
{
  "definitionIds": ["24da6e39-df68-4318-87ac-d864306cdb06"],
  "activityTypes": ["emailv2"],
  "statuses": ["Failed"]
}

■ 方法 3:Automation Studio の Extract Not Sent から確認する

この方法は、Marketing Cloud アカウント内の「すべての」送信できなかった履歴を抽出して、メール送信ができなかった理由を確認したい場合に使用されます

この抽出したリストには Email Studio からのメール送信やトランザクション送信ジャーニーからのメール送信も含まれます。

それでは、手順は以下の通りです。

1. 新規のオートメーションを立ち上げます。

2. オートメーションのステップ 1 に、データ抽出アクティビティをドラッグアンドドロップします。

3. 新規でデータ抽出アクティビティを構成します。

4. 名前は適当で問題ないです。ファイルの命名パターンは「*.zip」とする必要があります。名前を適当につけた後、ZIP の拡張子をつけてください。

抽出タイプは「Tracking Extract」を選択してください。「Tracking Extract」が表示されない方は、サポートに依頼して機能の有効化をしてください。

5. フィルター条件を設定します。直近 90 日間分のデータを抽出できるように設定が可能です。

抽出の種別は「Extract Not Sent」を選択してください。

6. 続いて、オートメーションのステップ 2 に、ファイル転送アクティビティをドラッグアンドドロップします。

7. こちらでは「Safehouse からファイルの移動」を選択します。

8. ここでのファイルの命名パターンは先ほどデータ抽出アクティビティで決定した名前と同じである必要があります。同じ名前を入力してください。こちらでも ZIP の拡張子を追加することを忘れずにお願いします。

デスティネーションは ZIP ファイルが格納される FTP のディレクトリを選択してください。

9. 設定は以上になります。オートメーションの設定画面でスケジュールを配置してください。スケジュールを配置することで「一回実行」が可能になります。スケジュール自体の設定は不要です。その後、「保存」を押します。

10. 一回実行をクリックします。

11. このオートメーションが完了すると、FTP に ZIP ファイルが置かれます。そちらをダウンロードして開封してください。

以下のようなデータが格納されており、Reason 列で理由を確認できます。

【方法 3 の注意点】

■ ZIP ファイルで抽出されてきますので、拡張子は「*.zip」としてください。最終的なデータは、CSV ファイルで確認することになりますが「*.csv」という拡張子では、抽出ができません。

■ 直近の90 日間分の抽出が可能です。ヘルプドキュメントによると、直近 2 ヶ月までとなっていますが、実際は 90 日分が抽出可能のようです。

■ 最新の未送信レコードがファイルに反映されるまでに、送信から 15分 ~ 30 分程度かかります。

■ SendID が ジョブ ID に該当します。TriggeredSendExternalKey が トリガーによる送信の外部キー に該当します。

■ Email Studio のメール送信の場合の TriggeredSendExternalKey は空欄になります。

■ トランザクション送信ジャーニーの場合、TriggeredSendExternalKey の項目の値には Event Definition Key が記載されます。

■ 場合によっては、バッチ ID 違いでレコードが重複する場合があります。レコード数の確認をしようとしている場合はご注意下さい。

■ 抽出した「NotSent.csv」をデータエクステンションに格納する場合は、EmailAddress をメールアドレス型ではなく、テキスト型にしてください。List Detective が理由で送信できなかった場合、購読者キーが入力されるためです。

最後に、こちらの「Extract Not Sent」で抽出される「メールが送信できなかった理由」の代表的なものを記載しておきます。参考にしてください。

■ Account Level Opt Out
インターネットサービスプロバイダーが持つフィードバックループ機能により、購読取り消しになっています。つまり、メール受信者が「迷惑メール」ボタンを押すことで、その情報が Marketing Cloud 側に転送されて「購読取り消し」となっています。

■ Held
バウンスが返され、一定の条件を満たし、保留(配信不能)ステータスになっています。

■ Unsubscribed Master
購読取り消し済みステータスの購読者です。

■ Send Failure
何らかの理由で送信が失敗しました。その原因までは記載されません。

■ Invalid Email Address
メールアドレスに何らかの不正があります。
※例えば、"abc@docomo.ne.j"など 最後の p が欠落している場合など

■ Build Email Error
メールを作成しようとしたときにエラーが発生しました。

■ Excluded by Send Time Filter
除外スクリプトにより、購読者が除外されました。

■ Domain Exclusion
ドメイン除外機能により、除外されているメールアドレスのドメインです。

■ Suppression List Exclusion
連絡禁止リスト・自動連絡禁止リストにより、除外されているメールアドレスです。

■ List Detective Exclusion
List Detective 機能により、除外されているメールアドレスです。

これ以外でメールが送信されない理由は下記ヘルプドキュメントよりご確認ください。


いかがでしたでしょうか?

今回、Journey Builder でメール送信ができなかった理由を確認する方法 として 3 つの方法を紹介しました。それぞれ、使い道や使い易さも異なりますので、ご自身が調べたい内容に合わせて、選択して使用して下さい。

今回は以上です。


Click here for English version

次の記事はこちら

前回の記事はこちら

私の note のトップページはこちら

この記事が気に入ったらサポートをしてみませんか?