@pushwoosh/rpc-gateway-statistics-api 1.3.740 → 1.3.742

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.
package/data.js CHANGED
@@ -3274,10 +3274,16 @@ export const data = {
3274
3274
  },
3275
3275
  "GetMessageDeliveryFunnel": {
3276
3276
  "request": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelRequest",
3277
- "response": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse",
3277
+ "response": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse",
3278
3278
  "method": "post",
3279
3279
  "path": "/api/v2/statistics/messages/getDeliveryFunnel"
3280
3280
  },
3281
+ "GetCampaignDeliveryFunnel": {
3282
+ "request": "pushwoosh.statistics.statistics.v2.statistics.GetCampaignDeliveryFunnelRequest",
3283
+ "response": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse",
3284
+ "method": "post",
3285
+ "path": "/api/v2/statistics/messages/getCampaignDeliveryFunnel"
3286
+ },
3281
3287
  "GetMessageDeliveryTimeline": {
3282
3288
  "request": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryTimelineRequest",
3283
3289
  "response": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryTimelineResponse",
@@ -4120,7 +4126,7 @@ export const data = {
4120
4126
  }
4121
4127
  }
4122
4128
  },
4123
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Stage": {
4129
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Stage": {
4124
4130
  "type": "E",
4125
4131
  "values": [
4126
4132
  "STAGE_UNSPECIFIED",
@@ -4132,7 +4138,7 @@ export const data = {
4132
4138
  "STAGE_INTERACTIONS"
4133
4139
  ]
4134
4140
  },
4135
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Kind": {
4141
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Kind": {
4136
4142
  "type": "E",
4137
4143
  "values": [
4138
4144
  "KIND_UNSPECIFIED",
@@ -4140,7 +4146,7 @@ export const data = {
4140
4146
  "KIND_REASON"
4141
4147
  ]
4142
4148
  },
4143
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.FunnelState": {
4149
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.FunnelState": {
4144
4150
  "type": "E",
4145
4151
  "values": [
4146
4152
  "FUNNEL_STATE_UNSPECIFIED",
@@ -4149,7 +4155,7 @@ export const data = {
4149
4155
  "FUNNEL_STATE_EXPIRED"
4150
4156
  ]
4151
4157
  },
4152
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.DeliveriesForm": {
4158
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.DeliveriesForm": {
4153
4159
  "type": "E",
4154
4160
  "values": [
4155
4161
  "DELIVERIES_FORM_UNSPECIFIED",
@@ -4157,7 +4163,7 @@ export const data = {
4157
4163
  "DELIVERIES_FORM_BASIC"
4158
4164
  ]
4159
4165
  },
4160
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.BasicFormReason": {
4166
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.BasicFormReason": {
4161
4167
  "type": "E",
4162
4168
  "values": [
4163
4169
  "BASIC_FORM_REASON_UNSPECIFIED",
@@ -4167,7 +4173,7 @@ export const data = {
4167
4173
  "BASIC_FORM_REASON_NOT_APPLICABLE"
4168
4174
  ]
4169
4175
  },
4170
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Channel": {
4176
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Channel": {
4171
4177
  "type": "E",
4172
4178
  "values": [
4173
4179
  "CHANNEL_UNSPECIFIED",
@@ -4177,31 +4183,31 @@ export const data = {
4177
4183
  "CHANNEL_OTHER"
4178
4184
  ]
4179
4185
  },
4180
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.ChannelFunnel": {
4186
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.ChannelFunnel": {
4181
4187
  "type": "I",
4182
4188
  "fields": {
4183
4189
  "channel": {
4184
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Channel"
4190
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Channel"
4185
4191
  },
4186
4192
  "funnel": {
4187
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.StageItem",
4193
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.StageItem",
4188
4194
  "array": true
4189
4195
  },
4190
4196
  "deliveriesForm": {
4191
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.DeliveriesForm"
4197
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.DeliveriesForm"
4192
4198
  },
4193
4199
  "basicFormReason": {
4194
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.BasicFormReason"
4200
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.BasicFormReason"
4195
4201
  },
4196
4202
  "confirmedDeliveries": {
4197
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.ConfirmedDeliveries"
4203
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.ConfirmedDeliveries"
4198
4204
  },
4199
4205
  "emailBounces": {
4200
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.EmailBounces"
4206
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.EmailBounces"
4201
4207
  }
4202
4208
  }
