Skip to content

メッセージのアーカイブ

メッセージのアーカイブ機能により、ユーザーに送信されたメッセージのコピーを、保存やコンプライアンス目的で AWS S3 バケット、Azure Blob Storage コンテナ、または Google Cloud Storage バケットに保存できます。

この記事では、メッセージのアーカイブ設定、JSON ペイロード参照、およびよくある質問について説明します。

メッセージのアーカイブはアドオン機能として利用できます。メッセージのアーカイブを開始するには、Braze のカスタマーサクセスマネージャーにお問い合わせください。

仕組み

この機能をオンにすると、Braze は選択したチャネル(メール、SMS/MMS、またはプッシュ)を通じてユーザーに送信された各メッセージについて、gzip 圧縮された JSON ファイルを書き込みます。Braze はこれらのファイルをデフォルトのデータエクスポート先に書き込みます。これには、トランザクションメール API を通じて送信されるトランザクションメールキャンペーンなど、各チャネルのすべてのキャンペーンタイプが含まれます。

このファイルには、ファイル参照で定義されたフィールドが含まれており、ユーザーに送信されるテンプレート化された最終的なメッセージが反映されます。キャンペーンで定義されたテンプレートの値({{${first_name}}} など)には、プロファイル情報に基づいてユーザーが受け取った最終的な値が表示されます。これにより、送信したメッセージのコピーを保持して、コンプライアンス、監査、またはカスタマーサポートの要件を満たすことができます。

複数のクラウドストレージプロバイダーの認証情報を設定した場合、メッセージのアーカイブ機能では、デフォルトのデータエクスポート先としてマークされたプロバイダーにのみエクスポートされます。明示的なデフォルトが設定されておらず、AWS S3 バケットが接続されている場合、メッセージアーカイブはそのバケットにアップロードされます。

JSON は、次のキー構造を使用してストレージバケットに保存されます。

sent_messages/{channel, one of: email, push, sms}/{MD5 digest of downcased: email address, push token, or E.164 phone number}/{campaign or Canvas step API ID}/{dispatch ID}.json.gz

ファイルの例を以下に示します。

sent_messages/email/819baa08d8d7e77e19d4666f5fc6050b/ee965cb2-8934-4b0a-acf1-91c899c2f915/651fd10b282850b39e1169c13975234b.json.gz

メッセージのアーカイブの設定

このセクションでは、ワークスペースのメッセージアーカイブの設定について説明します。先に進む前に、会社でメッセージアーカイブを購入し、有効にしていることを確認してください。

ステップ 1: クラウドストレージバケットの接続

まだクラウドストレージバケットを接続していない場合は、Braze に接続します。手順については、Amazon S3Azure Blob Storage、または Google Cloud Storage に関するパートナーのドキュメントを参照してください。

ステップ 2: メッセージをアーカイブするチャネルの選択

[メッセージのアーカイブ] の設定ページで、送信するメッセージのコピーをクラウドストレージバケットに保存するチャネルを制御します。

チャネルを選択するには次のステップに従います。

  1. [設定] > [メッセージのアーカイブ] に移動します。
  2. チャネルを選択します。
  3. [変更の保存] を選択します。

[メッセージのアーカイブ] ページには、選択できるチャネルとして、メール、プッシュ、SMS の 3 つがあります。

ファイル参照

以下は、メッセージが送信されるたびにクラウドストレージバケットに配信される JSON ペイロードへの参照です。メッセージのアーカイブのサンプルファイルについては、コード例リポジトリを参照してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "version": 1 //numerical version of the JSON structure
  "to": PhoneNumber, ("+15555555555"),
  "body": Body ("Hi there!"),
  "subscription_group": SubscriptionGroupExternalId,
  "provider": StringOfProviderName,
  "media_urls": ArrayOfString, // indicates a message is MMS
  "sent_at": UnixTimestamp,
  "dispatch_id": DispatchIdFromBraze,
  "campaign_id": CampaignApiId, // may not be available
  "canvas_id": CanvasApiId, // may not be available
  "canvas_step_id": CanvasStepApiId, // may not be available
  "canvas_variation_id" : CanvasVariationApiId, // may not be available
  "message_variation_id": MessagVariationApiId, // may not be available
  "user_id": String,
  "campaign_name": String, // will only be available if the message is from a campaign
  "canvas_name": String, // will only be available if the message is from Canvas
  "canvas_step_name": String, // will only be available if the message is from a Canvas
  "external_id": String
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
  "version": 1, //numerical version of the JSON structure
  "to": PushToken,
  "payload": JsonOfEntirePushPayload,
  "platform": one of "android_push" | "ios_push" | "kindle_push" | "web_push",
  "app_id": ApiKeyOfApp,
  "sent_at": UnixTimestamp,
  "dispatch_id": DispatchIdFromBraze,
  "campaign_id": CampaignApiId, // may not be available
  "canvas_id": CanvasApiApiId, // may not be available
  "canvas_step_id": CanvasStepApiId, // may not be available
  "canvas_variation_id" : CanvasVariationApiId, // may not be available
  "message_variation_id": MessagVariationApiId, // may not be available
  "user_id": String,
  "campaign_name": String, // will only be available if the message is from a campaign
  "canvas_name": String, // will only be available if the message is from a Canvas
  "canvas_step_name": String, // will only be available if the message is from a Canvas
  "external_id": String
}

