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'

スキーマ

ご注意ください

target(送信先情報)やuser_idなどはuser_data_listに格納されています。user_data_listはREPEATEDのカラムであるため、UNNESTしてuser_data_listのデータを展開することでユーザー毎のuser_idやtargetをデータを取得いただけます。

※「deprecated」と表記されているものは現在使用していません。

フィールド名表示名説明
event_hashイベントハッシュイベントの一連の流れを識別するIDです
event_nameイベント名以下のイベントが格納されています。

* message_ses_send:KARTEから配信エンジンへのリクエスト完了(メールでのみ発生します)
* message_send:送信成功
* message_fail:送信失敗(送信成功していても苦情などの理由により送信失敗ログが後から発生することがあります)
* message_open:開封(メールでのみ発生します)
* message_delay:送信リトライ(メールでのみ発生します)
* message_click:クリック
* message_unsubscribe:購読停止(メールでのみ発生します)
* message_subscribe:購読再開(メールでのみ発生します)
* system_start:配信処理の開始
* system_error:配信処理の失敗
* 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です。
values-valuesにはイベントによって異なる値が格納されます。
message_click:クリックしたurlが入ります。
message_unsubscribe:購読停止された送信元アドレスが入ります。
error_typeエラータイプエラー原因の大項目が入ります。

SES_BOUNCE:メールのバウンス発生
SES_COMPLAINT:メールに対する苦情の発生
error_codeエラー原因エラー原因の小分類が入ります
error_messageエラーメッセージエラーメッセージが入ります
error_recoveries-主にバウンスなどで、配信ができなくなったユーザーに再度配信を行うためのシステム用フィールドです
ご注意ください

message_delayは一時的にメールの受信サーバーがメール受け取りをできなかった際に発生する送信リトライがあったことを示すイベントです。message_delayが発生した結果、送信成功したらmessage_sendが発生します。message_delayが何度も発生しリトライ時間制限を超えてしまった場合は、message_failが発生します。message_delayが発生するたびにmessage_failが発生しているわけではないことにご注意ください。

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 を参照してください

FAQ

Q. prd-karte-message-per-clientのデータセットは外部に共有できますか?

prd-karte-message-per-clientを外部に共有することは可能です。
手順については、KARTE Datahubのデータセットを外部に共有するを参照してください。

Q. message_ses_sendの件数が message_sendmessage_failの合計にならないのはなぜですか?

message_sendの後にmessage_failが発生することがあるからです。
message_ses_sendmessage_sendmessage_fail は、次のようにそれぞれ異なるタイミングで発生します。

イベント発生タイミング
message_ses_sendKARTE から配信エンジン(SES)へのリクエストが完了した時点
message_send受信サーバーが配信成功イベントを返却した時点
message_fail配信失敗時、または配信成功後に受信サーバーから苦情が返された時点