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 NameDisplay NameDescription
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_keyAPIキープロジェクトの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です。
valuesvaluesにはイベントによって異なる値が格納されます。
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 を参照してください

注意点