メッセージのアーカイブ
メッセージのアーカイブ機能により、ユーザーに送信されたメッセージのコピーを、保存やコンプライアンス目的でAWS S3バケット、Azure Blob Storageコンテナ、またはGoogle Cloud Storageバケットに保存できる。
この記事では、メッセージのアーカイブ設定、JSONペイロード参照、およびよくある質問について説明する。
メッセージのアーカイブはアドオン機能として利用できます。メッセージのアーカイブを開始するには、Brazeのカスタマーサクセスマネージャーに連絡する。
仕組み
この機能をオンにすると、クラウドストレージバケットをBrazeに接続し、デフォルトのデータ送信先としてマークしている場合、Brazeは、選択したチャネル(メール、SMS/MMS、またはプッシュ)を通じてユーザーに送信された各メッセージについて、gzip圧縮されたJSONファイルをクラウドストレージバケットに書き込む。
このファイルには、[ファイル参照] で定義されたフィールドが含まれており、ユーザーに送信されるテンプレート化された最終的なメッセージが反映されます。キャンペーンで定義されたテンプレートの値 ({{${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
MD5 ダイジェストは、既知のダウンケースメールアドレス、プッシュトークン、E.164 電話番号を使ってのみ計算できます。既知の MD5 ダイジェストを逆にして、小文字のメールアドレス、プッシュトークン、または E.164 電話番号を取得することはできません。
バケット内でのプッシュトークンの検出に苦労している場合のヒント
Braze は、プッシュトークンをハッシュする前にその大文字を小文字にします。これにより、プッシュトークン Test_Push_Token12345 はキーパス内で小文字の test_push_token12345 になり、ハッシュは 32b802170652af2b5624b695f34de089 です。
メッセージのアーカイブの設定
このセクションでは、ワークスペースのメッセージアーカイブの設定について説明する。先に進む前に、会社でメッセージアーカイブを購入し、有効にしていることを確認してください。
ステップ 1: クラウドストレージバケットの接続
まだクラウドストレージバケットを接続していない場合は、Braze に接続します。手順については、Amazon S3、Azure Blob Storage または Google Cloud Storage に関するパートナーのドキュメントを参照してください。
メッセージのアーカイブにはCurrentsの設定は不要だ。だからパートナー向けドキュメントに記載されているその前提条件はスキップして構わない。
ステップ 2:メッセージをアーカイブするチャネルの選択
[メッセージのアーカイブ] の設定ページで、送信するメッセージのコピーをクラウドストレージバケットに保存するチャネルを制御します。
チャネルを選択するには次のステップに従います。
- [設定] > [メッセージのアーカイブ] に移動します。
- チャネルを選択します。
- 変更の保存を選択します。
![[メッセージのアーカイブ] ページには、選択できるチャネルとして、メール、プッシュ、SMS の 3 つがあります。](/docs/ja/assets/img/message_archiving_settings.png?c2c313b4ce4b8d9bf938362a581f3762)
[設定] に [メッセージのアーカイブ] が表示されない場合は、会社がメッセージのアーカイブ機能を購入して有効にしていることを確認してください。
ファイル参照
以下は、メッセージが送信されるたびにクラウドストレージバケットに配信されるJSONペイロードへの参照である。メッセージのアーカイブのサンプル ファイルについては、コード例リポジトリを参照してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"version": 1, //numerical version of the JSON structure
"to": ToAddress, ("customer@example.com")
"subject": SubjectLine ("20% off coupon inside!"),
"from_name": DisplayName ("Braze"),
"from_address": FromAddress ("no-reply@braze.com"),
"html_body": HtmlBody,
"plaintext_body": PlainTextBody,
"amp_body": AMPEmailBody,
"extras": Hash of key-value pairs from Email Extras configured in the email editor,
"headers": HashOfHeaders,
"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": MessageVariationApiId, // may not be available,
"attachments": Array of JSON Objects containing 'bytes' and 'file_name', // 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
}
このextrasフィールドには、HTMLエディタでメールを作成する際に「メールの追加情報」フィールドで設定したキーと値のペアが含まれる。メールエクストラ機能は全てのメールサービスプロバイダー(SendGridやSparkPostを含む)で動作する。また、どのプロバイダーを使用しているかに関わらず、アーカイブされたメッセージにも含まれる。メールエクストラの設定に関する詳細は、「メールキャンペーンの作成」を参照のこと。Currents にデータを送り返す方法については、メッセージエクストラを参照してください。

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
}
ペイロード構造のバリエーションをプッシュする
プッシュ通知アーカイブの最上位payloadフィールドには、デバイスに送信されたプロバイダーのペイロード全体が含まれている。このJSON内では、APN用のapsやnotification、FCM用のdataやといったキーは、メッセージの種類、プラットフォーム、設定によって大きく異なる場合がある。
メッセージのアーカイブはメッセージ本体を保存するが、FCMやAPNに送信される配信メタデータは含まれない。配信メタデータには以下が含まれる:
- デバイストークン
- 優先度設定
- 有効期限(TTL)
- 折りたたみID
- APNヘッダー
- 有効期限のタイムスタンプ
- その他の配送設定フィールド
これらのフィールドは、プッシュプロバイダーへの配信指示として機能する。それらは通常、メッセージの内容の一部とは見なされない。
以下に例を示します。
- iOSのプッシュ通知は、リッチプッシュ通知(`object`が`field`
titleやfieldなどのbodyフィールドを含むオブジェクトであるaps.alert場合)と簡易通知(objectがaps.alert文字列である場合)で構造が異なることがある。 - Androidのプッシュ通知(例えばFCM)は、カスタムキーを持つデータメッセージを使用する。ペイロード構造は、メッセージ構成に応じて異なるオプションフィールドを含む場合がある。例えば、プッシュボタン、カルーセル、追加のメタデータなどだ。
さらに、ダッシュボードからのテスト送信は、本番メッセージとは異なるペイロード構造を生成する可能性がある。
JSONペイロードの形式はメッセージごとに異なり、時間の経過とともに変更される可能性がある。アーカイブされたプッシュペイロードを解析する際は、固定された構造を前提にしたり、同じフィールドが常に存在すると期待したりしてはならない。様々なペイロード形式を処理する柔軟な解析ロジックを実装する。
よくある質問
ペイロードに含まれていないテンプレートは何ですか?
メッセージがBrazeを離れた後に行われた修正は、クラウドストレージバケットに保存されたファイルには反映されない。これには、クリック追跡のためのリンクのラッピングやトラッキングピクセルの挿入など、メール配信パートナーが行う修正も含まれる。
キャンペーンパスの「unassociated」の値の下にあるメッセージは何ですか?
メッセージがキャンペーンまたはキャンバス以外で送信される場合、ファイル名のキャンペーン ID は「unassociated」になります。ダッシュボードからテストメッセージを送信した場合、BrazeがSMS/MMS自動レスポンスを送信した場合、またはAPI経由で送信したメッセージにキャンペーンIDが指定されていない場合に発生する。
この送信に関する詳細情報を見つけるにはどうすればよいですか?
テンプレート化されたメッセージをCurrentsデータと照合して、配信時刻やユーザーが開封・クリックしたuser_idかといった詳細情報を確認するには、またはexternal_idをdispatch_id組み合わせて使用できる。
再試行はどのように処理されますか?
クラウドストレージバケットに到達できない場合、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がどのワークスペースに属するかを特定し、その情報に基づいてそれらをグループ化できる。
GitHub でこのページを編集