@wistia/bottler-helpers 1.0.30 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/schema.graphql +724 -723
package/schema.graphql CHANGED
@@ -1,67 +1,291 @@
1
- "Represents a schema"
2
1
  schema {
3
- query: RootQueryType
4
2
  mutation: RootMutationType
3
+ query: RootQueryType
5
4
  }
6
5
 
7
- type PageInfo {
8
- startCursor: String
9
- endCursor: String
10
- hasNextPage: Boolean!
11
- hasPreviousPage: Boolean!
6
+ input Interval {
7
+ startDate: Date
8
+ endDate: Date
12
9
  }
13
10
 
14
- input Pagination {
15
- limit: Int!
16
- cursor: String
17
- direction: CursorDirection
11
+ type RootQueryType {
12
+ channel(channelHashedId: String!, interval: Interval): Channel
13
+ channels(channelGlobalIds: [String]!): [ChannelMetrics!]!
14
+ episodes(episodeGlobalIds: [String]!): [EpisodeMetrics!]!
15
+ media(mediaId: Int!): Media
16
+ medias(searchFilter: SearchFilter): Medias
17
+ projectsCount: Int
18
+ channelsCount: Int
19
+ liveStreamEventsCount(interval: Interval): Int
20
+ mediaEvents(interval: Interval, searchFilter: SearchFilter): MediaEvents
21
+ liveEvents(liveStreamEventIds: [Int]!, includePostEvent: Boolean): LiveEvents
22
+ liveEvent(liveStreamEventId: Int!, includePostEvent: Boolean): LiveEvent
23
+ liveStreamEvents(limit: Int, interval: Interval, orderBy: LiveStreamEventOrderMetric, order: Order): [LiveStreamEvent!]!
24
+ liveStreamEventsAccountAggregate(limit: Int, interval: Interval): LiveStreamEventAccountAggregate!
25
+ liveEventContacts(liveStreamEventId: Int!): LiveEventContacts
26
+ mediaFormConversions(mediaGlobalId: String!, interval: Interval!, pagination: Pagination): MediaFormAggregateResult
27
+ relativeMediaEvents(relativePeriod: RelativePeriod!, searchFilter: SearchFilter): RelativeMediaEvents
28
+ exportStatus(exportId: Int!): ExportStatus
18
29
  }
19
30
 
20
- type PollOption {
21
- id: Int!
22
- text: String!
23
- count: Int!
24
- percent: Float!
31
+ type RootMutationType {
32
+ exportMedia(contactId: Int!, interval: Interval, searchFilter: SearchFilter, aggregate: ExportAggregate): ExportStatus
33
+ exportRelativeMedia(contactId: Int!, relativePeriod: RelativePeriod!, searchFilter: SearchFilter): ExportStatus
34
+ accountDigest(contactId: Int!, interval: Interval!, overrideEmail: String): AccountDigestStatus
35
+ liveExport(liveStreamEventId: Int!, type: LiveExportType!, contactId: Int!): ExportStatus
25
36
  }
26
37
 
27
- input Interval {
28
- startDate: Date
29
- endDate: Date
38
+ """
39
+ The `DateTime` scalar type represents a date and time in the UTC
40
+ timezone. The DateTime appears in a JSON response as an ISO8601 formatted
41
+ string, including UTC timezone ("Z"). The parsed date and time string will
42
+ be converted to UTC if there is an offset.
43
+ """
44
+ scalar DateTime
45
+
46
+ """
47
+ The `Date` scalar type represents a date. The Date appears in a JSON
48
+ response as an ISO8601 formatted string, without a time component.
49
+ """
50
+ scalar Date
51
+
52
+ type MediaEmbedLanguageAggregate {
53
+ mediaGlobalId: String
54
+ plays: Int
55
+ language: String
56
+ percentOfTotalPlays: Float
57
+ captionsSupport: Boolean
30
58
  }
31
59
 
32
- type LiveEventReferrerDomainAggregate {
60
+ type AccountEmbedLocationAggregate {
33
61
  accountKey: String
34
62
  accountName: String
35
- liveStreamEventId: Int
63
+ embedLocationCount: Int
64
+ plays: Int
65
+ playRate: Float
66
+ engagementRate: Float
67
+ playedTime: Int
68
+ loads: Int
69
+ uniqueVisitors: Int
70
+ ctaConversionRate: Float
71
+ }
72
+
73
+ type MediaEmbedLocationAggregate {
74
+ accountKey: String
75
+ accountName: String
76
+ containerGlobalId: String
77
+ containerHashedId: String
78
+ containerName: String
79
+ episodeHashedId: String
80
+ episodeGlobalId: String
81
+ episodeTitle: String
82
+ mediaHashedId: String
83
+ mediaGlobalId: String
84
+ mediaName: String
85
+ mediaThumbnailUrl: String
86
+ embedDomain: String
87
+ embedPath: String
88
+ embedUrl: String
89
+ plays: Int
90
+ playRate: Float
91
+ engagementRate: Float
92
+ playedTime: Int
93
+ loads: Int
94
+ uniqueVisitors: Int
95
+ ctaConversionRate: Float
96
+ pageTitle: String
97
+ placement: String
98
+ size: String
99
+ }
100
+
101
+ type MediaReferrerDomainAggregate {
102
+ accountKey: String
103
+ accountName: String
104
+ containerGlobalId: String
105
+ containerHashedId: String
106
+ containerName: String
107
+ episodeHashedId: String
108
+ episodeGlobalId: String
109
+ episodeTitle: String
110
+ mediaHashedId: String
111
+ mediaGlobalId: String
112
+ mediaName: String
36
113
  referrerDomain: String
37
- impressions: Int
38
- registrations: Int
39
- attendees: Int
114
+ plays: Int
115
+ playRate: Float
116
+ engagementRate: Float
117
+ playedTime: Int
118
+ loads: Int
119
+ uniqueVisitors: Int
120
+ ctaConversionRate: Float
40
121
  }
41
122
 
42
- type LiveEventUtmCampaignAggregate {
123
+ type MediaViewerScreenSizeAggregate {
43
124
  accountKey: String
44
125
  accountName: String
45
- liveStreamEventId: Int
126
+ containerGlobalId: String
127
+ containerHashedId: String
128
+ containerName: String
129
+ episodeHashedId: String
130
+ episodeGlobalId: String
131
+ episodeTitle: String
132
+ mediaHashedId: String
133
+ mediaGlobalId: String
134
+ mediaName: String
135
+ viewerScreenSize: String
136
+ plays: Int
137
+ playRate: Float
138
+ engagementRate: Float
139
+ playedTime: Int
140
+ loads: Int
141
+ uniqueVisitors: Int
142
+ ctaConversionRate: Float
143
+ }
144
+
145
+ type MediaUtmCampaignAggregate {
146
+ accountKey: String
147
+ accountName: String
148
+ containerGlobalId: String
149
+ containerHashedId: String
150
+ containerName: String
151
+ episodeHashedId: String
152
+ episodeGlobalId: String
153
+ episodeTitle: String
154
+ mediaHashedId: String
155
+ mediaGlobalId: String
156
+ mediaName: String
46
157
  utmCampaign: String
47
- impressions: Int
48
- registrations: Int
49
- attendees: Int
158
+ plays: Int
159
+ playRate: Float
160
+ engagementRate: Float
161
+ playedTime: Int
162
+ loads: Int
163
+ uniqueVisitors: Int
164
+ ctaConversionRate: Float
50
165
  }
51
166
 
52
- type PodcastEpisodeApplicationAggregate {
167
+ type MediaUtmSourceAggregate {
53
168
  accountKey: String
54
169
  accountName: String
55
- application: String
56
- downloads: Int
57
- playableTimeDownloaded: Int
58
- percentOfDownloads: Float
170
+ containerGlobalId: String
171
+ containerHashedId: String
172
+ containerName: String
173
+ episodeHashedId: String
174
+ episodeGlobalId: String
175
+ episodeTitle: String
176
+ mediaHashedId: String
177
+ mediaGlobalId: String
178
+ mediaName: String
179
+ utmSource: String
180
+ plays: Int
181
+ playRate: Float
182
+ engagementRate: Float
183
+ playedTime: Int
184
+ loads: Int
185
+ uniqueVisitors: Int
186
+ ctaConversionRate: Float
59
187
  }
60
188
 
61
- type PlayedTimeDatapointEpisode {
62
- episodeId: Int!
189
+ type MediaUtmMediumAggregate {
190
+ accountKey: String
191
+ accountName: String
192
+ containerGlobalId: String
193
+ containerHashedId: String
194
+ containerName: String
195
+ episodeHashedId: String
196
+ episodeGlobalId: String
197
+ episodeTitle: String
198
+ mediaHashedId: String
199
+ mediaGlobalId: String
200
+ mediaName: String
201
+ utmMedium: String
202
+ plays: Int
203
+ playRate: Float
204
+ engagementRate: Float
205
+ playedTime: Int
206
+ loads: Int
207
+ uniqueVisitors: Int
208
+ ctaConversionRate: Float
209
+ }
210
+
211
+ type LiveEvent {
212
+ aggregate(includePostEvent: Boolean): LiveStreamEventAggregate
213
+ timeseries(granularity: Granularity!): [LiveEventDataPoint]
214
+ referrerDomainRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventReferrerDomainAggregate]
215
+ utmCampaignRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventUtmCampaignAggregate]
216
+ utmSourceRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventUtmSourceAggregate]
217
+ utmMediumRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventUtmMediumAggregate]
218
+ }
219
+
220
+ type LiveStreamEvent {
221
+ liveStreamEventGlobalId: String!
222
+ liveStreamEventHashedId: String!
223
+ liveStreamEventTitle: String!
224
+ liveStreamEventRegistrationStatus: String!
225
+ liveStreamEventCreatedAt: DateTime!
226
+ liveStreamEventEndedAt: DateTime
227
+ liveStreamEventScheduledFor: DateTime!
228
+ liveStreamEventDuration: Int!
229
+ liveRecapUrl: String!
230
+ mediaHashedId: String
231
+ mediaName: String
232
+ mediaThumbnailUrl: String
233
+ mediaPlays: Int!
234
+ impressions: Int!
235
+ uniqueRegistrations: Int!
236
+ attendees: Int!
237
+ registrationRate: Float!
238
+ attendanceRate: Float!
239
+ }
240
+
241
+ type LiveStreamEventAccountAggregate {
242
+ accountKey: String!
243
+ accountName: String!
244
+ impressions: Int!
245
+ registrations: Int!
246
+ uniqueRegistrations: Int!
247
+ attendees: Int!
248
+ engagedAttendees: Int!
249
+ chatParticipants: Int!
63
250
  playedTime: Int!
64
- episodeName: String!
251
+ uniquePlayedTime: Int!
252
+ mediaPlays: Int!
253
+ }
254
+
255
+ type LiveEvents {
256
+ aggregate: LiveStreamEventAggregate
257
+ }
258
+
259
+ type LiveEventDataPoint {
260
+ timestamp: String
261
+ entries: [LiveEventTimeseriesAggregate]
262
+ }
263
+
264
+ type LiveEventTimeseriesAggregate {
265
+ impressions: Int
266
+ registrations: Int
267
+ completionRate: Float
268
+ }
269
+
270
+ type PollQuestion {
271
+ id: Int!
272
+ pollId: Int!
273
+ text: String!
274
+ responseCount: Int!
275
+ options: [PollOption!]
276
+ }
277
+
278
+ type PollOption {
279
+ id: Int!
280
+ text: String!
281
+ count: Int!
282
+ percent: Float!
283
+ }
284
+
285
+ type PollResponse {
286
+ pollId: Int!
287
+ pollQuestionId: Int!
288
+ pollOptionId: Int!
65
289
  }
66
290
 
67
291
  type VisitorPollResponse {
@@ -76,134 +300,130 @@ type VisitorPollResponse {
76
300
  pollOptionText: String!
77
301
  }
78
302
 
79
- type LivePollResponse {
80
- pollQuestionText: String
81
- pollOptionText: String
303
+ type LiveStreamEventAggregate {
304
+ registrations: Int
305
+ restrictedRegistrations: Int
306
+ chats: Int
307
+ totalWatchTime: Int
308
+ averageWatchTime: Int
309
+ chattedAttendees: Int
310
+ attendance: Int
311
+ engagementRate: Float
312
+ currentlyWatching: Int
313
+ engagedAttendees: Int
314
+ impressions: Int
315
+ eventTime: Int
316
+ attendeesHistogram: [Int]
317
+ chatHistogram: [Int]
318
+ visualFocusPlayedHistogram: [Int]
319
+ pollQuestions: [PollQuestion!]
320
+ pollResponses(visitorKey: String!): [PollResponse!]
321
+ visitorPollResponses: [VisitorPollResponse!]
322
+ qaQuestions: Int
323
+ qaAnswers: Int
324
+ annotationImpressions: Int
325
+ annotationClicks: Int
326
+ uniqueAnnotationImpressions: Int
327
+ uniqueAnnotationClicks: Int
82
328
  }
83
329
 
84
- type RelativeMediaAggregate {
330
+ type LiveEventReferrerDomainAggregate {
85
331
  accountKey: String
86
332
  accountName: String
87
- date: DateTime
88
- projectHashedId: String
89
- projectName: String
90
- mediaGlobalId: String
91
- mediaHashedId: String
92
- mediaName: String
93
- mediaType: String
94
- mediaUploadedAt: DateTime
95
- mediaDeletedAt: DateTime
96
- mediaDuration: Float
97
- mediaGroupGlobalId: String
98
- mediaThumbnailUrl: String
99
- episodeGlobalId: String
100
- episodeHashedId: String
101
- episodeTitle: String
102
- episodeUploadedAt: DateTime
103
- episodeDeletedAt: DateTime
104
- episodePublishedAt: DateTime
105
- startDate: Date!
106
- endDate: Date!
107
333
  liveStreamEventId: Int
108
- containerIsPodcastEnabled: Boolean
109
- loads: Int
110
- uniqueLoads: Int
111
- plays: Int
112
- uniquePlays: Int
113
- playedTime: Int
114
- uniquePlayedTime: Int
115
- playRate: Float
116
- uniqueVisitors: Int
117
- ctaImpressions: Int
118
- ctaConversions: Int
119
- ctaConversionRate: Float
120
- engagementRate: Float
121
- cumulativePlays: Int
122
- cumulativePlayedTime: Int
334
+ referrerDomain: String
335
+ impressions: Int
336
+ registrations: Int
337
+ attendees: Int
123
338
  }
124
339
 
125
- "Whether a lead is new or existing to Wistia"
126
- enum WistiaLeadType {
127
- NEW
128
- EXISTING
340
+ type LiveEventUtmCampaignAggregate {
341
+ accountKey: String
342
+ accountName: String
343
+ liveStreamEventId: Int
344
+ utmCampaign: String
345
+ impressions: Int
346
+ registrations: Int
347
+ attendees: Int
129
348
  }
130
349
 
131
- type ProjectAggregate {
132
- accountId: Int
350
+ type LiveEventUtmSourceAggregate {
133
351
  accountKey: String
134
352
  accountName: String
135
- projectId: Int
136
- projectHashedId: String
137
- projectName: String
138
- projectUrl: String
139
- projectCreatedAt: DateTime
140
- projectVideoCount: Int
141
- loads: Int
142
- uniqueLoads: Int
143
- plays: Int
144
- uniquePlays: Int
145
- playedTime: Int
146
- uniquePlayedTime: Int
147
- playedTimeHumanReadable: String
148
- uniquePlayedTimeHumanReadable: String
149
- replayedTimeHumanReadable: String
150
- playRate: Float
151
- uniqueVisitors: Int
152
- ctaImpressions: Int
153
- ctaConversions: Int
154
- ctaConversionRate: Float
155
- engagementRate: Float
353
+ liveStreamEventId: Int
354
+ utmSource: String
355
+ impressions: Int
356
+ registrations: Int
357
+ attendees: Int
358
+ }
359
+
360
+ type LiveEventUtmMediumAggregate {
361
+ accountKey: String
362
+ accountName: String
363
+ liveStreamEventId: Int
364
+ utmMedium: String
365
+ impressions: Int
366
+ registrations: Int
367
+ attendees: Int
156
368
  }
157
369
 
158
- type MediaFormAggregate {
370
+ type LiveEventContacts {
371
+ orderedEntriesResult(pagination: Pagination!): LiveEventContactAggregateResult
372
+ }
373
+
374
+ type LiveEventContactAggregate {
375
+ visitorKey: String
376
+ accountId: Int
377
+ correlationId: String
378
+ liveStreamEventId: Int
379
+ mediaId: Int
380
+ uniqueId: String
159
381
  firstName: String
160
382
  lastName: String
161
- email: String!
162
- convertedAt: DateTime!
163
- wistiaLeadType: WistiaLeadType!
383
+ email: String
384
+ phoneNumber: String
385
+ company: String
386
+ jobTitle: String
387
+ country: String
388
+ formFieldData: [FormFieldResponse!]!
389
+ registeredAt: DateTime
390
+ attendedAt: DateTime
391
+ attendanceStatus: String
392
+ utmCampaign: String
393
+ utmSource: String
394
+ utmMedium: String
395
+ referrerDomain: String
396
+ ipRegion: String
397
+ ipCountry: String
398
+ ipCity: String
399
+ qaAnswers: Int
400
+ engagementRate: Float
401
+ focusedRate: Float
402
+ playedTime: Int
403
+ focusedPlayedTime: Int
404
+ pollResponses: [LivePollResponse]
405
+ chatCount: Int
406
+ annotationClickCount: Int
164
407
  }
165
408
 
166
- type MediaEmbedLanguageAggregate {
167
- mediaGlobalId: String
168
- plays: Int
169
- language: String
170
- percentOfTotalPlays: Float
171
- captionsSupport: Boolean
409
+ type LivePollResponse {
410
+ pollQuestionText: String
411
+ pollOptionText: String
172
412
  }
173
413
 
174
- type LiveStreamEventAggregate {
175
- registrations: Int
176
- chats: Int
177
- totalWatchTime: Int
178
- averageWatchTime: Int
179
- chattedAttendees: Int
180
- attendance: Int
181
- engagementRate: Float
182
- currentlyWatching: Int
183
- engagedAttendees: Int
184
- impressions: Int
185
- eventTime: Int
186
- attendeesHistogram: [Int]
187
- chatHistogram: [Int]
188
- visualFocusPlayedHistogram: [Int]
189
- pollQuestions: [PollQuestion!]
190
- pollResponses(visitorKey: String!): [PollResponse!]
191
- visitorPollResponses: [VisitorPollResponse!]
192
- qaQuestions: Int
193
- qaAnswers: Int
194
- annotationImpressions: Int
195
- annotationClicks: Int
196
- uniqueAnnotationImpressions: Int
197
- uniqueAnnotationClicks: Int
414
+ type FormFieldResponse {
415
+ id: Int!
416
+ value: String!
417
+ label: String!
198
418
  }
199
419
 
200
- union RelativeMediaEventAggregateResult = RelativeAggregateEntries | AggregateError
201
-
202
420
  type LiveEventContactAggregateEntries {
203
421
  entries: [LiveEventContactAggregate]
204
422
  pageInfo: PageInfo!
205
423
  }
206
424
 
425
+ union LiveEventContactAggregateResult = LiveEventContactAggregateEntries | AggregateError
426
+
207
427
  "A metric to order traffic aggregates"
208
428
  enum TrafficMetric {
209
429
  IMPRESSIONS
@@ -211,165 +431,99 @@ enum TrafficMetric {
211
431
  ATTENDEES
212
432
  }
213
433
 
214
- "Filter by certain types in aggregation queries"
215
- enum TypeFilter {
216
- PROJECTS
217
- CHANNELS
218
- MEDIA
219
- PODCAST_EPISODE
220
- PODCAST_EPISODE_APPLICATION
221
- ACCOUNT_EMBED_LOCATION
222
- MEDIA_EMBED_LOCATION
223
- }
224
-
225
- input SearchFilter {
226
- annotations: [Boolean]
227
- autoplays: [Boolean]
228
- cta: [Boolean]
229
- eventbrite: [Boolean]
230
- loops: [Boolean]
231
- marketo: [Boolean]
232
- mediaTypes: [String]
233
- turnstile: [Boolean]
234
- contentIds: [String]
235
- tags: [String]
236
- }
237
-
238
- type Media {
239
- podcastPlays: Int
240
- }
241
-
242
- type DownloadsDatapointTimestamp {
243
- timestamp: DateTime!
244
- downloads: Int!
434
+ "The type of live export"
435
+ enum LiveExportType {
436
+ LIVE_VISITOR_POLL_RESPONSE
245
437
  }
246
438
 
247
- type PollQuestion {
248
- id: Int!
249
- pollId: Int!
250
- text: String!
251
- responseCount: Int!
252
- options: [PollOption!]
439
+ "A metric to order live stream event entries by"
440
+ enum LiveStreamEventOrderMetric {
441
+ IMPRESSIONS
442
+ UNIQUE_REGISTRATIONS
443
+ ATTENDEES
444
+ REGISTRATION_RATE
445
+ ATTENDANCE_RATE
446
+ MEDIA_PLAYS
253
447
  }
254
448
 
255
449
  "An interval of time to aggregate metrics into datapoints"
256
- enum Granularity {
257
- "1 day"
258
- P1D
259
-
450
+ enum RelativePeriod {
260
451
  "1 week (7 days)"
261
- P1W
262
-
263
- "4 weeks (28 days)"
264
- P4W
265
-
266
- "1 month"
267
- P1M
268
-
269
- "3 months (90 days)"
270
- P3M
271
-
272
- "1 year (265 days)"
273
- P1Y
274
- }
452
+ P7D
275
453
 
276
- type LiveEventTimeseriesAggregate {
277
- impressions: Int
278
- registrations: Int
279
- completionRate: Float
454
+ "30 days"
455
+ P30D
280
456
  }
281
457
 
282
- "Type of aggregate error"
283
- enum AggregateErrorType {
284
- "The queried interval exceeds the data retention period for the aggregate."
285
- INTERVAL_EXCEEDS_RETENTION
458
+ type RelativeMediaEvents {
459
+ timeseries(granularity: Granularity!, limit: Int, orderBy: MediaEventMetric): [RelativeMediaEventDatapoint]
460
+ orderedEntriesResult(orderBy: MediaEventMetric!, order: Order!, limit: Int!): RelativeMediaEventAggregateResult
461
+ aggregate: RelativeAggregate
286
462
  }
287
463
 
288
- """
289
- The `Date` scalar type represents a date. The Date appears in a JSON
290
- response as an ISO8601 formatted string, without a time component.
291
- """
292
- scalar Date
293
-
294
- type AccountEmbedLocationAggregate {
295
- accountKey: String
296
- accountName: String
297
- embedLocationCount: Int
298
- plays: Int
299
- playRate: Float
300
- engagementRate: Float
301
- playedTime: Int
302
- loads: Int
303
- uniqueVisitors: Int
304
- ctaConversionRate: Float
464
+ type RelativeMediaEventDatapoint {
465
+ relativePeriod: String
466
+ entries: [RelativeMediaAggregate]
305
467
  }
306
468
 
307
- type DownloadsDatapointEpisode {
308
- episodeId: Int!
309
- downloads: Int!
310
- episodeName: String!
469
+ type RelativeAggregateEntries {
470
+ entries: [RelativeMediaAggregate]
311
471
  }
312
472
 
313
- type PollResponse {
314
- pollId: Int!
315
- pollQuestionId: Int!
316
- pollOptionId: Int!
317
- }
473
+ union RelativeMediaEventAggregateResult = RelativeAggregateEntries | AggregateError
318
474
 
319
- type PlaysDatapointEpisode {
320
- episodeId: Int!
321
- plays: Int!
322
- episodeName: String!
323
- }
475
+ union RelativeAggregate = RelativeAccountAggregate
324
476
 
325
- type MediaEmbedLocationAggregate {
477
+ type RelativeMediaAggregate {
326
478
  accountKey: String
327
479
  accountName: String
328
- containerGlobalId: String
329
- containerHashedId: String
330
- containerName: String
331
- episodeHashedId: String
332
- episodeGlobalId: String
333
- episodeTitle: String
334
- mediaHashedId: String
480
+ date: DateTime
481
+ projectHashedId: String
482
+ projectName: String
335
483
  mediaGlobalId: String
484
+ mediaHashedId: String
336
485
  mediaName: String
486
+ mediaType: String
487
+ mediaUploadedAt: DateTime
488
+ mediaDeletedAt: DateTime
489
+ mediaDuration: Float
490
+ mediaGroupGlobalId: String
337
491
  mediaThumbnailUrl: String
338
- embedDomain: String
339
- embedPath: String
340
- embedUrl: String
492
+ episodeGlobalId: String
493
+ episodeHashedId: String
494
+ episodeTitle: String
495
+ episodeUploadedAt: DateTime
496
+ episodeDeletedAt: DateTime
497
+ episodePublishedAt: DateTime
498
+ startDate: Date!
499
+ endDate: Date!
500
+ liveStreamEventId: Int
501
+ containerIsPodcastEnabled: Boolean
502
+ loads: Int
503
+ uniqueLoads: Int
341
504
  plays: Int
342
- playRate: Float
343
- engagementRate: Float
505
+ uniquePlays: Int
344
506
  playedTime: Int
345
- loads: Int
507
+ uniquePlayedTime: Int
508
+ playRate: Float
346
509
  uniqueVisitors: Int
510
+ ctaImpressions: Int
511
+ ctaConversions: Int
347
512
  ctaConversionRate: Float
348
- pageTitle: String
349
- placement: String
350
- size: String
513
+ engagementRate: Float
514
+ cumulativePlays: Int
515
+ cumulativePlayedTime: Int
351
516
  }
352
517
 
353
- type ChannelAggregate {
354
- accountId: Int
355
- accountKey: String
356
- accountName: String
357
- channelId: Int
358
- channelHashedId: String
359
- channelCreatedAt: DateTime
360
- channelEpisodeCount: Int
361
- channelTitle: String
362
- channelPodcastEnabled: Boolean
363
- channelUrl: String
518
+ type RelativeAccountAggregate {
519
+ accountKey: String
520
+ accountName: String
364
521
  loads: Int
365
522
  uniqueLoads: Int
366
523
  plays: Int
367
524
  uniquePlays: Int
368
525
  playedTime: Int
369
526
  uniquePlayedTime: Int
370
- playedTimeHumanReadable: String
371
- uniquePlayedTimeHumanReadable: String
372
- replayedTimeHumanReadable: String
373
527
  playRate: Float
374
528
  uniqueVisitors: Int
375
529
  ctaImpressions: Int
@@ -378,157 +532,217 @@ type ChannelAggregate {
378
532
  engagementRate: Float
379
533
  }
380
534
 
381
- type PodcastEpisodeAggregate {
382
- accountKey: String
383
- accountName: String
384
- downloads: Int
385
- playableTimeDownloaded: Int
535
+ "An interval of time to aggregate metrics into datapoints"
536
+ enum Granularity {
537
+ "1 day"
538
+ P1D
539
+
540
+ "1 week (7 days)"
541
+ P1W
542
+
543
+ "4 weeks (28 days)"
544
+ P4W
545
+
546
+ "1 month"
547
+ P1M
548
+
549
+ "3 months (90 days)"
550
+ P3M
551
+
552
+ "1 year (265 days)"
553
+ P1Y
386
554
  }
387
555
 
388
- type TopEpisodesDatapoint {
389
- plays: Int!
390
- playedTime: Int!
391
- episodeId: Int!
392
- episodeName: String!
393
- mediaHashedId: String!
394
- averageEngagement: Float!
395
- publishedAt: String!
556
+ "A field to group entries by"
557
+ enum MediaEventDimension {
558
+ ACCOUNT
559
+ PROJECT
560
+ CHANNEL
561
+ EPISODE
562
+ MEDIA
563
+ ACCOUNT_EMBED_LOCATION
564
+ MEDIA_EMBED_LOCATION
565
+ MEDIA_EMBED_LANGUAGE
566
+ PODCAST_EPISODE_APPLICATION
567
+ MEDIA_REFERRER_DOMAIN
568
+ MEDIA_VIEWER_SCREEN_SIZE
569
+ MEDIA_UTM_CAMPAIGN
570
+ MEDIA_UTM_SOURCE
571
+ MEDIA_UTM_MEDIUM
396
572
  }
397
573
 
398
- type MediaEventDatapoint {
399
- timestamp: String
400
- entries: [MediaEventAggregate]
574
+ "A metric to order entries by"
575
+ enum MediaEventMetric {
576
+ PLAYS
577
+ PLAYED_TIME
578
+ PLAY_RATE
579
+ ENGAGEMENT_RATE
580
+ CTA_CONVERSION_RATE
581
+ LOADS
582
+ UNIQUE_VISITORS
583
+ DOWNLOADS
584
+ PERCENT_OF_DOWNLOADS
585
+ PLAYABLE_TIME_DOWNLOADED
586
+ PLACEMENT
587
+ SIZE
588
+ FORM_CONVERSIONS
401
589
  }
402
590
 
403
- type LiveEventDataPoint {
404
- timestamp: String
405
- entries: [LiveEventTimeseriesAggregate]
591
+ "Sort order"
592
+ enum Order {
593
+ "Ascending sort order"
594
+ ASC
595
+
596
+ "Descending sort order"
597
+ DESC
406
598
  }
407
599
 
408
- union LiveEventContactAggregateResult = LiveEventContactAggregateEntries | AggregateError
600
+ "Type of export aggregate"
601
+ enum ExportAggregate {
602
+ MEDIA
603
+ PROJECT_MEDIA
604
+ MEDIA_EMBED_LOCATION
605
+ PROJECTS
606
+ CHANNELS
607
+ PODCAST_EPISODE_APPLICATION
608
+ CHANNEL_EPISODE
609
+ PODCAST_EPISODE
610
+ MEDIA_FORM_CONVERSION
611
+ MEDIA_COMPARISON
612
+ }
409
613
 
410
- "An interval of time to aggregate metrics into datapoints"
411
- enum RelativePeriod {
412
- "1 week (7 days)"
413
- P7D
614
+ "A field to filter entries by"
615
+ enum FilterDimension {
616
+ EMBED_DOMAIN
617
+ }
414
618
 
415
- "30 days"
416
- P30D
619
+ "Operation to perform on filter"
620
+ enum Operator {
621
+ EQUALS
622
+ NOT_EQUALS
417
623
  }
418
624
 
419
- type AccountDigestStatus {
420
- name: String!
421
- status: String!
625
+ "Filter by certain types in aggregation queries"
626
+ enum TypeFilter {
627
+ PROJECTS
628
+ CHANNELS
629
+ MEDIA
630
+ PODCAST_EPISODE
631
+ PODCAST_EPISODE_APPLICATION
632
+ ACCOUNT_EMBED_LOCATION
633
+ MEDIA_EMBED_LOCATION
422
634
  }
423
635
 
424
- type ChannelMetrics {
425
- channelGlobalId: String!
426
- channelHashedId: String!
427
- plays: Int!
636
+ "Type of aggregate error"
637
+ enum AggregateErrorType {
638
+ "The queried interval exceeds the data retention period for the aggregate."
639
+ INTERVAL_EXCEEDS_RETENTION
640
+ }
641
+
642
+ "Whether a lead is new or existing to Wistia"
643
+ enum WistiaLeadType {
644
+ NEW
645
+ EXISTING
646
+ }
647
+
648
+ "Which way to paginate from a cursor"
649
+ enum CursorDirection {
650
+ BEFORE
651
+ AFTER
652
+ }
653
+
654
+ input SearchFilter {
655
+ annotations: [Boolean]
656
+ autoplays: [Boolean]
657
+ cta: [Boolean]
658
+ eventbrite: [Boolean]
659
+ loops: [Boolean]
660
+ marketo: [Boolean]
661
+ mediaTypes: [String]
662
+ turnstile: [Boolean]
663
+ contentIds: [String]
664
+ tags: [String]
428
665
  }
429
666
 
430
- type KeyValuePair {
431
- key: String
667
+ input Filter {
668
+ dimension: FilterDimension!
432
669
  value: String
670
+ operator: Operator
433
671
  }
434
672
 
435
- type RootMutationType {
436
- exportMedia(contactId: Int!, interval: Interval, searchFilter: SearchFilter, aggregate: ExportAggregate): ExportStatus
437
- exportRelativeMedia(contactId: Int!, relativePeriod: RelativePeriod!, searchFilter: SearchFilter): ExportStatus
438
- accountDigest(contactId: Int!, interval: Interval!, overrideEmail: String): AccountDigestStatus
439
- liveExport(liveStreamEventId: Int!, type: LiveExportType!, contactId: Int!): ExportStatus
673
+ input Pagination {
674
+ limit: Int!
675
+ cursor: String
676
+ direction: CursorDirection
440
677
  }
441
678
 
442
- type Channel {
443
- channelId: String
444
- interval: String
445
- priorInterval: String
446
- currentPlays: Int
447
- priorPlays: Int
448
- currentDownloads: Int
449
- priorDownloads: Int
450
- currentPlayedTime: Int
451
- priorPlayedTime: Int
452
- currentAverageSessionDuration: Int
453
- priorAverageSessionDuration: Int
454
- playsByEpisode: [PlaysDatapointEpisode]
455
- downloadsByEpisode: [DownloadsDatapointEpisode]
456
- topPlaysByApplication(limit: Int): [PlaysDatapointApplication]
457
- playsByApplication: [PlaysDatapointApplication]
458
- downloadsByApplication: [DownloadsDatapointApplication]
459
- playsOverTime: [PlaysDatapointTimestamp]
460
- downloadsOverTime: [DownloadsDatapointTimestamp]
461
- currentEmbedPlayedTime: Int
462
- currentPodcastPlayedTime: Int
463
- priorEmbedPlayedTime: Int
464
- priorPodcastPlayedTime: Int
465
- embedPlayedTimeOverTime: [PlayedTimeDatapointTimestamp]
466
- podcastPlayedTimeOverTime: [PlayedTimeDatapointTimestamp]
467
- playedTimeOverTime: [PlayedTimeDatapointTimestamp]
468
- playedTimeByEpisode: [PlayedTimeDatapointEpisode]
469
- topEpisodes: [TopEpisodesDatapoint]
679
+ type MediaEvents {
680
+ aggregate(typeFilter: TypeFilter): MediaEventAggregate
681
+ timeseries(
682
+ for: MediaEventMetric!, over: MediaEventDimension!, granularity: Granularity!, typeFilter: TypeFilter, limit: Int
683
+ ): [MediaEventDatapoint]
684
+ orderedEntries(
685
+ groupBy: MediaEventDimension!, orderBy: MediaEventMetric!, order: Order!, limit: Int!, excludeAggregatesWithoutStats: Boolean, filters: [Filter]
686
+ ): [MediaEventAggregate]
687
+ orderedEntriesResult(
688
+ groupBy: MediaEventDimension!, orderBy: MediaEventMetric!, order: Order!, limit: Int!, excludeAggregatesWithoutStats: Boolean, filters: [Filter]
689
+ ): MediaEventAggregateResult
470
690
  }
471
691
 
472
- type RootQueryType {
473
- channel(channelHashedId: String!, interval: Interval): Channel
474
- channels(channelGlobalIds: [String]!): [ChannelMetrics!]!
475
- episodes(episodeGlobalIds: [String]!): [EpisodeMetrics!]!
476
- media(mediaId: Int!): Media
477
- medias(searchFilter: SearchFilter): Medias
478
- projectsCount: Int
479
- channelsCount: Int
480
- liveStreamEventsCount(interval: Interval): Int
481
- mediaEvents(interval: Interval, searchFilter: SearchFilter): MediaEvents
482
- liveEvents(liveStreamEventIds: [Int]!, includePostEvent: Boolean): LiveEvents
483
- liveEvent(liveStreamEventId: Int!, includePostEvent: Boolean): LiveEvent
484
- liveStreamEvents(limit: Int, interval: Interval, orderBy: LiveStreamEventOrderMetric, order: Order): [LiveStreamEvent!]!
485
- liveStreamEventsAccountAggregate(limit: Int, interval: Interval): LiveStreamEventAccountAggregate!
486
- liveEventContacts(liveStreamEventId: Int!): LiveEventContacts
487
- mediaFormConversions(mediaGlobalId: String!, interval: Interval!, pagination: Pagination): MediaFormAggregateResult
488
- relativeMediaEvents(relativePeriod: RelativePeriod!, searchFilter: SearchFilter): RelativeMediaEvents
489
- exportStatus(exportId: Int!): ExportStatus
692
+ type MediaEventDatapoint {
693
+ timestamp: String
694
+ entries: [MediaEventAggregate]
490
695
  }
491
696
 
492
- type MediaReferrerDomainAggregate {
697
+ union MediaEventAggregate = AccountAggregate | ChannelAggregate | EpisodeAggregate | MediaAggregate | PodcastEpisodeAggregate | PodcastEpisodeApplicationAggregate | ProjectAggregate | AccountEmbedLocationAggregate | MediaEmbedLocationAggregate | MediaReferrerDomainAggregate | MediaEmbedLanguageAggregate | MediaViewerScreenSizeAggregate | MediaUtmCampaignAggregate | MediaUtmSourceAggregate | MediaUtmMediumAggregate
698
+
699
+ type AggregateEntries {
700
+ entries: [MediaEventAggregate]
701
+ }
702
+
703
+ union MediaEventAggregateResult = AggregateEntries | AggregateError
704
+
705
+ type AccountAggregate {
493
706
  accountKey: String
494
707
  accountName: String
495
- containerGlobalId: String
496
- containerHashedId: String
497
- containerName: String
498
- episodeHashedId: String
499
- episodeGlobalId: String
500
- episodeTitle: String
501
- mediaHashedId: String
502
- mediaGlobalId: String
503
- mediaName: String
504
- referrerDomain: String
708
+ loads: Int
709
+ uniqueLoads: Int
505
710
  plays: Int
506
- playRate: Float
507
- engagementRate: Float
711
+ uniquePlays: Int
508
712
  playedTime: Int
509
- loads: Int
713
+ uniquePlayedTime: Int
714
+ playRate: Float
510
715
  uniqueVisitors: Int
716
+ mediaCount: Int
717
+ ctaImpressions: Int
718
+ ctaConversions: Int
511
719
  ctaConversionRate: Float
720
+ engagementRate: Float
721
+ formImpressions: Int
722
+ formConversions: Int
723
+ formConversionRate: Float
512
724
  }
513
725
 
514
- type EpisodeAggregate {
726
+ type ChannelAggregate {
727
+ accountId: Int
515
728
  accountKey: String
516
729
  accountName: String
730
+ channelId: Int
517
731
  channelHashedId: String
732
+ channelCreatedAt: DateTime
733
+ channelEpisodeCount: Int
518
734
  channelTitle: String
519
735
  channelPodcastEnabled: Boolean
520
- episodeGlobalId: String
521
- episodeHashedId: String
522
- episodeTitle: String
523
- episodePublishedAt: DateTime
524
- projectHashedId: String
525
- projectName: String
736
+ channelUrl: String
526
737
  loads: Int
527
738
  uniqueLoads: Int
528
739
  plays: Int
529
740
  uniquePlays: Int
530
741
  playedTime: Int
531
742
  uniquePlayedTime: Int
743
+ playedTimeHumanReadable: String
744
+ uniquePlayedTimeHumanReadable: String
745
+ replayedTimeHumanReadable: String
532
746
  playRate: Float
533
747
  uniqueVisitors: Int
534
748
  ctaImpressions: Int
@@ -537,63 +751,18 @@ type EpisodeAggregate {
537
751
  engagementRate: Float
538
752
  }
539
753
 
540
- """
541
- The `DateTime` scalar type represents a date and time in the UTC
542
- timezone. The DateTime appears in a JSON response as an ISO8601 formatted
543
- string, including UTC timezone ("Z"). The parsed date and time string will
544
- be converted to UTC if there is an offset.
545
- """
546
- scalar DateTime
547
-
548
- type MediaUtmCampaignAggregate {
754
+ type EpisodeAggregate {
549
755
  accountKey: String
550
756
  accountName: String
551
- containerGlobalId: String
552
- containerHashedId: String
553
- containerName: String
554
- episodeHashedId: String
757
+ channelHashedId: String
758
+ channelTitle: String
759
+ channelPodcastEnabled: Boolean
555
760
  episodeGlobalId: String
761
+ episodeHashedId: String
556
762
  episodeTitle: String
557
- mediaHashedId: String
558
- mediaGlobalId: String
559
- mediaName: String
560
- utmCampaign: String
561
- plays: Int
562
- playRate: Float
563
- engagementRate: Float
564
- playedTime: Int
565
- loads: Int
566
- uniqueVisitors: Int
567
- ctaConversionRate: Float
568
- }
569
-
570
- type LiveStreamEventAccountAggregate {
571
- accountKey: String!
572
- accountName: String!
573
- impressions: Int!
574
- registrations: Int!
575
- uniqueRegistrations: Int!
576
- attendees: Int!
577
- engagedAttendees: Int!
578
- chatParticipants: Int!
579
- playedTime: Int!
580
- uniquePlayedTime: Int!
581
- mediaPlays: Int!
582
- }
583
-
584
- type LiveEventUtmMediumAggregate {
585
- accountKey: String
586
- accountName: String
587
- liveStreamEventId: Int
588
- utmMedium: String
589
- impressions: Int
590
- registrations: Int
591
- attendees: Int
592
- }
593
-
594
- type RelativeAccountAggregate {
595
- accountKey: String
596
- accountName: String
763
+ episodePublishedAt: DateTime
764
+ projectHashedId: String
765
+ projectName: String
597
766
  loads: Int
598
767
  uniqueLoads: Int
599
768
  plays: Int
@@ -608,181 +777,49 @@ type RelativeAccountAggregate {
608
777
  engagementRate: Float
609
778
  }
610
779
 
611
- type MediaViewerScreenSizeAggregate {
780
+ type PodcastEpisodeAggregate {
612
781
  accountKey: String
613
782
  accountName: String
614
- containerGlobalId: String
615
- containerHashedId: String
616
- containerName: String
617
- episodeHashedId: String
618
- episodeGlobalId: String
619
- episodeTitle: String
620
- mediaHashedId: String
621
- mediaGlobalId: String
622
- mediaName: String
623
- viewerScreenSize: String
624
- plays: Int
625
- playRate: Float
626
- engagementRate: Float
627
- playedTime: Int
628
- loads: Int
629
- uniqueVisitors: Int
630
- ctaConversionRate: Float
783
+ downloads: Int
784
+ playableTimeDownloaded: Int
631
785
  }
632
786
 
633
- type MediaUtmMediumAggregate {
787
+ type PodcastEpisodeApplicationAggregate {
634
788
  accountKey: String
635
789
  accountName: String
636
- containerGlobalId: String
637
- containerHashedId: String
638
- containerName: String
639
- episodeHashedId: String
640
- episodeGlobalId: String
641
- episodeTitle: String
642
- mediaHashedId: String
643
- mediaGlobalId: String
644
- mediaName: String
645
- utmMedium: String
646
- plays: Int
647
- playRate: Float
648
- engagementRate: Float
649
- playedTime: Int
650
- loads: Int
651
- uniqueVisitors: Int
652
- ctaConversionRate: Float
790
+ application: String
791
+ downloads: Int
792
+ playableTimeDownloaded: Int
793
+ percentOfDownloads: Float
653
794
  }
654
795
 
655
- type AccountAggregate {
796
+ type ProjectAggregate {
797
+ accountId: Int
656
798
  accountKey: String
657
799
  accountName: String
800
+ projectId: Int
801
+ projectHashedId: String
802
+ projectName: String
803
+ projectUrl: String
804
+ projectCreatedAt: DateTime
805
+ projectVideoCount: Int
658
806
  loads: Int
659
807
  uniqueLoads: Int
660
808
  plays: Int
661
809
  uniquePlays: Int
662
810
  playedTime: Int
663
811
  uniquePlayedTime: Int
812
+ playedTimeHumanReadable: String
813
+ uniquePlayedTimeHumanReadable: String
814
+ replayedTimeHumanReadable: String
664
815
  playRate: Float
665
- uniqueVisitors: Int
666
- mediaCount: Int
667
- ctaImpressions: Int
668
- ctaConversions: Int
669
- ctaConversionRate: Float
670
- engagementRate: Float
671
- formImpressions: Int
672
- formConversions: Int
673
- formConversionRate: Float
674
- }
675
-
676
- type LiveEvent {
677
- aggregate(includePostEvent: Boolean): LiveStreamEventAggregate
678
- timeseries(granularity: Granularity!): [LiveEventDataPoint]
679
- referrerDomainRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventReferrerDomainAggregate]
680
- utmCampaignRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventUtmCampaignAggregate]
681
- utmSourceRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventUtmSourceAggregate]
682
- utmMediumRegistrations(orderBy: TrafficMetric!, order: Order!): [LiveEventUtmMediumAggregate]
683
- }
684
-
685
- type MediaFormAggregateResult {
686
- pageInfo: PageInfo!
687
- entries: [MediaFormAggregate]
688
- }
689
-
690
- type RelativeMediaEventDatapoint {
691
- relativePeriod: String
692
- entries: [RelativeMediaAggregate]
693
- }
694
-
695
- type RelativeMediaEvents {
696
- timeseries(granularity: Granularity!, limit: Int, orderBy: MediaEventMetric): [RelativeMediaEventDatapoint]
697
- orderedEntriesResult(orderBy: MediaEventMetric!, order: Order!, limit: Int!): RelativeMediaEventAggregateResult
698
- aggregate: RelativeAggregate
699
- }
700
-
701
- type EpisodeMetrics {
702
- episodeGlobalId: String!
703
- episodeHashedId: String!
704
- plays: Int!
705
- }
706
-
707
- type RelativeAggregateEntries {
708
- entries: [RelativeMediaAggregate]
709
- }
710
-
711
- type AggregateEntries {
712
- entries: [MediaEventAggregate]
713
- }
714
-
715
- type AggregateError {
716
- error: AggregateErrorType!
717
- message: String!
718
- }
719
-
720
- type PlaysDatapointTimestamp {
721
- timestamp: DateTime!
722
- plays: Int!
723
- }
724
-
725
- type PlayedTimeDatapointTimestamp {
726
- timestamp: DateTime!
727
- playedTime: Int!
728
- }
729
-
730
- "A field to group entries by"
731
- enum MediaEventDimension {
732
- ACCOUNT
733
- PROJECT
734
- CHANNEL
735
- EPISODE
736
- MEDIA
737
- ACCOUNT_EMBED_LOCATION
738
- MEDIA_EMBED_LOCATION
739
- MEDIA_EMBED_LANGUAGE
740
- PODCAST_EPISODE_APPLICATION
741
- MEDIA_REFERRER_DOMAIN
742
- MEDIA_VIEWER_SCREEN_SIZE
743
- MEDIA_UTM_CAMPAIGN
744
- MEDIA_UTM_SOURCE
745
- MEDIA_UTM_MEDIUM
746
- }
747
-
748
- "Which way to paginate from a cursor"
749
- enum CursorDirection {
750
- BEFORE
751
- AFTER
752
- }
753
-
754
- "A field to filter entries by"
755
- enum FilterDimension {
756
- EMBED_DOMAIN
757
- }
758
-
759
- type DownloadsDatapointApplication {
760
- application: String!
761
- downloads: Int!
762
- }
763
-
764
- type PlaysDatapointApplication {
765
- application: String!
766
- plays: Int!
767
- }
768
-
769
- type LiveEventUtmSourceAggregate {
770
- accountKey: String
771
- accountName: String
772
- liveStreamEventId: Int
773
- utmSource: String
774
- impressions: Int
775
- registrations: Int
776
- attendees: Int
777
- }
778
-
779
- "The type of live export"
780
- enum LiveExportType {
781
- LIVE_VISITOR_POLL_RESPONSE
816
+ uniqueVisitors: Int
817
+ ctaImpressions: Int
818
+ ctaConversions: Int
819
+ ctaConversionRate: Float
820
+ engagementRate: Float
782
821
  }
783
822
 
784
- union RelativeAggregate = RelativeAccountAggregate
785
-
786
823
  type MediaAggregate {
787
824
  accountKey: String
788
825
  accountName: String
@@ -822,178 +859,142 @@ type MediaAggregate {
822
859
  formConversionRate: Float
823
860
  }
824
861
 
825
- type MediaUtmSourceAggregate {
826
- accountKey: String
827
- accountName: String
828
- containerGlobalId: String
829
- containerHashedId: String
830
- containerName: String
831
- episodeHashedId: String
832
- episodeGlobalId: String
833
- episodeTitle: String
834
- mediaHashedId: String
835
- mediaGlobalId: String
836
- mediaName: String
837
- utmSource: String
838
- plays: Int
839
- playRate: Float
840
- engagementRate: Float
841
- playedTime: Int
842
- loads: Int
843
- uniqueVisitors: Int
844
- ctaConversionRate: Float
862
+ type PageInfo {
863
+ startCursor: String
864
+ endCursor: String
865
+ hasNextPage: Boolean!
866
+ hasPreviousPage: Boolean!
845
867
  }
846
868
 
847
- type LiveEventContactAggregate {
848
- visitorKey: String
849
- accountId: Int
850
- correlationId: String
851
- liveStreamEventId: Int
852
- mediaId: Int
853
- uniqueId: String
869
+ type MediaFormAggregateResult {
870
+ pageInfo: PageInfo!
871
+ entries: [MediaFormAggregate]
872
+ }
873
+
874
+ type MediaFormAggregate {
854
875
  firstName: String
855
876
  lastName: String
856
- email: String
857
- phoneNumber: String
858
- company: String
859
- jobTitle: String
860
- country: String
861
- formFieldData: [KeyValuePair!]!
862
- registeredAt: DateTime
863
- attendedAt: DateTime
864
- attendanceStatus: String
865
- utmCampaign: String
866
- utmSource: String
867
- utmMedium: String
868
- referrerDomain: String
869
- ipRegion: String
870
- ipCountry: String
871
- ipCity: String
872
- qaAnswers: Int
873
- engagementRate: Float
874
- focusedRate: Float
875
- playedTime: Int
876
- focusedPlayedTime: Int
877
- pollResponses: [LivePollResponse]
878
- chatCount: Int
879
- annotationClickCount: Int
877
+ email: String!
878
+ convertedAt: DateTime!
879
+ wistiaLeadType: WistiaLeadType!
880
880
  }
881
881
 
882
- "Type of export aggregate"
883
- enum ExportAggregate {
884
- MEDIA
885
- PROJECT_MEDIA
886
- MEDIA_EMBED_LOCATION
887
- PROJECTS
888
- CHANNELS
889
- PODCAST_EPISODE_APPLICATION
890
- CHANNEL_EPISODE
891
- PODCAST_EPISODE
892
- MEDIA_FORM_CONVERSION
893
- MEDIA_COMPARISON
882
+ type AggregateError {
883
+ error: AggregateErrorType!
884
+ message: String!
894
885
  }
895
886
 
896
- union MediaEventAggregate = AccountAggregate | ChannelAggregate | EpisodeAggregate | MediaAggregate | PodcastEpisodeAggregate | PodcastEpisodeApplicationAggregate | ProjectAggregate | AccountEmbedLocationAggregate | MediaEmbedLocationAggregate | MediaReferrerDomainAggregate | MediaEmbedLanguageAggregate | MediaViewerScreenSizeAggregate | MediaUtmCampaignAggregate | MediaUtmSourceAggregate | MediaUtmMediumAggregate
887
+ type PlaysDatapointTimestamp {
888
+ timestamp: DateTime!
889
+ plays: Int!
890
+ }
897
891
 
898
- type LiveStreamEvent {
899
- liveStreamEventGlobalId: String!
900
- liveStreamEventHashedId: String!
901
- liveStreamEventTitle: String!
902
- liveStreamEventRegistrationStatus: String!
903
- liveStreamEventCreatedAt: DateTime!
904
- liveStreamEventEndedAt: DateTime
905
- liveStreamEventScheduledFor: DateTime!
906
- liveStreamEventDuration: Int!
907
- liveRecapUrl: String!
908
- mediaHashedId: String
909
- mediaName: String
910
- mediaThumbnailUrl: String
911
- mediaPlays: Int!
912
- impressions: Int!
913
- uniqueRegistrations: Int!
914
- attendees: Int!
915
- registrationRate: Float!
916
- attendanceRate: Float!
892
+ type DownloadsDatapointTimestamp {
893
+ timestamp: DateTime!
894
+ downloads: Int!
917
895
  }
918
896
 
919
- union MediaEventAggregateResult = AggregateEntries | AggregateError
897
+ type PlaysDatapointEpisode {
898
+ episodeId: Int!
899
+ plays: Int!
900
+ episodeName: String!
901
+ }
920
902
 
921
- type MediaEvents {
922
- aggregate(typeFilter: TypeFilter): MediaEventAggregate
923
- timeseries(
924
- for: MediaEventMetric!, over: MediaEventDimension!, granularity: Granularity!, typeFilter: TypeFilter, limit: Int
925
- ): [MediaEventDatapoint]
926
- orderedEntries(
927
- groupBy: MediaEventDimension!, orderBy: MediaEventMetric!, order: Order!, limit: Int!, excludeAggregatesWithoutStats: Boolean, filters: [Filter]
928
- ): [MediaEventAggregate]
929
- orderedEntriesResult(
930
- groupBy: MediaEventDimension!, orderBy: MediaEventMetric!, order: Order!, limit: Int!, excludeAggregatesWithoutStats: Boolean, filters: [Filter]
931
- ): MediaEventAggregateResult
903
+ type DownloadsDatapointEpisode {
904
+ episodeId: Int!
905
+ downloads: Int!
906
+ episodeName: String!
932
907
  }
933
908
 
934
- type ExportStatus {
935
- exportId: Int
936
- name: String!
937
- status: String!
938
- url: String
909
+ type DownloadsDatapointApplication {
910
+ application: String!
911
+ downloads: Int!
939
912
  }
940
913
 
941
- type LiveEventContacts {
942
- orderedEntriesResult(pagination: Pagination!): LiveEventContactAggregateResult
914
+ type PlaysDatapointApplication {
915
+ application: String!
916
+ plays: Int!
943
917
  }
944
918
 
945
- type Medias {
946
- totalCount: Int
919
+ type PlayedTimeDatapointTimestamp {
920
+ timestamp: DateTime!
921
+ playedTime: Int!
947
922
  }
948
923
 
949
- "A metric to order live stream event entries by"
950
- enum LiveStreamEventOrderMetric {
951
- IMPRESSIONS
952
- UNIQUE_REGISTRATIONS
953
- ATTENDEES
954
- REGISTRATION_RATE
955
- ATTENDANCE_RATE
956
- MEDIA_PLAYS
924
+ type PlayedTimeDatapointEpisode {
925
+ episodeId: Int!
926
+ playedTime: Int!
927
+ episodeName: String!
957
928
  }
958
929
 
959
- type LiveEvents {
960
- aggregate: LiveStreamEventAggregate
930
+ type TopEpisodesDatapoint {
931
+ plays: Int!
932
+ playedTime: Int!
933
+ episodeId: Int!
934
+ episodeName: String!
935
+ mediaHashedId: String!
936
+ averageEngagement: Float!
937
+ publishedAt: String!
961
938
  }
962
939
 
963
- "A metric to order entries by"
964
- enum MediaEventMetric {
965
- PLAYS
966
- PLAYED_TIME
967
- PLAY_RATE
968
- ENGAGEMENT_RATE
969
- CTA_CONVERSION_RATE
970
- LOADS
971
- UNIQUE_VISITORS
972
- DOWNLOADS
973
- PERCENT_OF_DOWNLOADS
974
- PLAYABLE_TIME_DOWNLOADED
975
- PLACEMENT
976
- SIZE
977
- FORM_CONVERSIONS
940
+ type Channel {
941
+ channelId: String
942
+ interval: String
943
+ priorInterval: String
944
+ currentPlays: Int
945
+ priorPlays: Int
946
+ currentDownloads: Int
947
+ priorDownloads: Int
948
+ currentPlayedTime: Int
949
+ priorPlayedTime: Int
950
+ currentAverageSessionDuration: Int
951
+ priorAverageSessionDuration: Int
952
+ playsByEpisode: [PlaysDatapointEpisode]
953
+ downloadsByEpisode: [DownloadsDatapointEpisode]
954
+ topPlaysByApplication(limit: Int): [PlaysDatapointApplication]
955
+ playsByApplication: [PlaysDatapointApplication]
956
+ downloadsByApplication: [DownloadsDatapointApplication]
957
+ playsOverTime: [PlaysDatapointTimestamp]
958
+ downloadsOverTime: [DownloadsDatapointTimestamp]
959
+ currentEmbedPlayedTime: Int
960
+ currentPodcastPlayedTime: Int
961
+ priorEmbedPlayedTime: Int
962
+ priorPodcastPlayedTime: Int
963
+ embedPlayedTimeOverTime: [PlayedTimeDatapointTimestamp]
964
+ podcastPlayedTimeOverTime: [PlayedTimeDatapointTimestamp]
965
+ playedTimeOverTime: [PlayedTimeDatapointTimestamp]
966
+ playedTimeByEpisode: [PlayedTimeDatapointEpisode]
967
+ topEpisodes: [TopEpisodesDatapoint]
978
968
  }
979
969
 
980
- "Sort order"
981
- enum Order {
982
- "Ascending sort order"
983
- ASC
970
+ type Media {
971
+ podcastPlays: Int
972
+ }
984
973
 
985
- "Descending sort order"
986
- DESC
974
+ type Medias {
975
+ totalCount: Int
987
976
  }
988
977
 
989
- input Filter {
990
- dimension: FilterDimension!
991
- value: String
992
- operator: Operator
978
+ type ExportStatus {
979
+ exportId: Int
980
+ name: String!
981
+ status: String!
982
+ url: String
993
983
  }
994
984
 
995
- "Operation to perform on filter"
996
- enum Operator {
997
- EQUALS
998
- NOT_EQUALS
985
+ type AccountDigestStatus {
986
+ name: String!
987
+ status: String!
988
+ }
989
+
990
+ type ChannelMetrics {
991
+ channelGlobalId: String!
992
+ channelHashedId: String!
993
+ plays: Int!
994
+ }
995
+
996
+ type EpisodeMetrics {
997
+ episodeGlobalId: String!
998
+ episodeHashedId: String!
999
+ plays: Int!
999
1000
  }