Firebase analyticsのBigQueryへExportされる新旧Schemaの対応表

Firebase analyticsをBigQueryに連携することで、すべての行動ログデータを解析できるようになりますが、2018年7月上旬ぐらいから(正確な日時は不明)BigQueryに保存されるデータのSchemaが変更されました。新規のものも、既存のものも新しいデータは、新しいSchemaで保存されるようになっています。また、過去のデータの自動変換は行われていません。
現時点(2018/07/11)では、英語のドキュメントのみの変更となっており、日本語サイトの方はまだ更新されていません。
[英語ドキュメント](https://support.google.com/firebase/answer/7029846?hl=en&ref_topic=7029512#)
[日本語ドキュメント(魚拓)](https://megalodon.jp/2018-0711-1213-13/https://support.google.com:443/analytics/answer/7029846?hl=ja&ref_topic=7029512)

データセット名、テーブル名、フィールド名がすべて刷新されており、既存のクエリは全滅します。ただし、なくなっている情報はほぼ無いので、フィールド名等を置き換えるだけで大体移行が可能です。

## データセット名

|旧|新|補足|
|:--|:--|:--|
|{organization}_{appName}_{platform}|analytics_{random number?}|旧はプラットフォーム毎(iOS,Android等)にデータセットが分けられていたが、新では統合。新の名前の末尾につく謎の数値の情報求む。|

## テーブル名

|旧|新|補足|
|:--|:--|:--|
|app_events_{yyyyMMdd}|events_{yyyyMMdd}||


## Table Schema

### ユーザー情報

基本的にuser_dimの階層がなくなり、user_のプレフィクスがつくようになっています

|旧|新|補足|
|:--|:--|:--|
|user_dim|*none*|消滅|
|user_dim.user_id|user_id||
|user_dim.first_open_timestamp_micros|user_first_touch_timestamp|micro秒のまま|
|user_dim.user_properties|user_properties |Record|
|user_dim.user_properties.key|user_properties.key||
|user_dim.user_properties.value.value|user_properties.value|中間のvalueが省略されるようになった|
|user_dim.user_properties.value.value.{type}_value|user_properties.value.{type}_value|同上|
|user_dim.user_properties.value.set_timestamp_usec|user_properties.value.set_timestamp_micros

### デバイス情報

resettable_device_idがadvertising_idに変わっているのが一番の注意点になるかと思います。

|旧|新|補足|
|:--|:--|:--|
|user_dim.device_info|device||
|user_dim.device_info.device_category|device.category||
|user_dim.device_info.mobile_brand_name|device.mobile_brand_name||
|user_dim.device_info.mobile_model_name|device.mobile_model_name||
|user_dim.device_info.mobile_marketing_name|device.mobile_marketing_name||
|user_dim.device_info.device_model|device.mobile_os_hardware_model||
|(user_dim.app_info.app_platform)|device.operating_system|元はapp_infoにあった|
|user_dim.device_info.platform_version|device.operating_system_version||
|user_dim.device_info.device_id|device.vendor_id||
|user_dim.device_info.resettable_device_id|device.advertising_id||
|user_dim.device_info.user_default_language|device.language||
|user_dim.device_info.device_time_zone_offset_seconds|device.time_zone_offset_seconds||
|user_dim.device_info.limited_ad_tracking|device.is_limited_ad_tracking||




### Geo情報

|旧|新|補足|
|:--|:--|:--|
|user_dim.geo_info|geo||
|user_dim.geo_info.{prop}|geo.{prop}||

### App情報

結構変わっています。特に旧app_instance_idを使っている場合は、フォーマットが変わっているので注意が必要です。

|旧|新|補足|
|:--|:--|:--|
|user_dim.app_info|app_info||
|user_dim.app_info.app_version|app_info.version||
|user_dim.app_info.app_instance_id|*none*||
|*none*|app_info.fireabase_app_id|旧app_instance_idに近いがフォーマットが全く違う|
|user_dim.app_info.app_id|app_info.id||
|user_dim.app_info.app_store|app_info.install_source||
|user_dim.app_info.app_platform|platform or device.operating_system|どちらかで取得可能|


### Trafic情報

|旧|新|補足|
|:--|:--|:--|
|user_dim.traffic_source|trafic_source||
|user_dim.traffic_source.user_acquired_campaign|traffic_source.name||
|user_dim.traffic_source.user_acquired_medium|traffic_source.medium||
|user_dim.traffic_source.user_acquired_source|traffic_source.source||

### Bundle info

|旧|新|補足|
|:--|:--|:--|
|user_dim.bundle_info.bundle_sequence_id|event_bundle_sequence_id||
|user_dim.bundle_info.server_timestamp_offset_micros|event_server_timestamp_offset ||

### LTV 情報

|旧|新|補足|
|:--|:--|:--|
|user_dim.ltv_info|user_ltv||
|user_dim.ltv_info.{prop}|user_ltv.{prop}||

### イベント情報

event_dimがRecord(配列みたいなもの)だったのがFlatな構造になったので、フィールドアクセスにUNNESTする必要がなくなりました。

|旧|新|補足|
|:--|:--|:--|
|event_dim|*none*|event_プレフィクスになっています|
|event_dim.date|event_date||
|event_dim.name|event_name||
|event_dim.params|event_params|Record|
|event_dim.params.{props}|event_params.{props}||
|event_dim.timestamp_micros|event_timestamp|時間の単位はmicroで変わらず|
|event_dim.previous_timestamp_micros|event_previous_timestamp|時間の単位はmicroで変わらず|
|event_dim.value_in_usd|event_value_in_usd||


### 新しく追加された情報

|旧|新|補足|
|:--|:--|:--|
|*none*|stream_id||
|*none*|platform|"IOS"などが取れる|