-
Notifications
You must be signed in to change notification settings - Fork 3
/
rawevents.view.lookml
executable file
·303 lines (228 loc) · 7.39 KB
/
rawevents.view.lookml
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
- view: rawevents
sql_table_name: app_191.eventsview ## change to relevant schema name for block implementation
fields:
- dimension: app_id
type: int
sql: ${TABLE}.appid
- dimension: application_platform_id
type: int
sql: ${TABLE}.appplatformid
- dimension: application_transition_type_id
type: int
sql: ${TABLE}.applicationtransitiontypeid
- dimension: install_timestamp
type: time
datatype: epoch
timeframes: [time, date, week, month, year]
sql: (${TABLE}.firstseentimestamp::bigint) / 1000
- dimension: app_name
sql: ${TABLE}.appname
- dimension: app_name_platform
sql: ${app_name} || '-' || ${platform}
- dimension: app_version
sql: ${TABLE}.appversion
- dimension: attribution_campaign_name
sql: ${TABLE}.attributioncampaign
- dimension: attribution_publisher_name
sql: isnull(${TABLE}.attributionpublisher, 'UnAttributed')
- dimension: attribution_service_provider_name
sql: ${TABLE}.attributionserviceprovider
- dimension: audience_membership
sql: ${TABLE}.audiencemembership
bypass_suggest_restrictions: true
- dimension: batch_id
type: int
sql: ${TABLE}.batchid
- dimension: batch_timestamp
type: time
datatype: epoch
timeframes: [time, date, week, month, year]
sql: (${TABLE}.batchtimestamp::bigint) / 1000
- dimension: device_brand
sql: ${TABLE}.brand
bypass_suggest_restrictions: true
- dimension: city_name
sql: ${TABLE}.cityname
bypass_suggest_restrictions: true
- dimension: client_ip
sql: ${TABLE}.clientip
- dimension: country_code
sql: ${TABLE}.countrycode
bypass_suggest_restrictions: true
- dimension: customer_id
sql: ${TABLE}.customerid
- dimension: data_connection_type
sql: ${TABLE}.dataconnectiontype
- dimension: device_model
sql: ${TABLE}.devicemodel
bypass_suggest_restrictions: true
- dimension: device_utc_offset
type: int
sql: ${TABLE}.deviceutcoffset
- dimension: email
sql: ${TABLE}.email
- dimension: entry_point_type
type: number
sql: ${TABLE}.entrypointtype
bypass_suggest_restrictions: true
- dimension: event_attributes
sql: ${TABLE}.eventattributes
- dimension_group: event
type: time
timeframes: [date, week, month]
convert_tz: false
sql: ${TABLE}.eventdate
- dimension_group: eventhour
type: time
timeframes: [hour, date, week, month]
sql: ${TABLE}.eventhour
- dimension: hour
type: int
sql: date_part(h, ${TABLE}.eventhour)
- dimension: event_id
type: int
sql: ${TABLE}.eventid
- dimension: event_length
type: number
sql: ${TABLE}.eventlength
- dimension: session_length
type: number
sql: case when ${message_type_id} = 2 then ${event_length} / 1000.0 end
- dimension: event_ltv_value
type: number
sql: ${TABLE}.eventltvvalue
- dimension: event_name
sql: ${TABLE}.eventname
bypass_suggest_restrictions: true
- dimension: event_start_timestamp
type: time
datatype: epoch
timeframes: [time, date, week, month, year]
sql: (${TABLE}.eventstarttimestamp::bigint)/1000
- dimension: event_timestamp
type: time
datatype: epoch
timeframes: [time, date, week, month, year]
sql: (${TABLE}.eventtimestamp::bigint)/1000
- dimension: event_type_id
type: int
sql: ${TABLE}.eventtypeid
- dimension: idfa
sql: ${TABLE}.idfa
- dimension: is_debug
type: yesno
sql: ${TABLE}.isdebug
- dimension: is_upgrade_event
type: yesno
sql: ${TABLE}.isupgradeevent
- dimension: message_type_id
type: int
sql: ${TABLE}.messagetypeid
- dimension: mparticle_user_id
type: number
sql: ${TABLE}.mparticleuserid
- dimension: platform
sql: ${TABLE}.platform
bypass_suggest_restrictions: true
- dimension: region_code
sql: ${TABLE}.regioncode
bypass_suggest_restrictions: true
- dimension: sampling_percentage
type: int
sql: ${TABLE}.samplingpercentage
- dimension: os_version
sql: ${TABLE}.osversion
bypass_suggest_restrictions: true
- dimension: sdk_version
sql: ${TABLE}.sdkversion
bypass_suggest_restrictions: true
- dimension: session_id
type: int
sql: ${TABLE}.sessionid
- dimension: session_start_timestamp
type: time
datatype: epoch
timeframes: [time, date, week, month, year]
sql: (${TABLE}.sessionstarttimestamp::bigint)/1000
- dimension: successfully_closed
type: yesno
sql: ${TABLE}.successfullyclosed
- dimension: upgrade_date
type: time
datatype: epoch
timeframes: [time, date, week, month, year]
sql: (${TABLE}.upgradedate::bigint)/1000
- dimension: user_attributes
sql: ${TABLE}.userattributes
- dimension: days_since_install
type: int
sql: ${event_date} - ${users.install_timestamp_date}
- dimension: weeks_since_install
type: int
sql: datediff(week, ${users.install_timestamp_date}, ${event_date})
- measure: count
type: count
- measure: unique_user_count
type: count_distinct
approximate: true
sql: ${mparticle_user_id}
- measure: avg_session_length
type: avg
sql: ${session_length}
- measure: session_count
type: sum
sql: case when ${message_type_id} = 1 then 1 else 0 end
- measure: revenue
type: sum
sql: ${event_ltv_value}
value_format: '$#,##0.00'
- measure: install_count
type: sum
sql: case when ${message_type_id} = 7 then 1 else 0 end
- measure: time_spent_in_app
type: sum
sql: isnull(case when ${message_type_id} = 2 then ${event_length} / 1000 end, 0)
- measure: arpu
label: "ARPU"
type: number
sql: ${revenue} / ${unique_user_count}
value_format: '$#,##0.00'
# Audience analytics fields #
- filter: audience_membership_filter
suggest_explore: rawevents
suggest_dimension: rawevents.audience_membership
bypass_suggest_restrictions: true
- dimension: is_in_audience
type: yesno
sql: case when {% condition audience_membership_filter %} ${audience_membership} {% endcondition %} then 1 else 0 end
# Funnel Fields #
- filter: event_1
suggest_explore: rawevents
suggest_dimension: event_name
- filter: event_2
suggest_explore: rawevents
suggest_dimension: event_name
- filter: event_3
suggest_explore: rawevents
suggest_dimension: event_name
- filter: event_4
suggest_explore: rawevents
suggest_dimension: event_name
- filter: event_5
suggest_explore: rawevents
suggest_dimension: event_name
- measure: funnel.event_1_uu_count
type: number
sql: count(distinct case when {% condition event_1 %} ${event_name} {% endcondition %} THEN ${mparticle_user_id} END)
- measure: funnel.event_2_uu_count
type: number
sql: count(distinct case when {% condition event_2 %} ${event_name} {% endcondition %} THEN ${mparticle_user_id} END)
- measure: funnel.event_3_uu_count
type: number
sql: count(distinct case when {% condition event_3 %} ${event_name} {% endcondition %} THEN ${mparticle_user_id} END)
- measure: funnel.event_4_uu_count
type: number
sql: count(distinct case when {% condition event_4 %} ${event_name} {% endcondition %} THEN ${mparticle_user_id} END)
- measure: funnel.event_5_uu_count
type: number
sql: count(distinct case when {% condition event_5 %} ${event_name} {% endcondition %} THEN ${mparticle_user_id} END)