プッシュペイロード構造のバリエーション

メッセージのアーカイブはメッセージペイロード自体をキャプチャしますが、FCM や APNs に送信される配信メタデータは含まれません。配信メタデータには以下が含まれます。

  • デバイストークン
  • 優先度設定
  • 有効期限(TTL)
  • 折りたたみ ID
  • APNs ヘッダー
  • 有効期限のタイムスタンプ
  • その他の配信設定フィールド

これらのフィールドは、プッシュプロバイダーへの配信指示として機能します。通常、メッセージコンテンツの一部とは見なされません。

以下に例を示します。

  • iOS のプッシュ通知は、リッチプッシュ通知(aps.alerttitlebody などのフィールドを含むオブジェクトである場合)と簡易通知(aps.alert が文字列である場合)で構造が異なることがあります。
  • Android のプッシュ通知(例: FCM)は、カスタムキーを持つデータメッセージを使用します。ペイロード構造は、メッセージの設定に応じて異なるオプションフィールドを含む場合があります。例えば、プッシュボタン、カルーセル、追加のメタデータなどです。

さらに、ダッシュボードからのテスト送信は、本番メッセージとは異なるペイロード構造を生成する可能性があります。

JSON ペイロードの形式はメッセージごとに異なり、時間の経過とともに変更される可能性があります。アーカイブされたプッシュペイロードを解析する際は、固定された構造を前提にしたり、同じフィールドが常に存在すると期待したりしないでください。さまざまなペイロード形式を処理する柔軟な解析ロジックを実装してください。

よくある質問

ペイロードに含まれないテンプレートは何ですか?

メッセージが Braze を離れた後に行われた変更は、クラウドストレージバケットに保存されたファイルには反映されません。これには、クリックトラッキングのためのリンクのラッピングやトラッキングピクセルの挿入など、メール配信パートナーが行う変更も含まれます。

キャンペーンパスの「unassociated」の値の下にあるメッセージは何ですか?

メッセージがキャンペーンまたは Canvas 以外で送信される場合、ファイル名のキャンペーン ID は「unassociated」になります。これは、ダッシュボードからテストメッセージを送信した場合、Braze が SMS/MMS 自動レスポンスを送信した場合、または API 経由で送信したメッセージにキャンペーン ID が指定されていない場合に発生します。

この送信に関する詳細情報を見つけるにはどうすればよいですか?

external_id または dispatch_iduser_id と組み合わせて使用することで、テンプレート化されたメッセージを Currents データと照合し、配信時刻やユーザーが開封・クリックしたかといった詳細情報を確認できます。

再試行はどのように処理されますか?

クラウドストレージバケットに到達できない場合、Braze はバックオフジッターを使用して最大 3 回再試行します。AWS S3 のレート制限の再試行は Braze によって自動的に処理されます。

認証情報が無効の場合、どうなりますか?

クラウドストレージの認証情報がいずれかの時点で無効になった場合、Braze はクラウドストレージバケットにメッセージを保存できなくなり、それらのメッセージは失われます。Amazon Web Services、Google Cloud Services、または Azure(Microsoft Cloud Services)の通知設定を構成することを推奨します。これにより、認証情報の問題が発生した場合にアラートを受け取れるようになります。

アーカイブファイルの sent_at タイムスタンプが Currents の送信タイムスタンプと若干異なるのはなぜですか?

レンダリングされたコピーは、ユーザーにメッセージを送信する直前にアップロードされます。クラウドストレージのアップロード時間により、レンダリングされたコピーの sent_at タイムスタンプと実際の送信時刻との間に、数秒の遅延が発生する可能性があります。

現在の Currents データ用バケットはそのまま使用して、メッセージアーカイブ専用に新しいバケットを作成できますか?

いいえ、できません。このような専用バケットの作成に関心がある場合は、製品フィードバックをお送りください。

Currents データエクスポートの仕組みと同様に、アーカイブされたデータは既存のバケット内の専用フォルダーに書き込まれますか?

データはバケットの sent_messages セクションに書き込まれます。詳しくは仕組みを参照してください。

メッセージアーカイブを使って、ファイルを異なるワークスペースにグループ分けできますか?

いいえ、できません。メッセージのアーカイブ機能は、ワークスペースに基づくファイルのグループ化をサポートしていません。代わりに、キャンペーンやキャンバスステップの API ID がどのワークスペースに属するかを特定し、その情報に基づいてグループ化できます。

New Stuff!