4203
4209
  },
4204
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.PlatformCount": {
4210
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.PlatformCount": {
4205
4211
  "type": "I",
4206
4212
  "fields": {
4207
4213
  "platform": {
@@ -4212,11 +4218,11 @@ export const data = {
4212
4218
  }
4213
4219
  }
4214
4220
  },
4215
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Piece": {
4221
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Piece": {
4216
4222
  "type": "I",
4217
4223
  "fields": {
4218
4224
  "kind": {
4219
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Kind"
4225
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Kind"
4220
4226
  },
4221
4227
  "category": {
4222
4228
  "type": "string"
@@ -4225,12 +4231,12 @@ export const data = {
4225
4231
  "type": "number"
4226
4232
  },
4227
4233
  "platforms": {
4228
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.PlatformCount",
4234
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.PlatformCount",
4229
4235
  "array": true
4230
4236
  }
4231
4237
  }
4232
4238
  },
4233
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.ErrorRow": {
4239
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.ErrorRow": {
4234
4240
  "type": "I",
4235
4241
  "fields": {
4236
4242
  "category": {
@@ -4240,47 +4246,47 @@ export const data = {
4240
4246
  "type": "number"
4241
4247
  },
4242
4248
  "platforms": {
4243
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.PlatformCount",
4249
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.PlatformCount",
4244
4250
  "array": true
4245
4251
  }
4246
4252
  }
4247
4253
  },
4248
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.StageItem": {
4254
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.StageItem": {
4249
4255
  "type": "I",
4250
4256
  "fields": {
4251
4257
  "stage": {
4252
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Stage"
4258
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Stage"
4253
4259
  },
4254
4260
  "count": {
4255
4261
  "type": "number"
4256
4262
  },
4257
4263
  "pieces": {
4258
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.Piece",
4264
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.Piece",
4259
4265
  "array": true
4260
4266
  },
4261
4267
  "errors": {
4262
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.ErrorRow",
4268
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.ErrorRow",
4263
4269
  "array": true
4264
4270
  },
4265
4271
  "platforms": {
4266
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.PlatformCount",
4272
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.PlatformCount",
4267
4273
  "array": true
4268
4274
  }
4269
4275
  }
4270
4276
  },
4271
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.ConfirmedDeliveries": {
4277
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.ConfirmedDeliveries": {
4272
4278
  "type": "I",
4273
4279
  "fields": {
4274
4280
  "count": {
4275
4281
  "type": "number"
4276
4282
  },
4277
4283
  "platforms": {
4278
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.PlatformCount",
4284
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.PlatformCount",
4279
4285
  "array": true
4280
4286
  }
4281
4287
  }
4282
4288
  },
4283
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.EmailBounces": {
4289
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.EmailBounces": {
4284
4290
  "type": "I",
4285
4291
  "fields": {
4286
4292
  "hard": {
@@ -4294,11 +4300,11 @@ export const data = {
4294
4300
  }
4295
4301
  }
4296
4302
  },
