Message関連のビュー
Messageのログテーブル
masspush_event_log_regional
ビューは、KARTE Messageで計測しているログを参照できるビューになります。
(一部プロジェクトでは、 masspush_event_log
というビューも存在しますが、同一のデータが取得可能です)
用途
KARTE Messageで計測した送信、開封、クリックなどのログをさまざまな分析にご利用いただけます。
反映タイミング
ログをそのまま参照している形なので、リアルタイムに結果を確認することが出来ます。
管理画面でのデータの確認について
ビューの場合、テーブル一覧画面、テーブル詳細画面でのレコード数の確認、及びプレビューはできません。実際のデータを確認したい場合はクエリ画面からクエリを実行してください。
ビューの参照方法
下記のようにビュー名を記述することで masspush_event_log_regional
ビューへのクエリを実行することができます。
SELECT
*
FROM
`prd-karte-message-per-client.csv_upload_{{api_key}}.masspush_event_log_regional`
抽出対象データの期間指定
以下のようにtimestamp
または schedule_task_id
で期間指定を行うことで、クエリリソースを節約してデータを抽出することができます。
SELECT
*
FROM
`prd-karte-message-per-client.csv_upload_{{api_key}}.masspush_event_log_regional`
WHERE
timestamp < CURRENT_TIMESTAMP
SELECT
*
FROM
`prd-karte-message-per-client.csv_upload_{{api_key}}.masspush_event_log_regional`
WHERE
schedule_task_id = '配信時に振られるID'
スキーマ
user_idやtargetのデータを取得する際の注意点
target(送信先情報)やuser_idなどはuser_data_listに格納されています。user_data_listはREPEATEDのカラムであるため、UNNESTしてuser_data_listのデータを展開することでuser_idやtargetをデータを取得いただけます。
※「deprecated」と表記されているものは現在使用していません。
Field Name | Display Name | Description |
---|---|---|
event_hash | イベントハッシュ | イベントの一連の流れを識別するIDです |
event_name | イベント名 | 以下のイベントが格納されています。 - message_ses_send:KARTEから配信エンジンへのリクエスト完了(メールでのみ発生します) - message_send:送信成功 - message_fail:送信失敗(送信成功していても苦情などの理由により送信失敗ログが後から発生することがあります) - message_open:開封(メールでのみ発生します) - message_click:クリック - message_unsubscribe:購読停止(メールでのみ発生します) - message_subscribe:購読再開(メールでのみ発生します) - system_start:配信処理の開始 - system_fail:配信処理の失敗 - system_success:配信処理の成功 |
timestamp | タイムスタンプ | イベントが発生したタイムスタンプです。JSTではなくUTCである点に注意してください。 |
api_key | APIキー | プロジェクトのAPIキーです |
user_data_list | ユーザー情報 | 配信先をtarget、ユーザーIDをuser_idのとしてREPEATED型で保有します |
┗ target | 配信先 | アプリプッシュであれば、FCMトークン。メールであればメールアドレスが暗号化された状態で入ります。 |
┗ user_id | ユーザーID | マスターリストで指定したリストのユーザーIDカラムの値が入ります。 |
campaign_id | キャンペーンID | キャンペーンを識別するIDです。URLの /campaign/xxx/ のxxxにあたる箇所です。 |
push_content_id | 送信コンテンツID | 送信コンテンツに自動付与されるIDです。 |
plugin_type | 送信タイプ | どのチャネルで送信したかを示します。sesはメール。native_appはアプリプッシュ通知。lineはLINE配信です。 |
schedule_task_id | 配信ID | キャンペーンが繰り返しの場合、一回の配信を識別できるようにするIDです。 |
values | valuesにはイベントによって異なる値が格納されます。 message_click:クリックしたurlが入ります。 message_unsubscribe:購読停止された送信元アドレスが入ります。 | |
error_type | エラータイプ | エラー原因の大項目が入ります。 SES_BOUNCE:メールのバウンス発生 SES_COMPLAINT:メールに対する苦情の発生 |
error_code | エラー原因 | エラー原因の小分類が入ります |
error_message | エラーメッセージ | エラーメッセージが入ります |
error_recoveries | 主にバウンスなどで、配信ができなくなったユーザーに再度配信を行うためのシステム用フィールドです |
message_sendイベントとmessage_failイベントは排他ではありません
message_sendは送信先の受信サーバーが配信成功イベントを返却してきた際に発生します。message_failは配信失敗した場合だけでなく、配信成功後に受信サーバーから苦情が送られてきた時に発生します。これにより一送信で一人のユーザーにmessage_failとmessage_sendの両方が発生するケースがあります。
Messageの設定情報テーブル
以下4つのViewは、それぞれMessageの管理画面で設定された、設定情報の公開Viewとなります。
masspush_setting_value_campaign
: キャンペーンの設定情報
masspush_setting_value_push_content
:アクションの設定情報
masspush_setting_value_campaign_folder
:フォルダの設定情報
masspush_setting_value_address_profile
:プロファイルの設定情報
用途
Messageのログデータと合わせて利用することで、キャンペーンの設定名や、フォルダの名前、アクションの設定内容等のデータをSQLで取り扱うことができます。
反映タイミング
設定情報は、管理画面でデータを作成後、2時間ほどで反映されます。
ビューの参照クエリサンプル
各ビューのスキーマは今後変更の可能性がありますが、サンプルとして「enabled=公開状態」にあるすべてのキャンペーンの設定情報を出力するクエリは以下のようになります
with raw as(
SELECT
c.name as folder_name
,a.name as campaign_name
,a._id as campaign_id
,a.description
,a.enabled
,a.push_type
,a.status
,a.schedule.*
,a.option
,b.content.SES_SUBJECT as mail_subject
-- ,b.content.SES_CONTENT_HTML as mail_content_html -- 重いので、コメントアウト
-- ,b.content.SES_CONTENT_TEXT as mail_content_text -- 重いので、コメントアウト
,b.content.use_bee_html as mail_use_bee_html
,b.content.title as native_app_title
,b.content.body as native_app_body
,b.content.url as native_app_url
,b.content.attachment_url as native_app_attachment_url
FROM
`prd-karte-message-per-client.csv_upload_{{api_key}}.masspush_setting_value_campaign`as a
,unnest(content.push_contents) as contents
inner join `prd-karte-message-per-client.csv_upload_{{api_key}}.masspush_setting_value_push_content` as b
on contents.push_content_id = b._id
inner join `prd-karte-message-per-client.csv_upload_{{api_key}}.masspush_setting_value_campaign_folder` as c
on a.folder_id = c._id
where
a.enabled = 'true'
)
select * from raw
masspush_setting_value_push_content についての注意事項
- テンプレート(is_template: true)がアーカイブされている場合のみis_archivedがtrueになります
- キャンペーンに設定されたアクションのアーカイブがされているかどうかは、masspush_setting_value_campaignのcontent.push_contents > is_archived を参照してください
注意点
- 上記ビューを格納するprd-karte-message-per-clientは外部に共有することはできません。
Updated 5 months ago