4297
- "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse": {
4303
+ "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse": {
4298
4304
  "type": "I",
4299
4305
  "fields": {
4300
4306
  "channels": {
4301
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.ChannelFunnel",
4307
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.ChannelFunnel",
4302
4308
  "array": true
4303
4309
  },
4304
4310
  "windowFrom": {
@@ -4308,7 +4314,19 @@ export const data = {
4308
4314
  "type": "Date"
4309
4315
  },
4310
4316
  "funnelState": {
4311
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.FunnelState"
4317
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.FunnelState"
4318
+ }
4319
+ }
4320
+ },
4321
+ "pushwoosh.statistics.statistics.v2.statistics.GetCampaignDeliveryFunnelRequest": {
4322
+ "type": "I",
4323
+ "fields": {
4324
+ "campaignCode": {
4325
+ "type": "string"
4326
+ },
4327
+ "platforms": {
4328
+ "type": "number",
4329
+ "array": true
4312
4330
  }
4313
4331
  }
4314
4332
  },
@@ -4399,7 +4417,7 @@ export const data = {
4399
4417
  "type": "Date"
4400
4418
  },
4401
4419
  "funnelState": {
4402
- "type": "pushwoosh.statistics.statistics.v2.statistics.GetMessageDeliveryFunnelResponse.FunnelState"
4420
+ "type": "pushwoosh.statistics.statistics.v2.statistics.GetDeliveryFunnelResponse.FunnelState"
4403
4421
  },
4404
4422
  "interval": {
4405
4423
  "type": "pushwoosh.statistics.types.TimeInterval"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushwoosh/rpc-gateway-statistics-api",
3
- "version": "1.3.740",
3
+ "version": "1.3.742",
4
4
  "description": "Statistics API gateway HTTP API Types and Data",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -12,7 +12,8 @@ export type StatisticsService_GetMAUStatistics = RpcMethod<GetMAUStatisticsReque
12
12
  export type StatisticsService_GetDAUStatistics = RpcMethod<GetDAUStatisticsRequest, GetDAUStatisticsResponse>;
13
13
  export type StatisticsService_GetPushApplicationStatistics = RpcMethod<GetPushApplicationStatisticsRequest, GetPushApplicationStatisticsResponse>;
14
14
  export type StatisticsService_GetEmailApplicationStatistics = RpcMethod<GetEmailApplicationStatisticsRequest, GetEmailApplicationStatisticsResponse>;
15
- export type StatisticsService_GetMessageDeliveryFunnel = RpcMethod<GetMessageDeliveryFunnelRequest, GetMessageDeliveryFunnelResponse>;
15
+ export type StatisticsService_GetMessageDeliveryFunnel = RpcMethod<GetMessageDeliveryFunnelRequest, GetDeliveryFunnelResponse>;
16
+ export type StatisticsService_GetCampaignDeliveryFunnel = RpcMethod<GetCampaignDeliveryFunnelRequest, GetDeliveryFunnelResponse>;
16
17
  export type StatisticsService_GetMessageDeliveryTimeline = RpcMethod<GetMessageDeliveryTimelineRequest, GetMessageDeliveryTimelineResponse>;
17
18
  export type StatisticsService_GetActiveAudience = RpcMethod<GetActiveAudienceRequest, GetActiveAudienceResponse>;
18
19
  /** StatisticsService provides various statistics operations */
@@ -46,6 +47,11 @@ export interface StatisticsService {
46
47
  * -> opened -> interactions. A stage equals the sum of its pieces, all of them.
47
48
  */
48
49
  GetMessageDeliveryFunnel: StatisticsService_GetMessageDeliveryFunnel;
50
+ /**
51
+ * GetCampaignDeliveryFunnel sums GetMessageDeliveryFunnel over a campaign's messages.
52
+ * Uniques stay unique within a message, so one subscriber can count more than once.
53
+ */
54
+ GetCampaignDeliveryFunnel: StatisticsService_GetCampaignDeliveryFunnel;
49
55
  /**
50
56
  * GetMessageDeliveryTimeline returns the same message's numbers over time: the funnel
51
57
  * answers "how many", this answers "when".
@@ -574,7 +580,7 @@ export type GetMessageDeliveryFunnelRequest = {
574
580
  * Stage is a funnel level. Stages always come in the order they appear in the
575
581
  * funnel array; the numbers here do not define that order.
576
582
  */
577
- export type GetMessageDeliveryFunnelResponse_Stage = 'STAGE_UNSPECIFIED'
583
+ export type GetDeliveryFunnelResponse_Stage = 'STAGE_UNSPECIFIED'
578
584
  /** taken into processing */
579
585
  | 'STAGE_AUDIENCE'
580
586
  /** accepted by the gateway */
@@ -594,7 +600,7 @@ export type GetMessageDeliveryFunnelResponse_Stage = 'STAGE_UNSPECIFIED'
594
600
  * Kind tells how a piece relates to its stage total. Every piece is a summand: the
595
601
  * pieces of a stage are disjoint and add up to its count.
596
602
  */
597
- export type GetMessageDeliveryFunnelResponse_Kind = 'KIND_UNSPECIFIED'
603
+ export type GetDeliveryFunnelResponse_Kind = 'KIND_UNSPECIFIED'
598
604
  /** moved on to the next stage */
599
605
  | 'KIND_PASSED'
600
606
  /** did not move on, for this reason */
@@ -603,7 +609,7 @@ export type GetMessageDeliveryFunnelResponse_Kind = 'KIND_UNSPECIFIED'
603
609
  * FunnelState describes the response before any stage is read: an empty funnel has two
604
610
  * very different meanings and one shape.
605
611
  */
606
- export type GetMessageDeliveryFunnelResponse_FunnelState = 'FUNNEL_STATE_UNSPECIFIED'
612
+ export type GetDeliveryFunnelResponse_FunnelState = 'FUNNEL_STATE_UNSPECIFIED'
607
613
  /** the funnel is populated */
608
614
  | 'FUNNEL_STATE_READY'
609
615
  /** nothing happened for this message yet */
@@ -614,7 +620,7 @@ export type GetMessageDeliveryFunnelResponse_FunnelState = 'FUNNEL_STATE_UNSPECI
614
620
  * DeliveriesForm tells which breakdown STAGE_DELIVERIES carries. The forms count
615
621
  * different sets, so their rows are not continuous. There is no withheld form.
616
622
  */
617
- export type GetMessageDeliveryFunnelResponse_DeliveriesForm = 'DELIVERIES_FORM_UNSPECIFIED'
623
+ export type GetDeliveryFunnelResponse_DeliveriesForm = 'DELIVERIES_FORM_UNSPECIFIED'
618
624
  /** three disjoint rows, alert state known */
619
625
  | 'DELIVERIES_FORM_PER_DEVICE'
620
626
  /** two rows, alert state unknown */
@@ -623,7 +629,7 @@ export type GetMessageDeliveryFunnelResponse_DeliveriesForm = 'DELIVERIES_FORM_U
623
629
  * BasicFormReason explains why the per-device breakdown is missing; set only in the
624
630
  * basic form. NO_DELIVERIES is not NO_EVENTS — sends did happen.
625
631
  */
626
- export type GetMessageDeliveryFunnelResponse_BasicFormReason = 'BASIC_FORM_REASON_UNSPECIFIED'
632
+ export type GetDeliveryFunnelResponse_BasicFormReason = 'BASIC_FORM_REASON_UNSPECIFIED'
627
633
  /** older than the row-level log keeps */
628
634
  | 'BASIC_FORM_REASON_RETENTION'
629
635
  /** system message, account not covered */
@@ -639,7 +645,7 @@ export type GetMessageDeliveryFunnelResponse_BasicFormReason = 'BASIC_FORM_REASO
639
645
  * Channel groups platforms by how their funnel reads. Web push is apart from mobile
640
646
  * push because its alert state is always on: an ALERTS_DISABLED row could not fill.
641
647
  */
642
- export type GetMessageDeliveryFunnelResponse_Channel = 'CHANNEL_UNSPECIFIED'
648
+ export type GetDeliveryFunnelResponse_Channel = 'CHANNEL_UNSPECIFIED'
643
649
  /** iOS, OSX, Android, Amazon, Huawei */
644
650
  | 'CHANNEL_MOBILE_PUSH'
645
651
  /** Safari, Chrome, Firefox */
@@ -650,67 +656,67 @@ export type GetMessageDeliveryFunnelResponse_Channel = 'CHANNEL_UNSPECIFIED'
650
656
  * ChannelFunnel is one channel's whole funnel. The form belongs here rather than to
651
657
  * the response: a message on iOS and Email carries two different ones at once.
652
658
  */
653
- export type GetMessageDeliveryFunnelResponse_ChannelFunnel = {
654
- channel: GetMessageDeliveryFunnelResponse_Channel;
655
- funnel: GetMessageDeliveryFunnelResponse_StageItem[];
656
- deliveriesForm: GetMessageDeliveryFunnelResponse_DeliveriesForm;
657
- basicFormReason: GetMessageDeliveryFunnelResponse_BasicFormReason;
658
- confirmedDeliveries: GetMessageDeliveryFunnelResponse_ConfirmedDeliveries;
659
+ export type GetDeliveryFunnelResponse_ChannelFunnel = {
660
+ channel: GetDeliveryFunnelResponse_Channel;
661
+ funnel: GetDeliveryFunnelResponse_StageItem[];
662
+ deliveriesForm: GetDeliveryFunnelResponse_DeliveriesForm;
663
+ basicFormReason: GetDeliveryFunnelResponse_BasicFormReason;
664
+ confirmedDeliveries: GetDeliveryFunnelResponse_ConfirmedDeliveries;
659
665
  /** Email only, absent when not measured. Never a stage row — see EmailBounces. */
660
- emailBounces: GetMessageDeliveryFunnelResponse_EmailBounces;
666
+ emailBounces: GetDeliveryFunnelResponse_EmailBounces;
661
667
  };
662
668
  /**
663
669
  * PlatformCount is one platform's share of the number above it; the parent is always
664
670
  * their sum. A platform with nothing to report is absent, which is not a zero.
665
671
  */
666
- export type GetMessageDeliveryFunnelResponse_PlatformCount = {
672
+ export type GetDeliveryFunnelResponse_PlatformCount = {
667
673
  platform: number;
668
674
  count: number;
669
675
  };
670
676
  /** Piece is one row of the funnel table. */
671
- export type GetMessageDeliveryFunnelResponse_Piece = {
672
- kind: GetMessageDeliveryFunnelResponse_Kind;
677
+ export type GetDeliveryFunnelResponse_Piece = {
678
+ kind: GetDeliveryFunnelResponse_Kind;
673
679
  /** FREQUENCY_CAPPING, ACCEPTED_BY_GATEWAY, ... */
674
680
  category: string;
675
681
  count: number;
676
- platforms: GetMessageDeliveryFunnelResponse_PlatformCount[];
682
+ platforms: GetDeliveryFunnelResponse_PlatformCount[];
677
683
  };
678
684
  /**
679
685
  * ErrorRow is what STAGE_ERRORS carries instead of pieces: a Piece in all but name,
680
686
  * since every row of that stage is a drop-out.
681
687
  */
682
- export type GetMessageDeliveryFunnelResponse_ErrorRow = {
688
+ export type GetDeliveryFunnelResponse_ErrorRow = {
683
689
  /** INVALID_TOKEN, QUOTA_EXCEEDED, INTERNAL_ERROR, ... */
684
690
  category: string;
685
691
  count: number;
686
- platforms: GetMessageDeliveryFunnelResponse_PlatformCount[];
692
+ platforms: GetDeliveryFunnelResponse_PlatformCount[];
687
693
  };
688
694
  /**
689
695
  * StageItem is one funnel level with its breakdown. STAGE_DELIVERIES counts accepted
690
696
  * sends — how many there were to confirm, not how many confirmed.
691
697
  */
692
- export type GetMessageDeliveryFunnelResponse_StageItem = {
693
- stage: GetMessageDeliveryFunnelResponse_Stage;
698
+ export type GetDeliveryFunnelResponse_StageItem = {
699
+ stage: GetDeliveryFunnelResponse_Stage;
694
700
  count: number;
695
701
  /** empty on STAGE_ERRORS */
696
- pieces: GetMessageDeliveryFunnelResponse_Piece[];
702
+ pieces: GetDeliveryFunnelResponse_Piece[];
697
703
  /** STAGE_ERRORS only */
698
- errors: GetMessageDeliveryFunnelResponse_ErrorRow[];
699
- platforms: GetMessageDeliveryFunnelResponse_PlatformCount[];
704
+ errors: GetDeliveryFunnelResponse_ErrorRow[];
705
+ platforms: GetDeliveryFunnelResponse_PlatformCount[];
700
706
  };
701
707
  /**
702
708
  * ConfirmedDeliveries equals the tracking log CSV export: past the accepted set, never
703
709
  * clamped (derive no stage row), email-only without allow_show_delivery_statistics.
704
710
  */
705
- export type GetMessageDeliveryFunnelResponse_ConfirmedDeliveries = {
711
+ export type GetDeliveryFunnelResponse_ConfirmedDeliveries = {
706
712
  count: number;
707
- platforms: GetMessageDeliveryFunnelResponse_PlatformCount[];
713
+ platforms: GetDeliveryFunnelResponse_PlatformCount[];
708
714
  };
709
715
  /**
710
716
  * EmailBounces is what the mail provider refused, in recipient addresses. It sits beside
711
717
  * the stages and belongs to none of them, on purpose and never clamped.
712
718
  */
713
- export type GetMessageDeliveryFunnelResponse_EmailBounces = {
719
+ export type GetDeliveryFunnelResponse_EmailBounces = {
714
720
  /** at least one permanent refusal */
715
721
  hard: number;
716
722
  /** refused, never permanently */
@@ -721,19 +727,33 @@ export type GetMessageDeliveryFunnelResponse_EmailBounces = {
721
727
  */
722
728
  alsoConfirmed: number;
723
729
  };
724
- export type GetMessageDeliveryFunnelResponse = {
730
+ /**
731
+ * GetDeliveryFunnelResponse is the shared answer of both funnel methods: a campaign's
732
+ * funnel is the sum of its messages' funnels, so the shape has to be the same one.
733
+ */
734
+ export type GetDeliveryFunnelResponse = {
725
735
  /**
726
736
  * Channels are not ordered; a client looks one up by its channel field, not by
727
737
  * position.
728
738
  */
729
- channels: GetMessageDeliveryFunnelResponse_ChannelFunnel[];
739
+ channels: GetDeliveryFunnelResponse_ChannelFunnel[];
730
740
  /**
731
741
  * The window the funnel was computed over, derived from the data: the numbers are
732
742
  * meaningless without it, and the pre-aggregate TTL can cut it short.
733
743
  */
734
744
  windowFrom: Date;
735
745
  windowTo: Date;
736
- funnelState: GetMessageDeliveryFunnelResponse_FunnelState;
746
+ funnelState: GetDeliveryFunnelResponse_FunnelState;
747
+ };
748
+ /**
749
+ * GetCampaignDeliveryFunnelRequest asks for one campaign's funnel. No time range, for the
750
+ * same reason the message funnel has none: sends and confirmations sit on different axes.
751
+ */
752
+ export type GetCampaignDeliveryFunnelRequest = {
753
+ /** Campaign code, required */
754
+ campaignCode: string;
755
+ /** Optional platform ID filter */
756
+ platforms: number[];
737
757
  };
738
758
  /**
739
759
  * GetMessageDeliveryTimelineRequest asks for one message's metrics over time. Unlike
@@ -806,7 +826,7 @@ export type GetMessageDeliveryTimelineResponse = {
806
826
  * Same three states as the funnel, and for the same reasons: an empty answer
807
827
  * has to say which kind of empty it is.
808
828
  */
809
- funnelState: GetMessageDeliveryFunnelResponse_FunnelState;
829
+ funnelState: GetDeliveryFunnelResponse_FunnelState;
810
830
  /**
811
831
  * The bucket width actually used, whether it came from the request or from the
812
832
  * automatic pick.