@lessly/sdk-app 79.0.0 → 80.0.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.
- package/dist/_types/gen/types.gen.d.ts +1625 -43
- package/dist/index.cjs +9 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -20
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/gen/manifest.gen.ts +9 -20
- package/src/gen/types.gen.ts +1605 -23
package/src/gen/types.gen.ts
CHANGED
|
@@ -112065,54 +112065,150 @@ secretPrefix: string
|
|
|
112065
112065
|
}
|
|
112066
112066
|
|
|
112067
112067
|
export interface TrackingDomainsCreateInput {
|
|
112068
|
+
/**
|
|
112069
|
+
* Bare hostname to serve tracking from, which must sit under the chosen domain (e.g. analytics.example.com); a suggestion is used when omitted
|
|
112070
|
+
*/
|
|
112068
112071
|
host?: string
|
|
112072
|
+
/**
|
|
112073
|
+
* DNS records to request instead of the default CNAME to the tracking edge; leave unset unless the domain needs custom records
|
|
112074
|
+
*/
|
|
112069
112075
|
records?: {
|
|
112076
|
+
/**
|
|
112077
|
+
* Time-to-live in seconds the record should be published with; the platform picks one when omitted
|
|
112078
|
+
*/
|
|
112070
112079
|
ttl?: number
|
|
112080
|
+
/**
|
|
112081
|
+
* Fully-qualified host the record is published at; defaults to the claimed tracking host
|
|
112082
|
+
*/
|
|
112071
112083
|
name?: string
|
|
112084
|
+
/**
|
|
112085
|
+
* Value the record points at — the edge hostname for a CNAME, the proof string for a TXT
|
|
112086
|
+
*/
|
|
112072
112087
|
target: string
|
|
112088
|
+
/**
|
|
112089
|
+
* DNS record type to publish, e.g. CNAME or TXT
|
|
112090
|
+
*/
|
|
112073
112091
|
recordType: string
|
|
112074
112092
|
}[]
|
|
112093
|
+
/**
|
|
112094
|
+
* Product domain to claim the tracking host under, as listed in `domains[].domainId` by tracking_domains_list
|
|
112095
|
+
*/
|
|
112075
112096
|
domainId: string
|
|
112076
112097
|
}
|
|
112077
112098
|
|
|
112078
112099
|
export interface TrackingDomainsCreateOutput {
|
|
112100
|
+
/**
|
|
112101
|
+
* The binding as just claimed; it starts `pending` and goes `active` once the DNS is observed live
|
|
112102
|
+
*/
|
|
112079
112103
|
binding: {
|
|
112104
|
+
/**
|
|
112105
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112106
|
+
*/
|
|
112080
112107
|
host: string
|
|
112108
|
+
/**
|
|
112109
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112110
|
+
*/
|
|
112081
112111
|
status: ("pending" | "active" | "failed")
|
|
112112
|
+
/**
|
|
112113
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112114
|
+
*/
|
|
112082
112115
|
records: unknown[]
|
|
112116
|
+
/**
|
|
112117
|
+
* Product domain this tracking host sits under
|
|
112118
|
+
*/
|
|
112083
112119
|
domainId: string
|
|
112120
|
+
/**
|
|
112121
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112122
|
+
*/
|
|
112084
112123
|
bindingId: string
|
|
112124
|
+
/**
|
|
112125
|
+
* When the binding was claimed
|
|
112126
|
+
*/
|
|
112085
112127
|
createdAt: string
|
|
112128
|
+
/**
|
|
112129
|
+
* Product the binding belongs to
|
|
112130
|
+
*/
|
|
112086
112131
|
productId: string
|
|
112132
|
+
/**
|
|
112133
|
+
* When the binding last changed status or records
|
|
112134
|
+
*/
|
|
112087
112135
|
updatedAt: string
|
|
112136
|
+
/**
|
|
112137
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112138
|
+
*/
|
|
112088
112139
|
statusDetail: (string | null)
|
|
112140
|
+
/**
|
|
112141
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112142
|
+
*/
|
|
112089
112143
|
ownerExtension: string
|
|
112090
112144
|
}
|
|
112145
|
+
/**
|
|
112146
|
+
* Ordered, human-readable steps for publishing the DNS the claim needs; empty when the platform manages the domain itself
|
|
112147
|
+
*/
|
|
112091
112148
|
instructions: string[]
|
|
112092
112149
|
}
|
|
112093
112150
|
|
|
112094
112151
|
export interface TrackingDomainsDeleteInput {
|
|
112152
|
+
/**
|
|
112153
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112154
|
+
*/
|
|
112095
112155
|
bindingId: string
|
|
112096
112156
|
}
|
|
112097
112157
|
|
|
112098
112158
|
export interface TrackingDomainsDeleteOutput {
|
|
112159
|
+
/**
|
|
112160
|
+
* Always true — the release succeeded; a failure arrives as an error, not as false
|
|
112161
|
+
*/
|
|
112099
112162
|
ok: true
|
|
112100
112163
|
}
|
|
112101
112164
|
|
|
112102
112165
|
export interface TrackingDomainsGetInput {
|
|
112166
|
+
/**
|
|
112167
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112168
|
+
*/
|
|
112103
112169
|
bindingId: string
|
|
112104
112170
|
}
|
|
112105
112171
|
|
|
112106
112172
|
export interface TrackingDomainsGetOutput {
|
|
112173
|
+
/**
|
|
112174
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112175
|
+
*/
|
|
112107
112176
|
host: string
|
|
112177
|
+
/**
|
|
112178
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112179
|
+
*/
|
|
112108
112180
|
status: ("pending" | "active" | "failed")
|
|
112181
|
+
/**
|
|
112182
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112183
|
+
*/
|
|
112109
112184
|
records: unknown[]
|
|
112185
|
+
/**
|
|
112186
|
+
* Product domain this tracking host sits under
|
|
112187
|
+
*/
|
|
112110
112188
|
domainId: string
|
|
112189
|
+
/**
|
|
112190
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112191
|
+
*/
|
|
112111
112192
|
bindingId: string
|
|
112193
|
+
/**
|
|
112194
|
+
* When the binding was claimed
|
|
112195
|
+
*/
|
|
112112
112196
|
createdAt: string
|
|
112197
|
+
/**
|
|
112198
|
+
* Product the binding belongs to
|
|
112199
|
+
*/
|
|
112113
112200
|
productId: string
|
|
112201
|
+
/**
|
|
112202
|
+
* When the binding last changed status or records
|
|
112203
|
+
*/
|
|
112114
112204
|
updatedAt: string
|
|
112205
|
+
/**
|
|
112206
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112207
|
+
*/
|
|
112115
112208
|
statusDetail: (string | null)
|
|
112209
|
+
/**
|
|
112210
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112211
|
+
*/
|
|
112116
112212
|
ownerExtension: string
|
|
112117
112213
|
}
|
|
112118
112214
|
|
|
@@ -112121,41 +112217,125 @@ export interface TrackingDomainsListInput {
|
|
|
112121
112217
|
}
|
|
112122
112218
|
|
|
112123
112219
|
export interface TrackingDomainsListOutput {
|
|
112220
|
+
/**
|
|
112221
|
+
* The product's domains as the platform vouches for them — the set a new tracking host may be claimed under
|
|
112222
|
+
*/
|
|
112124
112223
|
domains: {
|
|
112224
|
+
/**
|
|
112225
|
+
* Who runs the DNS: `managed` means the platform publishes records for you, `external` means you publish them yourself
|
|
112226
|
+
*/
|
|
112125
112227
|
mode: ("external" | "managed")
|
|
112228
|
+
/**
|
|
112229
|
+
* Apex domain name the product owns, e.g. example.com
|
|
112230
|
+
*/
|
|
112126
112231
|
domain: string
|
|
112232
|
+
/**
|
|
112233
|
+
* Stable platform id of the product domain, and what a claim takes as its `domainId`
|
|
112234
|
+
*/
|
|
112127
112235
|
domainId: string
|
|
112236
|
+
/**
|
|
112237
|
+
* ISO-8601 timestamp of when the domain was added to the product
|
|
112238
|
+
*/
|
|
112128
112239
|
createdAt: string
|
|
112240
|
+
/**
|
|
112241
|
+
* How many extensions currently hold a host binding under this domain
|
|
112242
|
+
*/
|
|
112129
112243
|
extensionCount: number
|
|
112130
112244
|
}[]
|
|
112245
|
+
/**
|
|
112246
|
+
* Tracking-host bindings this toolkit currently holds across those domains
|
|
112247
|
+
*/
|
|
112131
112248
|
bindings: {
|
|
112249
|
+
/**
|
|
112250
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112251
|
+
*/
|
|
112132
112252
|
host: string
|
|
112253
|
+
/**
|
|
112254
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112255
|
+
*/
|
|
112133
112256
|
status: ("pending" | "active" | "failed")
|
|
112257
|
+
/**
|
|
112258
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112259
|
+
*/
|
|
112134
112260
|
records: unknown[]
|
|
112261
|
+
/**
|
|
112262
|
+
* Product domain this tracking host sits under
|
|
112263
|
+
*/
|
|
112135
112264
|
domainId: string
|
|
112265
|
+
/**
|
|
112266
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112267
|
+
*/
|
|
112136
112268
|
bindingId: string
|
|
112269
|
+
/**
|
|
112270
|
+
* When the binding was claimed
|
|
112271
|
+
*/
|
|
112137
112272
|
createdAt: string
|
|
112273
|
+
/**
|
|
112274
|
+
* Product the binding belongs to
|
|
112275
|
+
*/
|
|
112138
112276
|
productId: string
|
|
112277
|
+
/**
|
|
112278
|
+
* When the binding last changed status or records
|
|
112279
|
+
*/
|
|
112139
112280
|
updatedAt: string
|
|
112281
|
+
/**
|
|
112282
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112283
|
+
*/
|
|
112140
112284
|
statusDetail: (string | null)
|
|
112285
|
+
/**
|
|
112286
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112287
|
+
*/
|
|
112141
112288
|
ownerExtension: string
|
|
112142
112289
|
}[]
|
|
112143
112290
|
}
|
|
112144
112291
|
|
|
112145
112292
|
export interface TrackingDomainsVerifyInput {
|
|
112293
|
+
/**
|
|
112294
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112295
|
+
*/
|
|
112146
112296
|
bindingId: string
|
|
112147
112297
|
}
|
|
112148
112298
|
|
|
112149
112299
|
export interface TrackingDomainsVerifyOutput {
|
|
112300
|
+
/**
|
|
112301
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112302
|
+
*/
|
|
112150
112303
|
host: string
|
|
112304
|
+
/**
|
|
112305
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112306
|
+
*/
|
|
112151
112307
|
status: ("pending" | "active" | "failed")
|
|
112308
|
+
/**
|
|
112309
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112310
|
+
*/
|
|
112152
112311
|
records: unknown[]
|
|
112312
|
+
/**
|
|
112313
|
+
* Product domain this tracking host sits under
|
|
112314
|
+
*/
|
|
112153
112315
|
domainId: string
|
|
112316
|
+
/**
|
|
112317
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112318
|
+
*/
|
|
112154
112319
|
bindingId: string
|
|
112320
|
+
/**
|
|
112321
|
+
* When the binding was claimed
|
|
112322
|
+
*/
|
|
112155
112323
|
createdAt: string
|
|
112324
|
+
/**
|
|
112325
|
+
* Product the binding belongs to
|
|
112326
|
+
*/
|
|
112156
112327
|
productId: string
|
|
112328
|
+
/**
|
|
112329
|
+
* When the binding last changed status or records
|
|
112330
|
+
*/
|
|
112157
112331
|
updatedAt: string
|
|
112332
|
+
/**
|
|
112333
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112334
|
+
*/
|
|
112158
112335
|
statusDetail: (string | null)
|
|
112336
|
+
/**
|
|
112337
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112338
|
+
*/
|
|
112159
112339
|
ownerExtension: string
|
|
112160
112340
|
}
|
|
112161
112341
|
|
|
@@ -112167,7 +112347,13 @@ name: string
|
|
|
112167
112347
|
}
|
|
112168
112348
|
|
|
112169
112349
|
export interface TrackingEventNamesArchiveOutput {
|
|
112350
|
+
/**
|
|
112351
|
+
* Event name whose status was changed
|
|
112352
|
+
*/
|
|
112170
112353
|
name: string
|
|
112354
|
+
/**
|
|
112355
|
+
* The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
|
|
112356
|
+
*/
|
|
112171
112357
|
status: ("active" | "archived")
|
|
112172
112358
|
}
|
|
112173
112359
|
|
|
@@ -112191,13 +112377,37 @@ status?: ("active" | "archived")
|
|
|
112191
112377
|
}
|
|
112192
112378
|
|
|
112193
112379
|
export interface TrackingEventNamesListOutput {
|
|
112380
|
+
/**
|
|
112381
|
+
* The matching catalogue entries, ordered by the requested sort
|
|
112382
|
+
*/
|
|
112194
112383
|
names: {
|
|
112384
|
+
/**
|
|
112385
|
+
* Event name exactly as the tracking script sends it — the string other tools take as their `event`
|
|
112386
|
+
*/
|
|
112195
112387
|
name: string
|
|
112388
|
+
/**
|
|
112389
|
+
* How many events with this name have been received in total
|
|
112390
|
+
*/
|
|
112196
112391
|
count: number
|
|
112392
|
+
/**
|
|
112393
|
+
* `active` for a name in use, `archived` for one hidden from pickers and reports
|
|
112394
|
+
*/
|
|
112197
112395
|
status: string
|
|
112396
|
+
/**
|
|
112397
|
+
* ISO-8601 timestamp of the most recent event received under this name
|
|
112398
|
+
*/
|
|
112198
112399
|
lastSeen: string
|
|
112400
|
+
/**
|
|
112401
|
+
* ISO-8601 timestamp of the first event ever received under this name
|
|
112402
|
+
*/
|
|
112199
112403
|
firstSeen: string
|
|
112404
|
+
/**
|
|
112405
|
+
* Property keys sampled from recent events with this name, so you can see what the payload carries
|
|
112406
|
+
*/
|
|
112200
112407
|
propsKeys: string[]
|
|
112408
|
+
/**
|
|
112409
|
+
* Whether this name is marked a conversion, which is what makes it available as a workflow trigger
|
|
112410
|
+
*/
|
|
112201
112411
|
isConversion: boolean
|
|
112202
112412
|
}[]
|
|
112203
112413
|
}
|
|
@@ -112214,7 +112424,13 @@ isConversion: boolean
|
|
|
112214
112424
|
}
|
|
112215
112425
|
|
|
112216
112426
|
export interface TrackingEventNamesSetConversionOutput {
|
|
112427
|
+
/**
|
|
112428
|
+
* Event name the conversion flag was applied to
|
|
112429
|
+
*/
|
|
112217
112430
|
name: string
|
|
112431
|
+
/**
|
|
112432
|
+
* The flag as it now stands after the change
|
|
112433
|
+
*/
|
|
112218
112434
|
isConversion: boolean
|
|
112219
112435
|
}
|
|
112220
112436
|
|
|
@@ -112226,7 +112442,13 @@ name: string
|
|
|
112226
112442
|
}
|
|
112227
112443
|
|
|
112228
112444
|
export interface TrackingEventNamesUnarchiveOutput {
|
|
112445
|
+
/**
|
|
112446
|
+
* Event name whose status was changed
|
|
112447
|
+
*/
|
|
112229
112448
|
name: string
|
|
112449
|
+
/**
|
|
112450
|
+
* The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
|
|
112451
|
+
*/
|
|
112230
112452
|
status: ("active" | "archived")
|
|
112231
112453
|
}
|
|
112232
112454
|
|
|
@@ -112235,14 +112457,32 @@ export interface TrackingGoogleadsConnectionStatusInput {
|
|
|
112235
112457
|
}
|
|
112236
112458
|
|
|
112237
112459
|
export type TrackingGoogleadsConnectionStatusOutput = ({
|
|
112460
|
+
/**
|
|
112461
|
+
* Where the Google Ads connection stands: connected means an account is chosen and its credential works, so the other tools will run.
|
|
112462
|
+
*/
|
|
112238
112463
|
state: "connected"
|
|
112464
|
+
/**
|
|
112465
|
+
* The Google Ads account the data is read from and conversions are written to, as a customer id. Only present while connected.
|
|
112466
|
+
*/
|
|
112239
112467
|
customerId: string
|
|
112468
|
+
/**
|
|
112469
|
+
* The manager account the connection authenticates through, as a Google customer id. Same as customerId when the account is not managed. Only present while connected.
|
|
112470
|
+
*/
|
|
112240
112471
|
loginCustomerId: string
|
|
112241
112472
|
} | {
|
|
112473
|
+
/**
|
|
112474
|
+
* Google is authorised but nobody has picked which Google Ads account to use yet, so nothing can run until someone does.
|
|
112475
|
+
*/
|
|
112242
112476
|
state: "pending_account_selection"
|
|
112243
112477
|
} | {
|
|
112478
|
+
/**
|
|
112479
|
+
* The Google authorisation expired or was revoked and has to be granted again before anything can run.
|
|
112480
|
+
*/
|
|
112244
112481
|
state: "reauth_required"
|
|
112245
112482
|
} | {
|
|
112483
|
+
/**
|
|
112484
|
+
* No Google Ads connection has been set up for this product at all.
|
|
112485
|
+
*/
|
|
112246
112486
|
state: "not_connected"
|
|
112247
112487
|
})
|
|
112248
112488
|
|
|
@@ -112263,26 +112503,77 @@ export interface TrackingGoogleadsFeedbackConfigGetInput {
|
|
|
112263
112503
|
}
|
|
112264
112504
|
|
|
112265
112505
|
export interface TrackingGoogleadsFeedbackConfigGetOutput {
|
|
112506
|
+
/**
|
|
112507
|
+
* How the uploads coexist with the account's own tag: existing_pixel means the Google tag also records these conversions, so send only to actions the tag does not already cover; fresh_pixel means these uploads are the only source.
|
|
112508
|
+
*/
|
|
112266
112509
|
mode: ("existing_pixel" | "fresh_pixel")
|
|
112510
|
+
/**
|
|
112511
|
+
* Which tracked events become which Google Ads conversion action, and where each one takes its money value from. Disabled rules stay listed.
|
|
112512
|
+
*/
|
|
112267
112513
|
rules: {
|
|
112514
|
+
/**
|
|
112515
|
+
* Tracked event-name this rule uploads, as listed by tracking_event-names_list
|
|
112516
|
+
*/
|
|
112268
112517
|
event: string
|
|
112518
|
+
/**
|
|
112519
|
+
* What monetary value is reported to Google for each conversion this rule uploads
|
|
112520
|
+
*/
|
|
112269
112521
|
value: ({
|
|
112522
|
+
/**
|
|
112523
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112524
|
+
*/
|
|
112270
112525
|
source: "revenue"
|
|
112271
112526
|
} | {
|
|
112527
|
+
/**
|
|
112528
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112529
|
+
*/
|
|
112272
112530
|
source: "dynamic"
|
|
112273
112531
|
} | {
|
|
112532
|
+
/**
|
|
112533
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112534
|
+
*/
|
|
112274
112535
|
source: "fixed"
|
|
112536
|
+
/**
|
|
112537
|
+
* ISO-4217 currency the fixed amount is denominated in, e.g. USD
|
|
112538
|
+
*/
|
|
112275
112539
|
currency: string
|
|
112540
|
+
/**
|
|
112541
|
+
* The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
|
|
112542
|
+
*/
|
|
112276
112543
|
amountMinor: number
|
|
112277
112544
|
})
|
|
112545
|
+
/**
|
|
112546
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
112547
|
+
*/
|
|
112278
112548
|
enabled: boolean
|
|
112549
|
+
/**
|
|
112550
|
+
* Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
|
|
112551
|
+
*/
|
|
112279
112552
|
conversionAction: string
|
|
112280
112553
|
}[]
|
|
112554
|
+
/**
|
|
112555
|
+
* Whether conversions are being sent to Google Ads at all. False leaves every rule below in place but uploads nothing.
|
|
112556
|
+
*/
|
|
112281
112557
|
enabled: boolean
|
|
112558
|
+
/**
|
|
112559
|
+
* The tenant this configuration belongs to. Never supplied by a caller — it comes from the authenticated identity.
|
|
112560
|
+
*/
|
|
112282
112561
|
productId: string
|
|
112562
|
+
/**
|
|
112563
|
+
* How many days back each pass looks for conversions to send, and how far back a click may be matched. Google rejects clicks older than about 90 days.
|
|
112564
|
+
*/
|
|
112283
112565
|
lookbackDays: number
|
|
112566
|
+
/**
|
|
112567
|
+
* Currency of the connected Google Ads account, as a three-letter ISO 4217 code such as EUR. Null when the account could not be read.
|
|
112568
|
+
*/
|
|
112284
112569
|
accountCurrency: (string | null)
|
|
112570
|
+
/**
|
|
112571
|
+
* The event names that may use the Dynamic value source, because revenue is known for them. Any other event needs a fixed amount.
|
|
112572
|
+
*/
|
|
112285
112573
|
dynamicValueEvents: string[]
|
|
112574
|
+
/**
|
|
112575
|
+
* Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
|
|
112576
|
+
*/
|
|
112286
112577
|
enhancedConversions: boolean
|
|
112287
112578
|
}
|
|
112288
112579
|
|
|
@@ -112299,11 +112590,23 @@ rules?: {
|
|
|
112299
112590
|
* Any tracked event-name for this product (validated against the event-name catalog)
|
|
112300
112591
|
*/
|
|
112301
112592
|
event: string
|
|
112593
|
+
/**
|
|
112594
|
+
* What monetary value to report to Google for each conversion this rule uploads
|
|
112595
|
+
*/
|
|
112302
112596
|
value: ({
|
|
112597
|
+
/**
|
|
112598
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112599
|
+
*/
|
|
112303
112600
|
source: "revenue"
|
|
112304
112601
|
} | {
|
|
112602
|
+
/**
|
|
112603
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112604
|
+
*/
|
|
112305
112605
|
source: "dynamic"
|
|
112306
112606
|
} | {
|
|
112607
|
+
/**
|
|
112608
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112609
|
+
*/
|
|
112307
112610
|
source: "fixed"
|
|
112308
112611
|
/**
|
|
112309
112612
|
* ISO-4217 currency code, e.g. USD
|
|
@@ -112314,6 +112617,9 @@ currency: string
|
|
|
112314
112617
|
*/
|
|
112315
112618
|
amountMinor?: number
|
|
112316
112619
|
})
|
|
112620
|
+
/**
|
|
112621
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
112622
|
+
*/
|
|
112317
112623
|
enabled: boolean
|
|
112318
112624
|
/**
|
|
112319
112625
|
* Google conversion action resource: customers/<cid>/conversionActions/<id>
|
|
@@ -112335,28 +112641,82 @@ enhancedConversions?: boolean
|
|
|
112335
112641
|
}
|
|
112336
112642
|
|
|
112337
112643
|
export interface TrackingGoogleadsFeedbackConfigSetOutput {
|
|
112644
|
+
/**
|
|
112645
|
+
* The config as it now stands after the write, with server-side normalisation applied
|
|
112646
|
+
*/
|
|
112338
112647
|
config: {
|
|
112648
|
+
/**
|
|
112649
|
+
* How our uploads sit beside your own tag: `existing_pixel` only fills gaps it left, `fresh_pixel` reports our data alone
|
|
112650
|
+
*/
|
|
112339
112651
|
mode: ("existing_pixel" | "fresh_pixel")
|
|
112652
|
+
/**
|
|
112653
|
+
* The event-to-conversion-action mappings, each with its own value source
|
|
112654
|
+
*/
|
|
112340
112655
|
rules: {
|
|
112656
|
+
/**
|
|
112657
|
+
* Tracked event-name this rule uploads, as listed by tracking_event-names_list
|
|
112658
|
+
*/
|
|
112341
112659
|
event: string
|
|
112660
|
+
/**
|
|
112661
|
+
* What monetary value is reported to Google for each conversion this rule uploads
|
|
112662
|
+
*/
|
|
112342
112663
|
value: ({
|
|
112664
|
+
/**
|
|
112665
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112666
|
+
*/
|
|
112343
112667
|
source: "revenue"
|
|
112344
112668
|
} | {
|
|
112669
|
+
/**
|
|
112670
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112671
|
+
*/
|
|
112345
112672
|
source: "dynamic"
|
|
112346
112673
|
} | {
|
|
112674
|
+
/**
|
|
112675
|
+
* Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
|
|
112676
|
+
*/
|
|
112347
112677
|
source: "fixed"
|
|
112678
|
+
/**
|
|
112679
|
+
* ISO-4217 currency the fixed amount is denominated in, e.g. USD
|
|
112680
|
+
*/
|
|
112348
112681
|
currency: string
|
|
112682
|
+
/**
|
|
112683
|
+
* The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
|
|
112684
|
+
*/
|
|
112349
112685
|
amountMinor: number
|
|
112350
112686
|
})
|
|
112687
|
+
/**
|
|
112688
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
112689
|
+
*/
|
|
112351
112690
|
enabled: boolean
|
|
112691
|
+
/**
|
|
112692
|
+
* Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
|
|
112693
|
+
*/
|
|
112352
112694
|
conversionAction: string
|
|
112353
112695
|
}[]
|
|
112696
|
+
/**
|
|
112697
|
+
* Master switch: with it off no rule uploads anything, however the individual rules are set
|
|
112698
|
+
*/
|
|
112354
112699
|
enabled: boolean
|
|
112700
|
+
/**
|
|
112701
|
+
* Product this conversion-feedback config belongs to
|
|
112702
|
+
*/
|
|
112355
112703
|
productId: string
|
|
112704
|
+
/**
|
|
112705
|
+
* How many days back a click may have happened and still be matched to a conversion (max 90)
|
|
112706
|
+
*/
|
|
112356
112707
|
lookbackDays: number
|
|
112708
|
+
/**
|
|
112709
|
+
* The connected Google Ads account's currency, best-effort; null or absent when it could not be read
|
|
112710
|
+
*/
|
|
112357
112711
|
accountCurrency?: (string | null)
|
|
112712
|
+
/**
|
|
112713
|
+
* Whether hashed email and phone are sent alongside gclid as additional match keys, which raises match rates
|
|
112714
|
+
*/
|
|
112358
112715
|
enhancedConversions: boolean
|
|
112359
112716
|
}
|
|
112717
|
+
/**
|
|
112718
|
+
* Plain-language safety notes about what this combination of mode and match keys will do to the connected account
|
|
112719
|
+
*/
|
|
112360
112720
|
guidance: string[]
|
|
112361
112721
|
}
|
|
112362
112722
|
|
|
@@ -112365,15 +112725,48 @@ export interface TrackingGoogleadsFeedbackRunInput {
|
|
|
112365
112725
|
}
|
|
112366
112726
|
|
|
112367
112727
|
export interface TrackingGoogleadsFeedbackRunOutput {
|
|
112728
|
+
/**
|
|
112729
|
+
* This one upload pass. Match the completion event back to this step on it, not on productId: the daily cron pass and a manual run on the same day are two passes of the same product.
|
|
112730
|
+
*/
|
|
112731
|
+
runId: string
|
|
112732
|
+
/**
|
|
112733
|
+
* Rows Google rejected in this pass.
|
|
112734
|
+
*/
|
|
112368
112735
|
failed: number
|
|
112736
|
+
/**
|
|
112737
|
+
* Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
|
|
112738
|
+
*/
|
|
112369
112739
|
matched: number
|
|
112740
|
+
/**
|
|
112741
|
+
* Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
|
|
112742
|
+
*/
|
|
112370
112743
|
noGclid: number
|
|
112744
|
+
/**
|
|
112745
|
+
* Present only when the pass did no work, and says why: feedback is switched off, no rule is enabled, or no Google Ads account is connected. Absent on a pass that ran.
|
|
112746
|
+
*/
|
|
112371
112747
|
skipped?: ("disabled" | "no_rules" | "not_connected")
|
|
112748
|
+
/**
|
|
112749
|
+
* Conversions in the lookback window that an enabled rule applied to.
|
|
112750
|
+
*/
|
|
112372
112751
|
selected: number
|
|
112752
|
+
/**
|
|
112753
|
+
* Rows Google accepted in this pass.
|
|
112754
|
+
*/
|
|
112373
112755
|
uploaded: number
|
|
112374
|
-
|
|
112756
|
+
/**
|
|
112757
|
+
* The tenant whose conversions this pass uploaded.
|
|
112758
|
+
*/
|
|
112759
|
+
productId: string
|
|
112760
|
+
/**
|
|
112761
|
+
* Conversions held back because their money value had not landed yet. They are retried on a later pass.
|
|
112762
|
+
*/
|
|
112375
112763
|
zeroValue: number
|
|
112376
|
-
|
|
112764
|
+
/**
|
|
112765
|
+
* Google's own rejection detail, passed through unchanged, when it refused part of the batch. Absent when it accepted everything.
|
|
112766
|
+
*/
|
|
112767
|
+
partialFailureError?: {
|
|
112768
|
+
[k: string]: unknown
|
|
112769
|
+
}
|
|
112377
112770
|
}
|
|
112378
112771
|
|
|
112379
112772
|
export interface TrackingGoogleadsFeedbackStatusInput {
|
|
@@ -112381,25 +112774,82 @@ export interface TrackingGoogleadsFeedbackStatusInput {
|
|
|
112381
112774
|
}
|
|
112382
112775
|
|
|
112383
112776
|
export interface TrackingGoogleadsFeedbackStatusOutput {
|
|
112777
|
+
/**
|
|
112778
|
+
* How the uploads coexist with the account's own tag: existing_pixel means the Google tag also records these conversions; fresh_pixel means these uploads are the only source.
|
|
112779
|
+
*/
|
|
112384
112780
|
mode: ("existing_pixel" | "fresh_pixel")
|
|
112781
|
+
/**
|
|
112782
|
+
* Rows Google has rejected since this product was connected, across every pass.
|
|
112783
|
+
*/
|
|
112385
112784
|
failed: number
|
|
112785
|
+
/**
|
|
112786
|
+
* Whether conversions are being sent to Google Ads at all.
|
|
112787
|
+
*/
|
|
112386
112788
|
enabled: boolean
|
|
112789
|
+
/**
|
|
112790
|
+
* Coverage of the most recent pass. Null when no pass has run for this product yet.
|
|
112791
|
+
*/
|
|
112387
112792
|
lastRun: ({
|
|
112793
|
+
/**
|
|
112794
|
+
* When the last pass finished. Null when the stored summary predates this field.
|
|
112795
|
+
*/
|
|
112388
112796
|
ranAt: (string | null)
|
|
112797
|
+
/**
|
|
112798
|
+
* Rows Google rejected. Anything above zero is what makes the status partial.
|
|
112799
|
+
*/
|
|
112389
112800
|
failed: number
|
|
112801
|
+
/**
|
|
112802
|
+
* How the pass ended: ok is a clean pass, partial means Google rejected some rows and accepted others, not_connected means no Google Ads account was reachable and nothing was sent.
|
|
112803
|
+
*/
|
|
112390
112804
|
status: ("ok" | "partial" | "not_connected")
|
|
112805
|
+
/**
|
|
112806
|
+
* Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
|
|
112807
|
+
*/
|
|
112391
112808
|
matched: number
|
|
112809
|
+
/**
|
|
112810
|
+
* Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
|
|
112811
|
+
*/
|
|
112392
112812
|
noGclid: number
|
|
112813
|
+
/**
|
|
112814
|
+
* Conversions in the lookback window that an enabled rule applied to.
|
|
112815
|
+
*/
|
|
112393
112816
|
selected: number
|
|
112817
|
+
/**
|
|
112818
|
+
* Rows Google accepted.
|
|
112819
|
+
*/
|
|
112394
112820
|
uploaded: number
|
|
112821
|
+
/**
|
|
112822
|
+
* Conversions held back because their money value had not landed yet. They are retried on a later pass.
|
|
112823
|
+
*/
|
|
112395
112824
|
zeroValue: number
|
|
112396
112825
|
} | null)
|
|
112826
|
+
/**
|
|
112827
|
+
* Plain-language warnings about the current setup, such as double counting when the Google tag already records the same conversion. Empty when nothing needs saying.
|
|
112828
|
+
*/
|
|
112397
112829
|
guidance: string[]
|
|
112830
|
+
/**
|
|
112831
|
+
* Rows Google has accepted since this product was connected, across every pass.
|
|
112832
|
+
*/
|
|
112398
112833
|
uploaded: number
|
|
112834
|
+
/**
|
|
112835
|
+
* How many event-to-conversion-action rules are configured, enabled or not.
|
|
112836
|
+
*/
|
|
112399
112837
|
ruleCount: number
|
|
112838
|
+
/**
|
|
112839
|
+
* How many days back each pass looks for conversions to send, and how far back a click may be matched.
|
|
112840
|
+
*/
|
|
112400
112841
|
lookbackDays: number
|
|
112842
|
+
/**
|
|
112843
|
+
* Currency of the connected Google Ads account, as a three-letter ISO 4217 code such as EUR. Null when the account could not be read.
|
|
112844
|
+
*/
|
|
112401
112845
|
accountCurrency: (string | null)
|
|
112846
|
+
/**
|
|
112847
|
+
* The event names that may use the Dynamic value source, because revenue is known for them.
|
|
112848
|
+
*/
|
|
112402
112849
|
dynamicValueEvents: string[]
|
|
112850
|
+
/**
|
|
112851
|
+
* Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
|
|
112852
|
+
*/
|
|
112403
112853
|
enhancedConversions: boolean
|
|
112404
112854
|
}
|
|
112405
112855
|
|
|
@@ -112421,65 +112871,228 @@ conversionDatetime: string
|
|
|
112421
112871
|
}[]
|
|
112422
112872
|
|
|
112423
112873
|
export interface TrackingGoogleadsRoasReportInput {
|
|
112424
|
-
|
|
112425
|
-
|
|
112874
|
+
/**
|
|
112875
|
+
* End of the reporting window, inclusive. ISO-8601 date or timestamp; a date-only value covers that whole day, so revenue after midnight is not cut off. Omit to end now.
|
|
112876
|
+
*/
|
|
112877
|
+
to?: string
|
|
112878
|
+
/**
|
|
112879
|
+
* Start of the reporting window, inclusive. ISO-8601 date or timestamp, e.g. 2026-01-01. Omit to start 30 days before the end of the window.
|
|
112880
|
+
*/
|
|
112881
|
+
from?: string
|
|
112882
|
+
/**
|
|
112883
|
+
* Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
|
|
112884
|
+
*/
|
|
112426
112885
|
model?: ("last_click" | "first_click")
|
|
112886
|
+
/**
|
|
112887
|
+
* Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
|
|
112888
|
+
*/
|
|
112427
112889
|
domain?: string
|
|
112890
|
+
/**
|
|
112891
|
+
* Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
|
|
112892
|
+
*/
|
|
112428
112893
|
customerId?: string
|
|
112894
|
+
/**
|
|
112895
|
+
* How far back before a conversion a paid click may sit and still earn the credit, in days. 1-365, silently clamped into that range; defaults to 30.
|
|
112896
|
+
*/
|
|
112429
112897
|
lookbackDays?: number
|
|
112430
112898
|
}
|
|
112431
112899
|
|
|
112432
112900
|
export interface TrackingGoogleadsRoasReportOutput {
|
|
112901
|
+
/**
|
|
112902
|
+
* End of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
|
|
112903
|
+
*/
|
|
112433
112904
|
to: string
|
|
112905
|
+
/**
|
|
112906
|
+
* Start of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
|
|
112907
|
+
*/
|
|
112434
112908
|
from: string
|
|
112909
|
+
/**
|
|
112910
|
+
* Which touchpoint earned the credit in these numbers: the last paid click before the conversion, or the first.
|
|
112911
|
+
*/
|
|
112435
112912
|
model: ("last_click" | "first_click")
|
|
112913
|
+
/**
|
|
112914
|
+
* True when any account below is running on cost older than the freshness threshold, or on no cost at all — read this before acting on the numbers.
|
|
112915
|
+
*/
|
|
112916
|
+
stale: boolean
|
|
112917
|
+
/**
|
|
112918
|
+
* The installed site this report was restricted to; null when it covers every domain of the product.
|
|
112919
|
+
*/
|
|
112436
112920
|
domain: (string | null)
|
|
112921
|
+
/**
|
|
112922
|
+
* One entry per Google Ads account and currency. Kept apart on purpose: amounts in different currencies are never added together.
|
|
112923
|
+
*/
|
|
112437
112924
|
accounts: {
|
|
112925
|
+
/**
|
|
112926
|
+
* True when this account's cost is older than the freshness threshold, or was never pulled — the ROAS below is then built on outdated spend.
|
|
112927
|
+
*/
|
|
112438
112928
|
stale: boolean
|
|
112929
|
+
/**
|
|
112930
|
+
* ISO-4217 code every amount under this account is expressed in, e.g. USD. One account appears once per currency its cost was booked in.
|
|
112931
|
+
*/
|
|
112439
112932
|
currency: string
|
|
112933
|
+
/**
|
|
112934
|
+
* This account's campaigns, each with its ad groups and ads nested underneath.
|
|
112935
|
+
*/
|
|
112440
112936
|
campaigns: TrackingGoogleadsRoasReportOutputItems[]
|
|
112937
|
+
/**
|
|
112938
|
+
* Google Ads account these campaigns belong to, by customer id without dashes.
|
|
112939
|
+
*/
|
|
112441
112940
|
customerId: string
|
|
112941
|
+
/**
|
|
112942
|
+
* When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
|
|
112943
|
+
*/
|
|
112442
112944
|
costLastSyncedAt: (string | null)
|
|
112443
112945
|
}[]
|
|
112946
|
+
/**
|
|
112947
|
+
* ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
|
|
112948
|
+
*/
|
|
112949
|
+
currency: (string | null)
|
|
112950
|
+
/**
|
|
112951
|
+
* When this report was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
|
|
112952
|
+
*/
|
|
112444
112953
|
computedAt: string
|
|
112954
|
+
/**
|
|
112955
|
+
* Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
|
|
112956
|
+
*/
|
|
112957
|
+
customerId: (string | null)
|
|
112958
|
+
/**
|
|
112959
|
+
* How far back before a conversion a paid click was allowed to sit and still earn the credit, in days.
|
|
112960
|
+
*/
|
|
112445
112961
|
lookbackDays: number
|
|
112962
|
+
/**
|
|
112963
|
+
* Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
|
|
112964
|
+
*/
|
|
112965
|
+
costLastSyncedAt: (string | null)
|
|
112966
|
+
/**
|
|
112967
|
+
* Revenue we tracked but could not tie to any Google Ads campaign, grouped by the utm_campaign we saw. A long list here means the ad tagging needs fixing, not that the ads failed.
|
|
112968
|
+
*/
|
|
112446
112969
|
unmatchedAttributed: {
|
|
112970
|
+
/**
|
|
112971
|
+
* Revenue that stayed outside every campaign, one row per currency. Never cross-summed.
|
|
112972
|
+
*/
|
|
112447
112973
|
revenue: TrackingGoogleadsRoasReportOutputItems1[]
|
|
112974
|
+
/**
|
|
112975
|
+
* How many distinct customers paid but could not be traced to any Google Ads campaign.
|
|
112976
|
+
*/
|
|
112448
112977
|
conversions: number
|
|
112978
|
+
/**
|
|
112979
|
+
* The utm_campaign value we saw on the visit, which matched no Google Ads campaign; null when the visit carried none. This is the diagnostic: fix the tagging and the revenue moves into a campaign.
|
|
112980
|
+
*/
|
|
112449
112981
|
utmCampaign: (string | null)
|
|
112450
112982
|
}[]
|
|
112451
112983
|
}
|
|
112452
112984
|
export interface TrackingGoogleadsRoasReportOutputItems {
|
|
112985
|
+
/**
|
|
112986
|
+
* What one attributed customer cost: cost divided by attributed conversions, in minor units of the account currency. null when there were no attributed conversions.
|
|
112987
|
+
*/
|
|
112453
112988
|
cpa: (number | null)
|
|
112989
|
+
/**
|
|
112990
|
+
* Google Ads ad this node is, by its numeric id; null on a campaign or ad group node.
|
|
112991
|
+
*/
|
|
112454
112992
|
adId: (string | null)
|
|
112993
|
+
/**
|
|
112994
|
+
* What Google charged and what Google itself counted for this node over the window.
|
|
112995
|
+
*/
|
|
112455
112996
|
cost: {
|
|
112997
|
+
/**
|
|
112998
|
+
* How many times someone clicked through from Google over the window.
|
|
112999
|
+
*/
|
|
112456
113000
|
clicks: number
|
|
113001
|
+
/**
|
|
113002
|
+
* ISO-4217 code of the Google Ads account these numbers come from, e.g. USD. Fixed per account.
|
|
113003
|
+
*/
|
|
112457
113004
|
currency: string
|
|
113005
|
+
/**
|
|
113006
|
+
* What Google charged for this campaign, ad group or ad over the window, in minor units (1250 = 12.50).
|
|
113007
|
+
*/
|
|
112458
113008
|
costMinor: number
|
|
113009
|
+
/**
|
|
113010
|
+
* How many times Google showed this ad over the window.
|
|
113011
|
+
*/
|
|
112459
113012
|
impressions: number
|
|
113013
|
+
/**
|
|
113014
|
+
* Conversions GOOGLE counted for this node — its own attribution, not ours. May be fractional, because Google splits credit across touchpoints.
|
|
113015
|
+
*/
|
|
112460
113016
|
platformConversions: number
|
|
113017
|
+
/**
|
|
113018
|
+
* Conversion value GOOGLE reports for this node, in minor units of the account currency. Compare it with our attributed revenue; the two rarely agree.
|
|
113019
|
+
*/
|
|
112461
113020
|
platformConversionsValueMinor: number
|
|
112462
113021
|
}
|
|
113022
|
+
/**
|
|
113023
|
+
* What this campaign, ad group or ad is called in Google Ads; null when the name has not been synced.
|
|
113024
|
+
*/
|
|
112463
113025
|
name: (string | null)
|
|
113026
|
+
/**
|
|
113027
|
+
* Return on ad spend: our net attributed revenue divided by cost, both in the account currency. A plain ratio, not a percentage — 2.4 means 2.40 back per 1.00 spent. null when cost is 0 or nothing was attributed.
|
|
113028
|
+
*/
|
|
112464
113029
|
roas: (number | null)
|
|
113030
|
+
/**
|
|
113031
|
+
* How deep in the Google Ads hierarchy this node sits. Attributed revenue, ROAS and CPA exist at campaign level only; cost exists at all three.
|
|
113032
|
+
*/
|
|
112465
113033
|
level: ("campaign" | "ad_group" | "ad")
|
|
113034
|
+
/**
|
|
113035
|
+
* Google Ads campaign state, passed through raw: ENABLED, PAUSED, REMOVED. Present on campaign nodes only — the key is absent below.
|
|
113036
|
+
*/
|
|
112466
113037
|
status?: string
|
|
113038
|
+
/**
|
|
113039
|
+
* The level below this one: ad groups under a campaign, ads under an ad group, empty on an ad.
|
|
113040
|
+
*/
|
|
112467
113041
|
children: TrackingGoogleadsRoasReportOutputItems[]
|
|
113042
|
+
/**
|
|
113043
|
+
* Google Ads ad group this node belongs to, by its numeric id; null on a campaign node.
|
|
113044
|
+
*/
|
|
112468
113045
|
adGroupId: (string | null)
|
|
113046
|
+
/**
|
|
113047
|
+
* What WE traced back to this node from our own tracking. null below campaign level, and null on a campaign nothing was traced to.
|
|
113048
|
+
*/
|
|
112469
113049
|
attributed: ({
|
|
113050
|
+
/**
|
|
113051
|
+
* What WE traced back to this campaign, one row per currency the customers paid in. Never cross-summed — use accountCurrencyNetMinor for a single figure.
|
|
113052
|
+
*/
|
|
112470
113053
|
revenue: TrackingGoogleadsRoasReportOutputItems1[]
|
|
112471
|
-
|
|
113054
|
+
/**
|
|
113055
|
+
* Which key actually joined this revenue to the Google campaign, strongest first: lt_campaign_id (the id our own tracking template stamps on the landing URL), campaign_id (the id inside utm_campaign), campaign_name (the campaign name inside utm_campaign, a guess), gclid (the click id). null means the join key is unknown; treat campaign_name as the weakest evidence.
|
|
113056
|
+
*/
|
|
113057
|
+
matchedBy: (("lt_campaign_id" | "campaign_id" | "campaign_name" | "gclid") | null)
|
|
113058
|
+
/**
|
|
113059
|
+
* How many distinct customers we traced back to this campaign over the window. Whole numbers: we give a conversion to one campaign, we never split it.
|
|
113060
|
+
*/
|
|
112472
113061
|
conversions: number
|
|
113062
|
+
/**
|
|
113063
|
+
* Our net attributed revenue in the account currency alone, in minor units. 0 when nobody paid in that currency. This is the ROAS numerator, and the single-value answer beside the revenue list.
|
|
113064
|
+
*/
|
|
112473
113065
|
accountCurrencyNetMinor: number
|
|
112474
113066
|
} | null)
|
|
113067
|
+
/**
|
|
113068
|
+
* Google Ads campaign this node belongs to, by its numeric id. Set at every level.
|
|
113069
|
+
*/
|
|
112475
113070
|
campaignId: string
|
|
113071
|
+
/**
|
|
113072
|
+
* Google Ads account this node belongs to, by customer id without dashes.
|
|
113073
|
+
*/
|
|
112476
113074
|
customerId: string
|
|
113075
|
+
/**
|
|
113076
|
+
* Where Google ran the campaign, passed through raw: SEARCH, DISPLAY, VIDEO, PERFORMANCE_MAX and so on. Present on campaign nodes only, and may be null there.
|
|
113077
|
+
*/
|
|
112477
113078
|
channelType?: (string | null)
|
|
112478
113079
|
}
|
|
112479
113080
|
export interface TrackingGoogleadsRoasReportOutputItems1 {
|
|
113081
|
+
/**
|
|
113082
|
+
* ISO-4217 code the three amounts on this row are denominated in, e.g. USD. One row per currency; rows are never added together.
|
|
113083
|
+
*/
|
|
112480
113084
|
currency: string
|
|
113085
|
+
/**
|
|
113086
|
+
* Money kept after refunds (gross minus refunded), in minor units of this row's currency. This is what ROAS is calculated from.
|
|
113087
|
+
*/
|
|
112481
113088
|
netMinor: number
|
|
113089
|
+
/**
|
|
113090
|
+
* Money taken before refunds, in minor units of this row's currency (1250 = 12.50).
|
|
113091
|
+
*/
|
|
112482
113092
|
grossMinor: number
|
|
113093
|
+
/**
|
|
113094
|
+
* Money given back within the window, in minor units of this row's currency; already subtracted from netMinor.
|
|
113095
|
+
*/
|
|
112483
113096
|
refundedMinor: number
|
|
112484
113097
|
}
|
|
112485
113098
|
|
|
@@ -112488,21 +113101,67 @@ export interface TrackingGoogleadsSyncNowInput {
|
|
|
112488
113101
|
}
|
|
112489
113102
|
|
|
112490
113103
|
export interface TrackingGoogleadsSyncNowOutput {
|
|
113104
|
+
/**
|
|
113105
|
+
* How much this sweep wrote, split by what it wrote. Re-running the same window updates rows in place rather than adding, so these are rows touched, not rows gained. All zero when the status is skipped.
|
|
113106
|
+
*/
|
|
112491
113107
|
rows: {
|
|
113108
|
+
/**
|
|
113109
|
+
* Ads written.
|
|
113110
|
+
*/
|
|
112492
113111
|
ads: number
|
|
113112
|
+
/**
|
|
113113
|
+
* Day-by-day ad spend and metric rows written.
|
|
113114
|
+
*/
|
|
112493
113115
|
adDaily: number
|
|
113116
|
+
/**
|
|
113117
|
+
* Ad groups written.
|
|
113118
|
+
*/
|
|
112494
113119
|
adGroups: number
|
|
113120
|
+
/**
|
|
113121
|
+
* Campaigns written, names and status included.
|
|
113122
|
+
*/
|
|
112495
113123
|
campaigns: number
|
|
113124
|
+
/**
|
|
113125
|
+
* Day-by-day ad-group spend and metric rows written.
|
|
113126
|
+
*/
|
|
112496
113127
|
adGroupDaily: number
|
|
113128
|
+
/**
|
|
113129
|
+
* Day-by-day campaign spend and metric rows written.
|
|
113130
|
+
*/
|
|
112497
113131
|
campaignDaily: number
|
|
112498
113132
|
}
|
|
113133
|
+
/**
|
|
113134
|
+
* This one sync run. Match the completion event back to this step on it, not on productId: a product syncs many times, and the daily cron run and a manual one are different runs.
|
|
113135
|
+
*/
|
|
113136
|
+
runId: string
|
|
113137
|
+
/**
|
|
113138
|
+
* Why nothing was written, when the status is skipped: the account is not chosen yet, the authorisation expired, or Google was unavailable. Absent on a sweep that ran.
|
|
113139
|
+
*/
|
|
112499
113140
|
reason?: string
|
|
113141
|
+
/**
|
|
113142
|
+
* Whether the sweep ran. skipped means the Google Ads account could not be reached and nothing at all was written.
|
|
113143
|
+
*/
|
|
112500
113144
|
status: ("ok" | "skipped")
|
|
113145
|
+
/**
|
|
113146
|
+
* The range of days this sweep read spend and metrics for.
|
|
113147
|
+
*/
|
|
112501
113148
|
window: {
|
|
113149
|
+
/**
|
|
113150
|
+
* Last day covered, inclusive, as YYYY-MM-DD.
|
|
113151
|
+
*/
|
|
112502
113152
|
end: string
|
|
113153
|
+
/**
|
|
113154
|
+
* First day covered, inclusive, as YYYY-MM-DD.
|
|
113155
|
+
*/
|
|
112503
113156
|
start: string
|
|
112504
113157
|
}
|
|
113158
|
+
/**
|
|
113159
|
+
* The tenant whose Google Ads account was swept.
|
|
113160
|
+
*/
|
|
112505
113161
|
productId: string
|
|
113162
|
+
/**
|
|
113163
|
+
* When the sweep finished. Null when nothing was written.
|
|
113164
|
+
*/
|
|
112506
113165
|
lastSyncedAt: (string | null)
|
|
112507
113166
|
}
|
|
112508
113167
|
|
|
@@ -112518,54 +113177,187 @@ from?: string
|
|
|
112518
113177
|
}
|
|
112519
113178
|
|
|
112520
113179
|
export interface TrackingGoogleadsTrackingHealthOutput {
|
|
113180
|
+
/**
|
|
113181
|
+
* End of the range these figures cover, as an instant.
|
|
113182
|
+
*/
|
|
112521
113183
|
to: string
|
|
113184
|
+
/**
|
|
113185
|
+
* Start of the range these figures cover, as an instant. Echoes back the range that was asked for.
|
|
113186
|
+
*/
|
|
112522
113187
|
from: string
|
|
113188
|
+
/**
|
|
113189
|
+
* Whether the tracking template has been seen working live: true once at least one tagged click has arrived.
|
|
113190
|
+
*/
|
|
112523
113191
|
installed: boolean
|
|
113192
|
+
/**
|
|
113193
|
+
* Whether the sample above was cut short. True means more untagged URLs exist than are listed.
|
|
113194
|
+
*/
|
|
112524
113195
|
truncated: boolean
|
|
113196
|
+
/**
|
|
113197
|
+
* Google paid clicks that arrived on the site in this range. The denominator for everything below.
|
|
113198
|
+
*/
|
|
112525
113199
|
paidClicks: number
|
|
113200
|
+
/**
|
|
113201
|
+
* How complete the figures above are. Holds no metric of its own — it exists so the breakage rate is not read as one uniform population.
|
|
113202
|
+
*/
|
|
112526
113203
|
dataQuality: {
|
|
113204
|
+
/**
|
|
113205
|
+
* Paid clicks from visitors who declined consent. Counted inside paidClicks, never added to it — a cookieless click is a real click. Clicks from sites running no consent banner are not counted here: nobody was asked, which is not the same as being told no.
|
|
113206
|
+
*/
|
|
112527
113207
|
cookielessPaidClicks: number
|
|
112528
113208
|
}
|
|
113209
|
+
/**
|
|
113210
|
+
* Share of paid clicks that arrived untagged, between 0 and 1. Anything much above zero means the tracking template needs fixing.
|
|
113211
|
+
*/
|
|
112529
113212
|
breakageRate: number
|
|
113213
|
+
/**
|
|
113214
|
+
* Of those, the ones that arrived carrying our URL tracking parameters, so the campaign behind them is known.
|
|
113215
|
+
*/
|
|
112530
113216
|
taggedClicks: number
|
|
113217
|
+
/**
|
|
113218
|
+
* When the most recent untagged click arrived. Close to now means the breakage is still live. Null when none did.
|
|
113219
|
+
*/
|
|
112531
113220
|
lastUntaggedAt: (string | null)
|
|
113221
|
+
/**
|
|
113222
|
+
* Of those, the ones that arrived without our parameters, so the money spent on them cannot be attributed. This is what the tracking template being missing or broken looks like.
|
|
113223
|
+
*/
|
|
112532
113224
|
untaggedClicks: number
|
|
113225
|
+
/**
|
|
113226
|
+
* When the first untagged click of the range arrived — roughly when the breakage started. Null when none did.
|
|
113227
|
+
*/
|
|
112533
113228
|
firstUntaggedAt: (string | null)
|
|
113229
|
+
/**
|
|
113230
|
+
* A handful of the actual landing URLs that arrived untagged, to paste into a browser while fixing the template. Real customer URLs, query strings included.
|
|
113231
|
+
*/
|
|
112534
113232
|
sampleUntaggedUrls: string[]
|
|
112535
113233
|
}
|
|
112536
113234
|
|
|
112537
113235
|
export interface TrackingGoogleadsUsVsPlatformInput {
|
|
112538
|
-
|
|
112539
|
-
|
|
113236
|
+
/**
|
|
113237
|
+
* End of the reporting window, inclusive. ISO-8601 date or timestamp; a date-only value covers that whole day, so revenue after midnight is not cut off. Omit to end now.
|
|
113238
|
+
*/
|
|
113239
|
+
to?: string
|
|
113240
|
+
/**
|
|
113241
|
+
* Start of the reporting window, inclusive. ISO-8601 date or timestamp, e.g. 2026-01-01. Omit to start 30 days before the end of the window.
|
|
113242
|
+
*/
|
|
113243
|
+
from?: string
|
|
113244
|
+
/**
|
|
113245
|
+
* Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
|
|
113246
|
+
*/
|
|
112540
113247
|
model?: ("last_click" | "first_click")
|
|
113248
|
+
/**
|
|
113249
|
+
* Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
|
|
113250
|
+
*/
|
|
112541
113251
|
domain?: string
|
|
113252
|
+
/**
|
|
113253
|
+
* Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
|
|
113254
|
+
*/
|
|
112542
113255
|
customerId?: string
|
|
113256
|
+
/**
|
|
113257
|
+
* How far back before a conversion a paid click may sit and still earn the credit, in days. 1-365, silently clamped into that range; defaults to 30.
|
|
113258
|
+
*/
|
|
112543
113259
|
lookbackDays?: number
|
|
112544
113260
|
}
|
|
112545
113261
|
|
|
112546
113262
|
export interface TrackingGoogleadsUsVsPlatformOutput {
|
|
113263
|
+
/**
|
|
113264
|
+
* End of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
|
|
113265
|
+
*/
|
|
112547
113266
|
to: string
|
|
113267
|
+
/**
|
|
113268
|
+
* Start of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
|
|
113269
|
+
*/
|
|
112548
113270
|
from: string
|
|
113271
|
+
/**
|
|
113272
|
+
* Which touchpoint earned the credit on OUR side of the comparison: the last paid click before the conversion, or the first. Google always uses its own model.
|
|
113273
|
+
*/
|
|
112549
113274
|
model: ("last_click" | "first_click")
|
|
113275
|
+
/**
|
|
113276
|
+
* True when any account below is running on cost older than the freshness threshold, or on no cost at all — read this before acting on the numbers.
|
|
113277
|
+
*/
|
|
113278
|
+
stale: boolean
|
|
113279
|
+
/**
|
|
113280
|
+
* The installed site this comparison was restricted to; null when it covers every domain of the product.
|
|
113281
|
+
*/
|
|
112550
113282
|
domain: (string | null)
|
|
113283
|
+
/**
|
|
113284
|
+
* One entry per Google Ads account and currency, each holding its per-campaign comparison rows. Currencies are never added together.
|
|
113285
|
+
*/
|
|
112551
113286
|
accounts: {
|
|
113287
|
+
/**
|
|
113288
|
+
* One row per campaign in this account, ours beside Google's.
|
|
113289
|
+
*/
|
|
112552
113290
|
rows: {
|
|
113291
|
+
/**
|
|
113292
|
+
* What this campaign is called in Google Ads; null when the name has not been synced.
|
|
113293
|
+
*/
|
|
112553
113294
|
name: (string | null)
|
|
113295
|
+
/**
|
|
113296
|
+
* ISO-4217 code both sides of this comparison are expressed in, e.g. USD. Ours and Google's are never converted.
|
|
113297
|
+
*/
|
|
112554
113298
|
currency: string
|
|
113299
|
+
/**
|
|
113300
|
+
* The Google Ads campaign this row compares, by its numeric id.
|
|
113301
|
+
*/
|
|
112555
113302
|
campaignId: string
|
|
113303
|
+
/**
|
|
113304
|
+
* Google Ads account this campaign belongs to, by customer id without dashes.
|
|
113305
|
+
*/
|
|
112556
113306
|
customerId: string
|
|
113307
|
+
/**
|
|
113308
|
+
* How many distinct customers WE traced to this campaign. A whole number: we never split a customer across campaigns.
|
|
113309
|
+
*/
|
|
112557
113310
|
ourConversions: number
|
|
113311
|
+
/**
|
|
113312
|
+
* Net revenue WE traced to this campaign, in minor units of the account currency (1250 = 12.50). 0 when we traced none.
|
|
113313
|
+
*/
|
|
112558
113314
|
ourRevenueNetMinor: number
|
|
113315
|
+
/**
|
|
113316
|
+
* Conversions GOOGLE counted for the same campaign. May be fractional, because Google splits credit across touchpoints — which is the usual reason the two sides disagree.
|
|
113317
|
+
*/
|
|
112559
113318
|
platformConversions: number
|
|
113319
|
+
/**
|
|
113320
|
+
* Conversion value GOOGLE reports for the same campaign, in minor units of the account currency. The counterpart of ourRevenueNetMinor.
|
|
113321
|
+
*/
|
|
112560
113322
|
platformConversionsValueMinor: number
|
|
112561
113323
|
}[]
|
|
113324
|
+
/**
|
|
113325
|
+
* True when this account's Google-side numbers are older than the freshness threshold, or were never pulled — the comparison is then unfair to one side.
|
|
113326
|
+
*/
|
|
112562
113327
|
stale: boolean
|
|
113328
|
+
/**
|
|
113329
|
+
* ISO-4217 code every amount under this account is expressed in, e.g. USD. One account appears once per currency its cost was booked in.
|
|
113330
|
+
*/
|
|
112563
113331
|
currency: string
|
|
113332
|
+
/**
|
|
113333
|
+
* Google Ads account these comparison rows belong to, by customer id without dashes.
|
|
113334
|
+
*/
|
|
112564
113335
|
customerId: string
|
|
113336
|
+
/**
|
|
113337
|
+
* When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
|
|
113338
|
+
*/
|
|
112565
113339
|
costLastSyncedAt: (string | null)
|
|
112566
113340
|
}[]
|
|
113341
|
+
/**
|
|
113342
|
+
* ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
|
|
113343
|
+
*/
|
|
113344
|
+
currency: (string | null)
|
|
113345
|
+
/**
|
|
113346
|
+
* When this comparison was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
|
|
113347
|
+
*/
|
|
112567
113348
|
computedAt: string
|
|
113349
|
+
/**
|
|
113350
|
+
* Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
|
|
113351
|
+
*/
|
|
113352
|
+
customerId: (string | null)
|
|
113353
|
+
/**
|
|
113354
|
+
* How far back before a conversion a paid click was allowed to sit and still earn the credit on our side, in days.
|
|
113355
|
+
*/
|
|
112568
113356
|
lookbackDays: number
|
|
113357
|
+
/**
|
|
113358
|
+
* Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
|
|
113359
|
+
*/
|
|
113360
|
+
costLastSyncedAt: (string | null)
|
|
112569
113361
|
}
|
|
112570
113362
|
|
|
112571
113363
|
export interface TrackingIdentityHealthInput {
|
|
@@ -112573,11 +113365,29 @@ export interface TrackingIdentityHealthInput {
|
|
|
112573
113365
|
}
|
|
112574
113366
|
|
|
112575
113367
|
export interface TrackingIdentityHealthOutput {
|
|
113368
|
+
/**
|
|
113369
|
+
* When these numbers were computed, ISO 8601 UTC. They are a live count, so this is effectively the moment of the call.
|
|
113370
|
+
*/
|
|
112576
113371
|
computedAt: string
|
|
113372
|
+
/**
|
|
113373
|
+
* How many people the product holds in total, anonymous ones included. The denominator of both rates below.
|
|
113374
|
+
*/
|
|
112577
113375
|
totalProfiles: number
|
|
113376
|
+
/**
|
|
113377
|
+
* Identified people as a share of the total, normally 0 to 1 (0.42 is 42%). A drop here usually means a broken identify() call, not fewer visitors.
|
|
113378
|
+
*/
|
|
112578
113379
|
identifiedRate: number
|
|
113380
|
+
/**
|
|
113381
|
+
* People with an ad touchpoint as a share of the total, normally 0 to 1. It counts click-id identifiers, so an identifier outliving its profile can push it just above 1 — read it as an indicator, not as a proportion to assert on.
|
|
113382
|
+
*/
|
|
112579
113383
|
adTouchpointRate: number
|
|
113384
|
+
/**
|
|
113385
|
+
* How many of them an email or phone is known for — the people a message can actually be sent to.
|
|
113386
|
+
*/
|
|
112580
113387
|
identifiedProfiles: number
|
|
113388
|
+
/**
|
|
113389
|
+
* How many people arrived carrying an ad click id. A proxy for paid reach: it counts anyone with at least one click id on record.
|
|
113390
|
+
*/
|
|
112581
113391
|
adTouchpointProfiles: number
|
|
112582
113392
|
}
|
|
112583
113393
|
|
|
@@ -112589,6 +113399,9 @@ domain: string
|
|
|
112589
113399
|
}
|
|
112590
113400
|
|
|
112591
113401
|
export interface TrackingInstallDomainsCreateOutput {
|
|
113402
|
+
/**
|
|
113403
|
+
* The domain as stored after normalisation, which may differ from what was submitted
|
|
113404
|
+
*/
|
|
112592
113405
|
domain: string
|
|
112593
113406
|
}
|
|
112594
113407
|
|
|
@@ -112600,6 +113413,9 @@ domain: string
|
|
|
112600
113413
|
}
|
|
112601
113414
|
|
|
112602
113415
|
export interface TrackingInstallDomainsDeleteOutput {
|
|
113416
|
+
/**
|
|
113417
|
+
* Always true — the domain was removed; a failure arrives as an error, not as false
|
|
113418
|
+
*/
|
|
112603
113419
|
ok: true
|
|
112604
113420
|
}
|
|
112605
113421
|
|
|
@@ -112608,14 +113424,35 @@ export interface TrackingInstallDomainsListInput {
|
|
|
112608
113424
|
}
|
|
112609
113425
|
|
|
112610
113426
|
export interface TrackingInstallDomainsListOutput {
|
|
113427
|
+
/**
|
|
113428
|
+
* Domains sending events that nobody registered — usually a staging host, a typo, or an install worth adding
|
|
113429
|
+
*/
|
|
112611
113430
|
discovered: TrackingInstallDomainsListOutputItems[]
|
|
113431
|
+
/**
|
|
113432
|
+
* Domains deliberately put on the install checklist, each with whether its script has been seen
|
|
113433
|
+
*/
|
|
112612
113434
|
registered: TrackingInstallDomainsListOutputItems[]
|
|
113435
|
+
/**
|
|
113436
|
+
* Length in days of the lookback window the `seen` and `lastSeen` figures are measured over
|
|
113437
|
+
*/
|
|
112613
113438
|
windowDays: number
|
|
112614
113439
|
}
|
|
112615
113440
|
export interface TrackingInstallDomainsListOutputItems {
|
|
113441
|
+
/**
|
|
113442
|
+
* Whether the tracking script actually sent an event from this domain inside the lookback window
|
|
113443
|
+
*/
|
|
112616
113444
|
seen: boolean
|
|
113445
|
+
/**
|
|
113446
|
+
* Normalised domain name the status is reported for
|
|
113447
|
+
*/
|
|
112617
113448
|
domain: string
|
|
113449
|
+
/**
|
|
113450
|
+
* ISO-8601 timestamp of the most recent event from this domain, or null if none arrived in the window
|
|
113451
|
+
*/
|
|
112618
113452
|
lastSeen: (string | null)
|
|
113453
|
+
/**
|
|
113454
|
+
* Whether the domain is on the install checklist on purpose, as opposed to merely observed sending events
|
|
113455
|
+
*/
|
|
112619
113456
|
registered: boolean
|
|
112620
113457
|
}
|
|
112621
113458
|
|
|
@@ -112627,6 +113464,9 @@ domain: string
|
|
|
112627
113464
|
}
|
|
112628
113465
|
|
|
112629
113466
|
export interface TrackingLinkDomainsCreateOutput {
|
|
113467
|
+
/**
|
|
113468
|
+
* The domain as stored after normalisation, which may differ from what was submitted
|
|
113469
|
+
*/
|
|
112630
113470
|
domain: string
|
|
112631
113471
|
}
|
|
112632
113472
|
|
|
@@ -112638,6 +113478,9 @@ domain: string
|
|
|
112638
113478
|
}
|
|
112639
113479
|
|
|
112640
113480
|
export interface TrackingLinkDomainsDeleteOutput {
|
|
113481
|
+
/**
|
|
113482
|
+
* Always true — the domain left the linking group; a failure arrives as an error, not as false
|
|
113483
|
+
*/
|
|
112641
113484
|
ok: true
|
|
112642
113485
|
}
|
|
112643
113486
|
|
|
@@ -112646,6 +113489,9 @@ export interface TrackingLinkDomainsListInput {
|
|
|
112646
113489
|
}
|
|
112647
113490
|
|
|
112648
113491
|
export interface TrackingLinkDomainsListOutput {
|
|
113492
|
+
/**
|
|
113493
|
+
* Root domains in the linking group; the tracking script decorates links between any two of them so one visitor stays one visitor
|
|
113494
|
+
*/
|
|
112649
113495
|
domains: string[]
|
|
112650
113496
|
}
|
|
112651
113497
|
|
|
@@ -112665,22 +113511,70 @@ domain?: string
|
|
|
112665
113511
|
}
|
|
112666
113512
|
|
|
112667
113513
|
export interface TrackingLiveEventsListOutput {
|
|
113514
|
+
/**
|
|
113515
|
+
* Pass back as `since` to fetch what arrived after this page. Null when there is nothing older to page into.
|
|
113516
|
+
*/
|
|
112668
113517
|
cursor: (string | null)
|
|
113518
|
+
/**
|
|
113519
|
+
* The page of events, newest first.
|
|
113520
|
+
*/
|
|
112669
113521
|
events: {
|
|
113522
|
+
/**
|
|
113523
|
+
* Stable identifier of this single event; unique within the product and safe to deduplicate on across polls.
|
|
113524
|
+
*/
|
|
112670
113525
|
id: string
|
|
113526
|
+
/**
|
|
113527
|
+
* When the event happened, as reported by the tracker (ISO 8601, UTC).
|
|
113528
|
+
*/
|
|
112671
113529
|
ts: string
|
|
113530
|
+
/**
|
|
113531
|
+
* Page address the event fired on, query string included. Free text from the customer site, so it can carry personal data.
|
|
113532
|
+
*/
|
|
112672
113533
|
url: (string | null)
|
|
113534
|
+
/**
|
|
113535
|
+
* Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
|
|
113536
|
+
*/
|
|
112673
113537
|
name: string
|
|
113538
|
+
/**
|
|
113539
|
+
* Document title of that page at the time. Free text from the customer site, so it can carry personal data.
|
|
113540
|
+
*/
|
|
112674
113541
|
title: (string | null)
|
|
113542
|
+
/**
|
|
113543
|
+
* Site the event came from; null when the tracker could not determine one.
|
|
113544
|
+
*/
|
|
112675
113545
|
domain: (string | null)
|
|
113546
|
+
/**
|
|
113547
|
+
* Where this visit came from, as read off the landing URL and referrer. Every field is null when the visit carried nothing.
|
|
113548
|
+
*/
|
|
112676
113549
|
source: {
|
|
113550
|
+
/**
|
|
113551
|
+
* Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
|
|
113552
|
+
*/
|
|
112677
113553
|
referrer: (string | null)
|
|
113554
|
+
/**
|
|
113555
|
+
* utm_medium of the landing URL, e.g. cpc; null when absent.
|
|
113556
|
+
*/
|
|
112678
113557
|
utmMedium: (string | null)
|
|
113558
|
+
/**
|
|
113559
|
+
* utm_source of the landing URL, e.g. newsletter; null when absent.
|
|
113560
|
+
*/
|
|
112679
113561
|
utmSource: (string | null)
|
|
113562
|
+
/**
|
|
113563
|
+
* Which ad-network click id was present on the landing URL, e.g. 'gclid'. Null when the visit carried none.
|
|
113564
|
+
*/
|
|
112680
113565
|
clickIdType: (string | null)
|
|
113566
|
+
/**
|
|
113567
|
+
* utm_campaign of the landing URL; null when absent.
|
|
113568
|
+
*/
|
|
112681
113569
|
utmCampaign: (string | null)
|
|
112682
113570
|
}
|
|
113571
|
+
/**
|
|
113572
|
+
* Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
|
|
113573
|
+
*/
|
|
112683
113574
|
country: (string | null)
|
|
113575
|
+
/**
|
|
113576
|
+
* Pseudonymous visitor id the person graph joins on. Null for a visitor who declined statistics consent or was never asked — those events arrive cookieless and carry no identifier at all.
|
|
113577
|
+
*/
|
|
112684
113578
|
anonymousId: (string | null)
|
|
112685
113579
|
}[]
|
|
112686
113580
|
}
|
|
@@ -112693,18 +113587,52 @@ profileId: string
|
|
|
112693
113587
|
}
|
|
112694
113588
|
|
|
112695
113589
|
export interface TrackingProfilesDeleteOutput {
|
|
113590
|
+
/**
|
|
113591
|
+
* Always true: the response only exists when the erasure ran. A failure arrives as an error, not as ok=false.
|
|
113592
|
+
*/
|
|
112696
113593
|
ok: true
|
|
113594
|
+
/**
|
|
113595
|
+
* What happened to the archived copy of the events. Postgres is erased synchronously; the archive is not, and this says so out loud.
|
|
113596
|
+
*/
|
|
112697
113597
|
archive: {
|
|
113598
|
+
/**
|
|
113599
|
+
* Plain-language reason the archived copy could not be deleted in the same breath — text meant to be quoted into a compliance record.
|
|
113600
|
+
*/
|
|
112698
113601
|
note: string
|
|
113602
|
+
/**
|
|
113603
|
+
* Always gap_flagged: the archived copy is known to still hold this person and the gap has been recorded rather than silently ignored.
|
|
113604
|
+
*/
|
|
112699
113605
|
status: "gap_flagged"
|
|
112700
113606
|
}
|
|
113607
|
+
/**
|
|
113608
|
+
* How much was actually destroyed, by kind. Worth recording: it is the evidence that the erasure did something.
|
|
113609
|
+
*/
|
|
112701
113610
|
deleted: {
|
|
113611
|
+
/**
|
|
113612
|
+
* Tracked events removed, found through the anonymous ids this person browsed under.
|
|
113613
|
+
*/
|
|
112702
113614
|
events: number
|
|
113615
|
+
/**
|
|
113616
|
+
* Merge records removed — the history of this person having been joined with another.
|
|
113617
|
+
*/
|
|
112703
113618
|
merges: number
|
|
113619
|
+
/**
|
|
113620
|
+
* Profile rows removed: 1 in practice, and 0 only if the row vanished between the lookup and the delete.
|
|
113621
|
+
*/
|
|
112704
113622
|
profile: number
|
|
113623
|
+
/**
|
|
113624
|
+
* Emails, phones, anonymous ids and click ids removed for this person.
|
|
113625
|
+
*/
|
|
112705
113626
|
identifiers: number
|
|
112706
113627
|
}
|
|
113628
|
+
/**
|
|
113629
|
+
* The person who was erased. Nothing else of them remains, so this is all there is left to name them by.
|
|
113630
|
+
*/
|
|
112707
113631
|
profileId: string
|
|
113632
|
+
/**
|
|
113633
|
+
* This erasure attempt. The completion event carries the same value under the same name, so a step recognises its own completion even when another workflow is erasing the same person at the same moment.
|
|
113634
|
+
*/
|
|
113635
|
+
requestId: string
|
|
112708
113636
|
}
|
|
112709
113637
|
|
|
112710
113638
|
export interface TrackingProfilesExportInput {
|
|
@@ -112715,52 +113643,172 @@ profileId: string
|
|
|
112715
113643
|
}
|
|
112716
113644
|
|
|
112717
113645
|
export interface TrackingProfilesExportOutput {
|
|
113646
|
+
/**
|
|
113647
|
+
* The complete history, newest event first, capped at 50000 events — check `truncated` before treating it as complete.
|
|
113648
|
+
*/
|
|
112718
113649
|
journey: {
|
|
113650
|
+
/**
|
|
113651
|
+
* When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
|
|
113652
|
+
*/
|
|
112719
113653
|
ts: string
|
|
113654
|
+
/**
|
|
113655
|
+
* Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
|
|
113656
|
+
*/
|
|
112720
113657
|
ref: string
|
|
113658
|
+
/**
|
|
113659
|
+
* Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
|
|
113660
|
+
*/
|
|
112721
113661
|
url: (string | null)
|
|
113662
|
+
/**
|
|
113663
|
+
* What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
|
|
113664
|
+
*/
|
|
112722
113665
|
name: string
|
|
113666
|
+
/**
|
|
113667
|
+
* Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
|
|
113668
|
+
*/
|
|
112723
113669
|
props: {
|
|
112724
113670
|
[k: string]: unknown
|
|
112725
113671
|
}
|
|
113672
|
+
/**
|
|
113673
|
+
* Title of the page as the browser reported it. Null off-page.
|
|
113674
|
+
*/
|
|
112726
113675
|
title: (string | null)
|
|
113676
|
+
/**
|
|
113677
|
+
* Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
|
|
113678
|
+
*/
|
|
112727
113679
|
domain: (string | null)
|
|
113680
|
+
/**
|
|
113681
|
+
* Campaign tags and ad click carried by this event, as they were on the URL at the time.
|
|
113682
|
+
*/
|
|
112728
113683
|
source: {
|
|
113684
|
+
/**
|
|
113685
|
+
* The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
|
|
113686
|
+
*/
|
|
112729
113687
|
clickId: (string | null)
|
|
113688
|
+
/**
|
|
113689
|
+
* utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
|
|
113690
|
+
*/
|
|
112730
113691
|
utmTerm: (string | null)
|
|
113692
|
+
/**
|
|
113693
|
+
* utm_medium on the URL of this event.
|
|
113694
|
+
*/
|
|
112731
113695
|
utmMedium: (string | null)
|
|
113696
|
+
/**
|
|
113697
|
+
* utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
|
|
113698
|
+
*/
|
|
112732
113699
|
utmSource: (string | null)
|
|
113700
|
+
/**
|
|
113701
|
+
* utm_content on the URL of this event — which creative or link variant was clicked.
|
|
113702
|
+
*/
|
|
112733
113703
|
utmContent: (string | null)
|
|
113704
|
+
/**
|
|
113705
|
+
* Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
|
|
113706
|
+
*/
|
|
112734
113707
|
clickIdType: (string | null)
|
|
113708
|
+
/**
|
|
113709
|
+
* utm_campaign on the URL of this event.
|
|
113710
|
+
*/
|
|
112735
113711
|
utmCampaign: (string | null)
|
|
112736
113712
|
}
|
|
113713
|
+
/**
|
|
113714
|
+
* Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
|
|
113715
|
+
*/
|
|
112737
113716
|
country: (string | null)
|
|
113717
|
+
/**
|
|
113718
|
+
* Where the person came from immediately before this event. Null on a direct arrival or off-page.
|
|
113719
|
+
*/
|
|
112738
113720
|
referrer: (string | null)
|
|
113721
|
+
/**
|
|
113722
|
+
* Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
|
|
113723
|
+
*/
|
|
112739
113724
|
sessionId: (string | null)
|
|
112740
113725
|
}[]
|
|
113726
|
+
/**
|
|
113727
|
+
* The person themselves: their handle, how far they have come, and when they were seen.
|
|
113728
|
+
*/
|
|
112741
113729
|
profile: {
|
|
113730
|
+
/**
|
|
113731
|
+
* How far the person has come: anonymous = only a browser behind them, identified = an email or phone is known, customer = they have paid at least once.
|
|
113732
|
+
*/
|
|
112742
113733
|
status: ("anonymous" | "identified" | "customer")
|
|
113734
|
+
/**
|
|
113735
|
+
* When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
|
|
113736
|
+
*/
|
|
112743
113737
|
createdAt: string
|
|
113738
|
+
/**
|
|
113739
|
+
* Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
|
|
113740
|
+
*/
|
|
112744
113741
|
profileId: string
|
|
113742
|
+
/**
|
|
113743
|
+
* Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
|
|
113744
|
+
*/
|
|
112745
113745
|
lastSeenAt: string
|
|
113746
|
+
/**
|
|
113747
|
+
* Timestamp of the earliest event on record for this person, ISO 8601 UTC.
|
|
113748
|
+
*/
|
|
112746
113749
|
firstSeenAt: string
|
|
112747
113750
|
}
|
|
113751
|
+
/**
|
|
113752
|
+
* Everything known about who this person is: the addresses they have been identified by, the ad clicks they arrived by, and the sites they were seen on. Every part of it is a list, and none of the lists names a primary.
|
|
113753
|
+
*/
|
|
112748
113754
|
signals: {
|
|
113755
|
+
/**
|
|
113756
|
+
* Every email this person has ever been identified by. Stably ordered for display and diffing — the position of an address says NOTHING about which one to contact, and this toolkit holds no primary. Usually one entry; a person who signed up twice has several.
|
|
113757
|
+
*/
|
|
112749
113758
|
emails: string[]
|
|
113759
|
+
/**
|
|
113760
|
+
* Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
|
|
113761
|
+
*/
|
|
112750
113762
|
phones: string[]
|
|
113763
|
+
/**
|
|
113764
|
+
* Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
|
|
113765
|
+
*/
|
|
112751
113766
|
domains: string[]
|
|
113767
|
+
/**
|
|
113768
|
+
* Every ad click this person arrived by, stably ordered and with no primary among them. Personal data: a click id resolves to one individual inside the ad network.
|
|
113769
|
+
*/
|
|
112752
113770
|
clickIds: {
|
|
113771
|
+
/**
|
|
113772
|
+
* Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
|
|
113773
|
+
*/
|
|
112753
113774
|
type: string
|
|
113775
|
+
/**
|
|
113776
|
+
* The click identifier itself, raw, as the network stamped it on the landing URL.
|
|
113777
|
+
*/
|
|
112754
113778
|
value: string
|
|
112755
113779
|
}[]
|
|
112756
113780
|
}
|
|
113781
|
+
/**
|
|
113782
|
+
* True when the history hit the 50000-event cap and older events were left out. False means this export is everything held.
|
|
113783
|
+
*/
|
|
112757
113784
|
truncated: boolean
|
|
113785
|
+
/**
|
|
113786
|
+
* When this export was produced, ISO 8601 UTC — the as-of date to put on a subject-access response.
|
|
113787
|
+
*/
|
|
112758
113788
|
exportedAt: string
|
|
113789
|
+
/**
|
|
113790
|
+
* First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
|
|
113791
|
+
*/
|
|
112759
113792
|
acquisition: ({
|
|
113793
|
+
/**
|
|
113794
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
113795
|
+
*/
|
|
112760
113796
|
utmMedium: (string | null)
|
|
113797
|
+
/**
|
|
113798
|
+
* Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
|
|
113799
|
+
*/
|
|
112761
113800
|
utmSource: (string | null)
|
|
113801
|
+
/**
|
|
113802
|
+
* Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
|
|
113803
|
+
*/
|
|
112762
113804
|
clickIdType: (string | null)
|
|
113805
|
+
/**
|
|
113806
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
113807
|
+
*/
|
|
112763
113808
|
firstSeenAt: string
|
|
113809
|
+
/**
|
|
113810
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
113811
|
+
*/
|
|
112764
113812
|
utmCampaign: (string | null)
|
|
112765
113813
|
} | null)
|
|
112766
113814
|
}
|
|
@@ -112775,78 +113823,228 @@ profileId: string
|
|
|
112775
113823
|
*/
|
|
112776
113824
|
journeyLimit?: number
|
|
112777
113825
|
/**
|
|
112778
|
-
*
|
|
113826
|
+
* Continue paging back through the journey: pass the cursor the previous page returned. Omit to start at the most recent event.
|
|
112779
113827
|
*/
|
|
112780
113828
|
journeyCursor?: string
|
|
112781
113829
|
}
|
|
112782
113830
|
|
|
112783
113831
|
export interface TrackingProfilesGetOutput {
|
|
113832
|
+
/**
|
|
113833
|
+
* Lifetime value of this person, per currency. Null when revenue tracking is not in use for the product.
|
|
113834
|
+
*/
|
|
112784
113835
|
ltv: ({
|
|
113836
|
+
/**
|
|
113837
|
+
* One row per currency this person has paid in. Empty for someone who never paid; there is no cross-currency total, because converting would need a rate this toolkit does not hold.
|
|
113838
|
+
*/
|
|
112785
113839
|
entries: {
|
|
113840
|
+
/**
|
|
113841
|
+
* ISO 4217 code the amounts beside it are denominated in, e.g. EUR. One entry per code the person ever paid in.
|
|
113842
|
+
*/
|
|
112786
113843
|
currency: string
|
|
113844
|
+
/**
|
|
113845
|
+
* What the business actually kept: gross minus refunded, in minor units. This is the number to rank customers by.
|
|
113846
|
+
*/
|
|
112787
113847
|
netMinor: number
|
|
113848
|
+
/**
|
|
113849
|
+
* Everything the person was ever charged, in minor units (1250 = 12.50 EUR). Refunds are not subtracted here.
|
|
113850
|
+
*/
|
|
112788
113851
|
grossMinor: number
|
|
113852
|
+
/**
|
|
113853
|
+
* Their most recent payment in this currency, ISO 8601 UTC — how live the relationship is.
|
|
113854
|
+
*/
|
|
112789
113855
|
lastPaymentAt: (string | null)
|
|
113856
|
+
/**
|
|
113857
|
+
* How much of the gross went back to them, in minor units. Zero for a person who never had a refund.
|
|
113858
|
+
*/
|
|
112790
113859
|
refundedMinor: number
|
|
113860
|
+
/**
|
|
113861
|
+
* When this person first paid in this currency, ISO 8601 UTC. Null when the totals were computed without a dated payment.
|
|
113862
|
+
*/
|
|
112791
113863
|
firstPaymentAt: (string | null)
|
|
112792
113864
|
}[]
|
|
113865
|
+
/**
|
|
113866
|
+
* The person these totals belong to — the same handle as profile.profileId.
|
|
113867
|
+
*/
|
|
112793
113868
|
profileId: string
|
|
113869
|
+
/**
|
|
113870
|
+
* When these totals were last recomputed, ISO 8601 UTC. Null when they have never been computed.
|
|
113871
|
+
*/
|
|
112794
113872
|
computedAt: (string | null)
|
|
112795
113873
|
} | null)
|
|
113874
|
+
/**
|
|
113875
|
+
* What this person did, newest first, one page at a time. Use the export step instead when the whole history is wanted in one go.
|
|
113876
|
+
*/
|
|
112796
113877
|
journey: {
|
|
113878
|
+
/**
|
|
113879
|
+
* Pass back as `journeyCursor` to page further back in time. Null once the journey is exhausted.
|
|
113880
|
+
*/
|
|
112797
113881
|
cursor: (string | null)
|
|
113882
|
+
/**
|
|
113883
|
+
* This page of the journey, newest event first.
|
|
113884
|
+
*/
|
|
112798
113885
|
events: {
|
|
113886
|
+
/**
|
|
113887
|
+
* When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
|
|
113888
|
+
*/
|
|
112799
113889
|
ts: string
|
|
113890
|
+
/**
|
|
113891
|
+
* Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
|
|
113892
|
+
*/
|
|
112800
113893
|
ref: string
|
|
113894
|
+
/**
|
|
113895
|
+
* Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
|
|
113896
|
+
*/
|
|
112801
113897
|
url: (string | null)
|
|
113898
|
+
/**
|
|
113899
|
+
* What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
|
|
113900
|
+
*/
|
|
112802
113901
|
name: string
|
|
113902
|
+
/**
|
|
113903
|
+
* Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
|
|
113904
|
+
*/
|
|
112803
113905
|
props: {
|
|
112804
113906
|
[k: string]: unknown
|
|
112805
113907
|
}
|
|
113908
|
+
/**
|
|
113909
|
+
* Title of the page as the browser reported it. Null off-page.
|
|
113910
|
+
*/
|
|
112806
113911
|
title: (string | null)
|
|
113912
|
+
/**
|
|
113913
|
+
* Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
|
|
113914
|
+
*/
|
|
112807
113915
|
domain: (string | null)
|
|
113916
|
+
/**
|
|
113917
|
+
* Campaign tags and ad click carried by this event, as they were on the URL at the time.
|
|
113918
|
+
*/
|
|
112808
113919
|
source: {
|
|
113920
|
+
/**
|
|
113921
|
+
* The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
|
|
113922
|
+
*/
|
|
112809
113923
|
clickId: (string | null)
|
|
113924
|
+
/**
|
|
113925
|
+
* utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
|
|
113926
|
+
*/
|
|
112810
113927
|
utmTerm: (string | null)
|
|
113928
|
+
/**
|
|
113929
|
+
* utm_medium on the URL of this event.
|
|
113930
|
+
*/
|
|
112811
113931
|
utmMedium: (string | null)
|
|
113932
|
+
/**
|
|
113933
|
+
* utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
|
|
113934
|
+
*/
|
|
112812
113935
|
utmSource: (string | null)
|
|
113936
|
+
/**
|
|
113937
|
+
* utm_content on the URL of this event — which creative or link variant was clicked.
|
|
113938
|
+
*/
|
|
112813
113939
|
utmContent: (string | null)
|
|
113940
|
+
/**
|
|
113941
|
+
* Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
|
|
113942
|
+
*/
|
|
112814
113943
|
clickIdType: (string | null)
|
|
113944
|
+
/**
|
|
113945
|
+
* utm_campaign on the URL of this event.
|
|
113946
|
+
*/
|
|
112815
113947
|
utmCampaign: (string | null)
|
|
112816
113948
|
}
|
|
113949
|
+
/**
|
|
113950
|
+
* Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
|
|
113951
|
+
*/
|
|
112817
113952
|
country: (string | null)
|
|
113953
|
+
/**
|
|
113954
|
+
* Where the person came from immediately before this event. Null on a direct arrival or off-page.
|
|
113955
|
+
*/
|
|
112818
113956
|
referrer: (string | null)
|
|
113957
|
+
/**
|
|
113958
|
+
* Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
|
|
113959
|
+
*/
|
|
112819
113960
|
sessionId: (string | null)
|
|
112820
113961
|
}[]
|
|
112821
113962
|
}
|
|
113963
|
+
/**
|
|
113964
|
+
* The person themselves: their handle, how far they have come, and when they were seen.
|
|
113965
|
+
*/
|
|
112822
113966
|
profile: {
|
|
113967
|
+
/**
|
|
113968
|
+
* How far the person has come: anonymous = only a browser behind them, identified = an email or phone is known, customer = they have paid at least once.
|
|
113969
|
+
*/
|
|
112823
113970
|
status: ("anonymous" | "identified" | "customer")
|
|
113971
|
+
/**
|
|
113972
|
+
* When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
|
|
113973
|
+
*/
|
|
112824
113974
|
createdAt: string
|
|
113975
|
+
/**
|
|
113976
|
+
* Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
|
|
113977
|
+
*/
|
|
112825
113978
|
profileId: string
|
|
113979
|
+
/**
|
|
113980
|
+
* Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
|
|
113981
|
+
*/
|
|
112826
113982
|
lastSeenAt: string
|
|
113983
|
+
/**
|
|
113984
|
+
* Timestamp of the earliest event on record for this person, ISO 8601 UTC.
|
|
113985
|
+
*/
|
|
112827
113986
|
firstSeenAt: string
|
|
112828
113987
|
}
|
|
113988
|
+
/**
|
|
113989
|
+
* Everything known about who this person is: the addresses they have been identified by, the ad clicks they arrived by, and the sites they were seen on. Every part of it is a list, and none of the lists names a primary.
|
|
113990
|
+
*/
|
|
112829
113991
|
signals: {
|
|
113992
|
+
/**
|
|
113993
|
+
* Every email this person has ever been identified by. Stably ordered for display and diffing — the position of an address says NOTHING about which one to contact, and this toolkit holds no primary. Usually one entry; a person who signed up twice has several.
|
|
113994
|
+
*/
|
|
112830
113995
|
emails: string[]
|
|
113996
|
+
/**
|
|
113997
|
+
* Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
|
|
113998
|
+
*/
|
|
112831
113999
|
phones: string[]
|
|
114000
|
+
/**
|
|
114001
|
+
* Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
|
|
114002
|
+
*/
|
|
112832
114003
|
domains: string[]
|
|
114004
|
+
/**
|
|
114005
|
+
* Every ad click this person arrived by, stably ordered and with no primary among them. Personal data: a click id resolves to one individual inside the ad network.
|
|
114006
|
+
*/
|
|
112833
114007
|
clickIds: {
|
|
114008
|
+
/**
|
|
114009
|
+
* Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
|
|
114010
|
+
*/
|
|
112834
114011
|
type: string
|
|
114012
|
+
/**
|
|
114013
|
+
* The click identifier itself, raw, as the network stamped it on the landing URL.
|
|
114014
|
+
*/
|
|
112835
114015
|
value: string
|
|
112836
114016
|
}[]
|
|
112837
114017
|
}
|
|
114018
|
+
/**
|
|
114019
|
+
* First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
|
|
114020
|
+
*/
|
|
112838
114021
|
acquisition: ({
|
|
114022
|
+
/**
|
|
114023
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
114024
|
+
*/
|
|
112839
114025
|
utmMedium: (string | null)
|
|
114026
|
+
/**
|
|
114027
|
+
* Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
|
|
114028
|
+
*/
|
|
112840
114029
|
utmSource: (string | null)
|
|
114030
|
+
/**
|
|
114031
|
+
* Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
|
|
114032
|
+
*/
|
|
112841
114033
|
clickIdType: (string | null)
|
|
114034
|
+
/**
|
|
114035
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
114036
|
+
*/
|
|
112842
114037
|
firstSeenAt: string
|
|
114038
|
+
/**
|
|
114039
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
114040
|
+
*/
|
|
112843
114041
|
utmCampaign: (string | null)
|
|
112844
114042
|
} | null)
|
|
112845
114043
|
}
|
|
112846
114044
|
|
|
112847
114045
|
export interface TrackingProfilesListInput {
|
|
112848
114046
|
/**
|
|
112849
|
-
*
|
|
114047
|
+
* Email to search people by — the whole address by default, or its beginning when emailMatch is prefix. Omit to search across everyone.
|
|
112850
114048
|
*/
|
|
112851
114049
|
email?: string
|
|
112852
114050
|
/**
|
|
@@ -112854,132 +114052,363 @@ email?: string
|
|
|
112854
114052
|
*/
|
|
112855
114053
|
limit?: number
|
|
112856
114054
|
/**
|
|
112857
|
-
*
|
|
114055
|
+
* Continue a previous page: pass the cursor that page returned. Omit to start from the most recently seen person.
|
|
112858
114056
|
*/
|
|
112859
114057
|
cursor?: string
|
|
112860
114058
|
/**
|
|
112861
|
-
*
|
|
114059
|
+
* Keep only people at this stage — anonymous, identified or customer. Omit to get all three.
|
|
112862
114060
|
*/
|
|
112863
114061
|
status?: ("anonymous" | "identified" | "customer")
|
|
112864
114062
|
/**
|
|
112865
|
-
* How
|
|
114063
|
+
* How the email filter is matched: exact (default) compares the whole address case-insensitively, prefix matches everyone whose address starts with what you typed.
|
|
112866
114064
|
*/
|
|
112867
114065
|
emailMatch?: ("exact" | "prefix")
|
|
112868
114066
|
}
|
|
112869
114067
|
|
|
112870
114068
|
export interface TrackingProfilesListOutput {
|
|
114069
|
+
/**
|
|
114070
|
+
* Pass this back as `cursor` to fetch the next page. Null on the last page — that null is how a loop knows to stop.
|
|
114071
|
+
*/
|
|
112871
114072
|
cursor: (string | null)
|
|
114073
|
+
/**
|
|
114074
|
+
* The page of people, most recently seen first. Shorter than the requested limit on the last page.
|
|
114075
|
+
*/
|
|
112872
114076
|
profiles: {
|
|
114077
|
+
/**
|
|
114078
|
+
* Every email this person has been identified by. Stably ordered for display, with no primary among them — position 0 is not the address to contact.
|
|
114079
|
+
*/
|
|
112873
114080
|
emails: string[]
|
|
114081
|
+
/**
|
|
114082
|
+
* How far this person has come: anonymous = only a browser, identified = an email or phone is known, customer = they have paid.
|
|
114083
|
+
*/
|
|
112874
114084
|
status: ("anonymous" | "identified" | "customer")
|
|
114085
|
+
/**
|
|
114086
|
+
* Stable handle for this person. Feed it to a get, export or erase step.
|
|
114087
|
+
*/
|
|
112875
114088
|
profileId: string
|
|
114089
|
+
/**
|
|
114090
|
+
* Timestamp of their most recent event, ISO 8601 UTC. The page is ordered by this, newest first.
|
|
114091
|
+
*/
|
|
112876
114092
|
lastSeenAt: string
|
|
114093
|
+
/**
|
|
114094
|
+
* First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
|
|
114095
|
+
*/
|
|
112877
114096
|
acquisition: ({
|
|
114097
|
+
/**
|
|
114098
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
114099
|
+
*/
|
|
112878
114100
|
utmMedium: (string | null)
|
|
114101
|
+
/**
|
|
114102
|
+
* Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
|
|
114103
|
+
*/
|
|
112879
114104
|
utmSource: (string | null)
|
|
114105
|
+
/**
|
|
114106
|
+
* Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
|
|
114107
|
+
*/
|
|
112880
114108
|
clickIdType: (string | null)
|
|
114109
|
+
/**
|
|
114110
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
114111
|
+
*/
|
|
112881
114112
|
firstSeenAt: string
|
|
114113
|
+
/**
|
|
114114
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
114115
|
+
*/
|
|
112882
114116
|
utmCampaign: (string | null)
|
|
112883
114117
|
} | null)
|
|
114118
|
+
/**
|
|
114119
|
+
* Timestamp of their earliest event, ISO 8601 UTC.
|
|
114120
|
+
*/
|
|
112884
114121
|
firstSeenAt: string
|
|
112885
114122
|
}[]
|
|
112886
114123
|
}
|
|
112887
114124
|
|
|
112888
114125
|
export interface TrackingReportsAttributedJourneyInput {
|
|
114126
|
+
/**
|
|
114127
|
+
* Show only journey events at or before this instant (ISO). Omit for the whole history.
|
|
114128
|
+
*/
|
|
112889
114129
|
to?: string
|
|
114130
|
+
/**
|
|
114131
|
+
* Show only journey events at or after this instant (ISO). Omit for the whole history.
|
|
114132
|
+
*/
|
|
112890
114133
|
from?: string
|
|
114134
|
+
/**
|
|
114135
|
+
* Attribution model to explain the decision under; re-reads the same history, so switching it is free (default 'last_click').
|
|
114136
|
+
*/
|
|
112891
114137
|
model?: ("last_click" | "first_click")
|
|
112892
114138
|
/**
|
|
112893
114139
|
* The profile id (uuid)
|
|
112894
114140
|
*/
|
|
112895
114141
|
profileId: string
|
|
114142
|
+
/**
|
|
114143
|
+
* How far back before the conversion a touchpoint may be credited, in days (default 30).
|
|
114144
|
+
*/
|
|
112896
114145
|
lookbackDays?: number
|
|
112897
114146
|
}
|
|
112898
114147
|
|
|
112899
114148
|
export interface TrackingReportsAttributedJourneyOutput {
|
|
114149
|
+
/**
|
|
114150
|
+
* What this person actually did, in order.
|
|
114151
|
+
*/
|
|
112900
114152
|
journey: {
|
|
114153
|
+
/**
|
|
114154
|
+
* Every tracked event for this person inside the requested window, oldest first.
|
|
114155
|
+
*/
|
|
112901
114156
|
events: {
|
|
114157
|
+
/**
|
|
114158
|
+
* When the event happened (ISO 8601, UTC). Events are ordered oldest first.
|
|
114159
|
+
*/
|
|
112902
114160
|
ts: string
|
|
114161
|
+
/**
|
|
114162
|
+
* Handle for this event within the journey; `decisions[].winnerRef` points back at one of these to name the winning touchpoint.
|
|
114163
|
+
*/
|
|
112903
114164
|
ref: string
|
|
114165
|
+
/**
|
|
114166
|
+
* Page address the event fired on. Free text from the customer site, so it can carry personal data.
|
|
114167
|
+
*/
|
|
112904
114168
|
url: (string | null)
|
|
114169
|
+
/**
|
|
114170
|
+
* Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
|
|
114171
|
+
*/
|
|
112905
114172
|
name: string
|
|
114173
|
+
/**
|
|
114174
|
+
* Custom properties the site attached to this event. Shape is the customer's, so it can carry anything, personal data included.
|
|
114175
|
+
*/
|
|
112906
114176
|
props: {
|
|
112907
114177
|
[k: string]: unknown
|
|
112908
114178
|
}
|
|
114179
|
+
/**
|
|
114180
|
+
* Document title of that page. Free text from the customer site, so it can carry personal data.
|
|
114181
|
+
*/
|
|
112909
114182
|
title: (string | null)
|
|
114183
|
+
/**
|
|
114184
|
+
* Site the event came from; null when the tracker could not determine one.
|
|
114185
|
+
*/
|
|
112910
114186
|
domain: (string | null)
|
|
114187
|
+
/**
|
|
114188
|
+
* Where this event's visit came from, as read off the landing URL. Every field is null when the visit carried nothing.
|
|
114189
|
+
*/
|
|
112911
114190
|
source: {
|
|
114191
|
+
/**
|
|
114192
|
+
* The click id value itself. Identifies one ad click by this person, so treat it as personal data.
|
|
114193
|
+
*/
|
|
112912
114194
|
clickId: (string | null)
|
|
114195
|
+
/**
|
|
114196
|
+
* utm_term of the landing URL, the paid keyword; null when absent.
|
|
114197
|
+
*/
|
|
112913
114198
|
utmTerm: (string | null)
|
|
114199
|
+
/**
|
|
114200
|
+
* utm_medium of the landing URL; null when absent.
|
|
114201
|
+
*/
|
|
112914
114202
|
utmMedium: (string | null)
|
|
114203
|
+
/**
|
|
114204
|
+
* utm_source of the landing URL; null when absent.
|
|
114205
|
+
*/
|
|
112915
114206
|
utmSource: (string | null)
|
|
114207
|
+
/**
|
|
114208
|
+
* utm_content of the landing URL, the creative variant; null when absent.
|
|
114209
|
+
*/
|
|
112916
114210
|
utmContent: (string | null)
|
|
114211
|
+
/**
|
|
114212
|
+
* Which ad-network click id was present, e.g. 'gclid'; null when the visit carried none.
|
|
114213
|
+
*/
|
|
112917
114214
|
clickIdType: (string | null)
|
|
114215
|
+
/**
|
|
114216
|
+
* utm_campaign of the landing URL; null when absent.
|
|
114217
|
+
*/
|
|
112918
114218
|
utmCampaign: (string | null)
|
|
112919
114219
|
}
|
|
114220
|
+
/**
|
|
114221
|
+
* Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
|
|
114222
|
+
*/
|
|
112920
114223
|
country: (string | null)
|
|
114224
|
+
/**
|
|
114225
|
+
* Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
|
|
114226
|
+
*/
|
|
112921
114227
|
referrer: (string | null)
|
|
114228
|
+
/**
|
|
114229
|
+
* Visit this event belongs to; events sharing one happened in the same sitting. Null when no session could be established.
|
|
114230
|
+
*/
|
|
112922
114231
|
sessionId: (string | null)
|
|
112923
114232
|
}[]
|
|
112924
114233
|
}
|
|
112925
|
-
|
|
114234
|
+
/**
|
|
114235
|
+
* Holds at most one entry: the decision for this person's originating conversion, present only when that conversion falls inside the requested window. Kept as a list for callers that already read it; `originatingDecision` is the same value at a bindable path.
|
|
114236
|
+
*/
|
|
114237
|
+
decisions: TrackingReportsAttributedJourneyOutputItems[]
|
|
114238
|
+
/**
|
|
114239
|
+
* The person this journey belongs to, echoed back from the request.
|
|
114240
|
+
*/
|
|
114241
|
+
profileId: string
|
|
114242
|
+
/**
|
|
114243
|
+
* The attribution decision for this person's originating conversion — the same value as `decisions[0]`, at a path a workflow can bind. Null means the decision is not in THIS window, not that the person never converted: a conversion before `from` or after `to` is excluded here while still being their originating one. Widen the window to see it.
|
|
114244
|
+
*/
|
|
114245
|
+
originatingDecision: (TrackingReportsAttributedJourneyOutputItems | null)
|
|
114246
|
+
}
|
|
114247
|
+
export interface TrackingReportsAttributedJourneyOutputItems {
|
|
114248
|
+
/**
|
|
114249
|
+
* Attribution model the winner was picked under, echoed back from the request.
|
|
114250
|
+
*/
|
|
112926
114251
|
model: ("last_click" | "first_click")
|
|
114252
|
+
/**
|
|
114253
|
+
* Why this touchpoint won, or why nothing did, in a sentence a person can read.
|
|
114254
|
+
*/
|
|
112927
114255
|
reason: string
|
|
114256
|
+
/**
|
|
114257
|
+
* Revenue of that conversion, one row per currency.
|
|
114258
|
+
*/
|
|
112928
114259
|
revenue: {
|
|
114260
|
+
/**
|
|
114261
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
114262
|
+
*/
|
|
112929
114263
|
currency: string
|
|
114264
|
+
/**
|
|
114265
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
114266
|
+
*/
|
|
112930
114267
|
netMinor: number
|
|
114268
|
+
/**
|
|
114269
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
114270
|
+
*/
|
|
112931
114271
|
grossMinor: number
|
|
114272
|
+
/**
|
|
114273
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
114274
|
+
*/
|
|
112932
114275
|
refundedMinor: number
|
|
112933
114276
|
}[]
|
|
114277
|
+
/**
|
|
114278
|
+
* `journey.events[].ref` of the touchpoint that won the credit. Null when nothing inside the window qualified.
|
|
114279
|
+
*/
|
|
112934
114280
|
winnerRef: (string | null)
|
|
114281
|
+
/**
|
|
114282
|
+
* When the conversion this decision explains happened (ISO 8601, UTC).
|
|
114283
|
+
*/
|
|
112935
114284
|
conversionTs: string
|
|
114285
|
+
/**
|
|
114286
|
+
* How far back before `conversionTs` a touchpoint was allowed to be credited, in days; echoed back.
|
|
114287
|
+
*/
|
|
112936
114288
|
lookbackDays: number
|
|
114289
|
+
/**
|
|
114290
|
+
* The winning touchpoint spelled out, so a reader need not resolve `winnerRef`. Null exactly when `winnerRef` is null.
|
|
114291
|
+
*/
|
|
112937
114292
|
winningTouchpoint: ({
|
|
114293
|
+
/**
|
|
114294
|
+
* When the winning touchpoint happened (ISO 8601, UTC).
|
|
114295
|
+
*/
|
|
112938
114296
|
ts: string
|
|
114297
|
+
/**
|
|
114298
|
+
* Channel the winning touchpoint belongs to.
|
|
114299
|
+
*/
|
|
112939
114300
|
channel: ("paid" | "organic" | "direct" | "email")
|
|
114301
|
+
/**
|
|
114302
|
+
* utm_medium of the winning touchpoint; null when it carried none.
|
|
114303
|
+
*/
|
|
112940
114304
|
utmMedium: (string | null)
|
|
114305
|
+
/**
|
|
114306
|
+
* utm_source of the winning touchpoint; null when it carried none.
|
|
114307
|
+
*/
|
|
112941
114308
|
utmSource: (string | null)
|
|
114309
|
+
/**
|
|
114310
|
+
* Campaign id carried by our own `_lt_campaign` landing-URL parameter; null when the visit carried none.
|
|
114311
|
+
*/
|
|
114312
|
+
ltCampaign?: (string | null)
|
|
114313
|
+
/**
|
|
114314
|
+
* Ad-network click id present on the winning touchpoint, e.g. 'gclid'; null when it carried none.
|
|
114315
|
+
*/
|
|
112942
114316
|
clickIdType: (string | null)
|
|
114317
|
+
/**
|
|
114318
|
+
* utm_campaign of the winning touchpoint; null when it carried none.
|
|
114319
|
+
*/
|
|
112943
114320
|
utmCampaign: (string | null)
|
|
112944
114321
|
} | null)
|
|
112945
|
-
}[]
|
|
112946
|
-
profileId: string
|
|
112947
114322
|
}
|
|
112948
114323
|
|
|
112949
114324
|
export interface TrackingReportsEventVolumeInput {
|
|
112950
|
-
|
|
112951
|
-
|
|
114325
|
+
/**
|
|
114326
|
+
* End of the range to count, inclusive (ISO 8601). Optional — defaults to the moment of the call.
|
|
114327
|
+
*/
|
|
114328
|
+
to?: string
|
|
114329
|
+
/**
|
|
114330
|
+
* Start of the range to count, inclusive (ISO 8601). Optional — defaults to 30 days back, the start of that UTC day.
|
|
114331
|
+
*/
|
|
114332
|
+
from?: string
|
|
114333
|
+
/**
|
|
114334
|
+
* Count only this site. Omit to count every site the product sends from.
|
|
114335
|
+
*/
|
|
112952
114336
|
domain?: string
|
|
112953
114337
|
}
|
|
112954
114338
|
|
|
112955
114339
|
export interface TrackingReportsEventVolumeOutput {
|
|
114340
|
+
/**
|
|
114341
|
+
* End of the range the figures cover, echoed back (ISO 8601, UTC).
|
|
114342
|
+
*/
|
|
112956
114343
|
to: string
|
|
114344
|
+
/**
|
|
114345
|
+
* Start of the range the figures cover, echoed back (ISO 8601, UTC).
|
|
114346
|
+
*/
|
|
112957
114347
|
from: string
|
|
114348
|
+
/**
|
|
114349
|
+
* Site the figures were restricted to; null when every site of the product is included.
|
|
114350
|
+
*/
|
|
112958
114351
|
domain: (string | null)
|
|
114352
|
+
/**
|
|
114353
|
+
* When this report was computed (ISO 8601, UTC).
|
|
114354
|
+
*/
|
|
112959
114355
|
computedAt: string
|
|
114356
|
+
/**
|
|
114357
|
+
* How COMPLETE the two headline figures above are. Contains no metric of its own — never present a field of it as a headline number and never add it to anything. consentGrantedEvents + cookielessEvents + noBannerEvents = totalEvents.
|
|
114358
|
+
*/
|
|
112960
114359
|
dataQuality: {
|
|
114360
|
+
/**
|
|
114361
|
+
* Fraction of `totalEvents` (0..1) that came from sites running no consent banner, where nobody was ever asked.
|
|
114362
|
+
*/
|
|
112961
114363
|
noBannerShare: number
|
|
114364
|
+
/**
|
|
114365
|
+
* Events from sites with no consent banner. Kept apart from `cookielessEvents` on purpose: nobody refused here, nobody was asked.
|
|
114366
|
+
*/
|
|
112962
114367
|
noBannerEvents: number
|
|
114368
|
+
/**
|
|
114369
|
+
* How many UTC days the range spans; each one re-counts a returning declining visitor.
|
|
114370
|
+
*/
|
|
112963
114371
|
utcDaysInRange: number
|
|
114372
|
+
/**
|
|
114373
|
+
* Fraction of `totalEvents` (0..1) that came from visitors who declined statistics consent.
|
|
114374
|
+
*/
|
|
112964
114375
|
cookielessShare: number
|
|
114376
|
+
/**
|
|
114377
|
+
* Events from visitors who declined; no cookie was written and no identifier sent.
|
|
114378
|
+
*/
|
|
112965
114379
|
cookielessEvents: number
|
|
114380
|
+
/**
|
|
114381
|
+
* Events carrying an anonymous id. A different cut that overlaps the three consent buckets — it is not the complement of `cookielessEvents` and must never be added to it.
|
|
114382
|
+
*/
|
|
112966
114383
|
identifiedEvents: number
|
|
114384
|
+
/**
|
|
114385
|
+
* True when `visitorsDeduplicatedPerUtcDay` over-counts for this range: the range spans more than one UTC day and there is declining traffic in it.
|
|
114386
|
+
*/
|
|
112967
114387
|
visitorsOverstated: boolean
|
|
114388
|
+
/**
|
|
114389
|
+
* Events from visitors who granted statistics consent.
|
|
114390
|
+
*/
|
|
112968
114391
|
consentGrantedEvents: number
|
|
112969
114392
|
}
|
|
114393
|
+
/**
|
|
114394
|
+
* How many events arrived in the range, across every consent state.
|
|
114395
|
+
*/
|
|
112970
114396
|
totalEvents: number
|
|
114397
|
+
/**
|
|
114398
|
+
* How many PEOPLE those events came from: one COUNT DISTINCT over consenting visitors (by anonymous id) and declining visitors (by a daily key destroyed each UTC midnight) at once. Over a range longer than one UTC day this is an OVER-count of the declining half — read `dataQuality.visitorsOverstated` before reporting it.
|
|
114399
|
+
*/
|
|
112971
114400
|
visitorsDeduplicatedPerUtcDay: number
|
|
112972
114401
|
}
|
|
112973
114402
|
|
|
112974
114403
|
export interface TrackingReportsRevenueBySourceInput {
|
|
112975
114404
|
/**
|
|
112976
|
-
* Cohort window end (ISO)
|
|
114405
|
+
* Cohort window end (ISO). Optional — defaults to the moment of the call.
|
|
112977
114406
|
*/
|
|
112978
|
-
to
|
|
114407
|
+
to?: string
|
|
112979
114408
|
/**
|
|
112980
|
-
* Cohort window start (ISO); selects conversions by subscription start
|
|
114409
|
+
* Cohort window start (ISO); selects conversions by subscription start. Optional — defaults to 30 days back, the start of that UTC day.
|
|
112981
114410
|
*/
|
|
112982
|
-
from
|
|
114411
|
+
from?: string
|
|
112983
114412
|
/**
|
|
112984
114413
|
* Attribution model
|
|
112985
114414
|
*/
|
|
@@ -112995,54 +114424,150 @@ lookbackDays?: number
|
|
|
112995
114424
|
}
|
|
112996
114425
|
|
|
112997
114426
|
export interface TrackingReportsRevenueBySourceOutput {
|
|
114427
|
+
/**
|
|
114428
|
+
* End of the cohort window the figures cover, echoed back (ISO 8601, UTC).
|
|
114429
|
+
*/
|
|
112998
114430
|
to: string
|
|
114431
|
+
/**
|
|
114432
|
+
* Start of the cohort window the figures cover, echoed back (ISO 8601, UTC).
|
|
114433
|
+
*/
|
|
112999
114434
|
from: string
|
|
114435
|
+
/**
|
|
114436
|
+
* Attribution model the credit was assigned under, echoed back. Pass the same value to `tracking_reports_source_people` to drill into a row.
|
|
114437
|
+
*/
|
|
113000
114438
|
model: ("last_click" | "first_click")
|
|
114439
|
+
/**
|
|
114440
|
+
* Site touchpoints were restricted to; null when every site of the product was considered.
|
|
114441
|
+
*/
|
|
113001
114442
|
domain: (string | null)
|
|
114443
|
+
/**
|
|
114444
|
+
* Every channel plus `unattributed`. This is the whole window, not the attributed part of it.
|
|
114445
|
+
*/
|
|
113002
114446
|
totals: {
|
|
114447
|
+
/**
|
|
114448
|
+
* Revenue over every channel plus `unattributed`, one row per currency.
|
|
114449
|
+
*/
|
|
113003
114450
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
114451
|
+
/**
|
|
114452
|
+
* Distinct paying people over every channel plus `unattributed`.
|
|
114453
|
+
*/
|
|
113004
114454
|
customers: number
|
|
113005
114455
|
}
|
|
114456
|
+
/**
|
|
114457
|
+
* One row per channel that earned revenue in the window. Channels with none are omitted.
|
|
114458
|
+
*/
|
|
113006
114459
|
channels: {
|
|
114460
|
+
/**
|
|
114461
|
+
* Which acquisition channel this row aggregates.
|
|
114462
|
+
*/
|
|
113007
114463
|
channel: ("paid" | "organic" | "direct" | "email")
|
|
114464
|
+
/**
|
|
114465
|
+
* Revenue credited to this channel, one row per currency, ordered by currency code. Currencies are never summed, so there is no single figure here: a product trading in two currencies has two rows and both must be reported.
|
|
114466
|
+
*/
|
|
113008
114467
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
114468
|
+
/**
|
|
114469
|
+
* Distinct paying people credited to this channel.
|
|
114470
|
+
*/
|
|
113009
114471
|
customers: number
|
|
114472
|
+
/**
|
|
114473
|
+
* The channel split by UTM combination. Each row is a drill-down target for `tracking_reports_source_people`.
|
|
114474
|
+
*/
|
|
113010
114475
|
utmBreakdown: {
|
|
114476
|
+
/**
|
|
114477
|
+
* Revenue credited to this UTM combination, one row per currency.
|
|
114478
|
+
*/
|
|
113011
114479
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
114480
|
+
/**
|
|
114481
|
+
* Distinct paying people credited to this UTM combination.
|
|
114482
|
+
*/
|
|
113012
114483
|
customers: number
|
|
114484
|
+
/**
|
|
114485
|
+
* utm_medium of this row; null when the visit carried none.
|
|
114486
|
+
*/
|
|
113013
114487
|
utmMedium: (string | null)
|
|
114488
|
+
/**
|
|
114489
|
+
* utm_source of this row; null when the visit carried none.
|
|
114490
|
+
*/
|
|
113014
114491
|
utmSource: (string | null)
|
|
114492
|
+
/**
|
|
114493
|
+
* Ad-network click id present on the visit, e.g. 'gclid'; null when it carried none.
|
|
114494
|
+
*/
|
|
113015
114495
|
clickIdType: (string | null)
|
|
114496
|
+
/**
|
|
114497
|
+
* utm_campaign of this row; null when the visit carried none.
|
|
114498
|
+
*/
|
|
113016
114499
|
utmCampaign: (string | null)
|
|
113017
114500
|
}[]
|
|
113018
114501
|
}[]
|
|
114502
|
+
/**
|
|
114503
|
+
* Fraction of paying people (0..1) a touchpoint could be found for: attributed customers over `totals.customers`. Count-based, never revenue-weighted.
|
|
114504
|
+
*/
|
|
113019
114505
|
matchRate: number
|
|
114506
|
+
/**
|
|
114507
|
+
* When this report was computed (ISO 8601, UTC).
|
|
114508
|
+
*/
|
|
113020
114509
|
computedAt: string
|
|
114510
|
+
/**
|
|
114511
|
+
* How far back before a conversion a touchpoint was allowed to be credited, in days; echoed back.
|
|
114512
|
+
*/
|
|
113021
114513
|
lookbackDays: number
|
|
114514
|
+
/**
|
|
114515
|
+
* Revenue that reached no channel — kept as its own row so the channel rows are never quietly inflated to cover it.
|
|
114516
|
+
*/
|
|
113022
114517
|
unattributed: {
|
|
114518
|
+
/**
|
|
114519
|
+
* Revenue no touchpoint could be credited for, one row per currency.
|
|
114520
|
+
*/
|
|
113023
114521
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
114522
|
+
/**
|
|
114523
|
+
* Distinct paying people no touchpoint could be credited for.
|
|
114524
|
+
*/
|
|
113024
114525
|
customers: number
|
|
113025
114526
|
}
|
|
113026
114527
|
}
|
|
113027
114528
|
export interface TrackingReportsRevenueBySourceOutputItems {
|
|
114529
|
+
/**
|
|
114530
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
114531
|
+
*/
|
|
113028
114532
|
currency: string
|
|
114533
|
+
/**
|
|
114534
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
114535
|
+
*/
|
|
113029
114536
|
netMinor: number
|
|
114537
|
+
/**
|
|
114538
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
114539
|
+
*/
|
|
113030
114540
|
grossMinor: number
|
|
114541
|
+
/**
|
|
114542
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
114543
|
+
*/
|
|
113031
114544
|
refundedMinor: number
|
|
113032
114545
|
}
|
|
113033
114546
|
|
|
113034
114547
|
export interface TrackingReportsSourcePeopleInput {
|
|
113035
|
-
|
|
113036
|
-
from
|
|
114548
|
+
/**
|
|
114549
|
+
* Cohort window end (ISO); must match the report this row came from. Optional — defaults to the moment of the call.
|
|
114550
|
+
*/
|
|
114551
|
+
to?: string
|
|
114552
|
+
/**
|
|
114553
|
+
* Cohort window start (ISO); must match the report this row came from. Optional — defaults to 30 days back, the start of that UTC day.
|
|
114554
|
+
*/
|
|
114555
|
+
from?: string
|
|
113037
114556
|
/**
|
|
113038
114557
|
* People per page (default 50, max 200)
|
|
113039
114558
|
*/
|
|
113040
114559
|
limit?: number
|
|
114560
|
+
/**
|
|
114561
|
+
* Attribution model to credit the touchpoint under; must match the report this row came from (default 'last_click').
|
|
114562
|
+
*/
|
|
113041
114563
|
model?: ("last_click" | "first_click")
|
|
113042
114564
|
/**
|
|
113043
114565
|
* Opaque keyset cursor from a previous page
|
|
113044
114566
|
*/
|
|
113045
114567
|
cursor?: string
|
|
114568
|
+
/**
|
|
114569
|
+
* Only consider touchpoints on this domain; must match the report this row came from. Omit for no restriction.
|
|
114570
|
+
*/
|
|
113046
114571
|
domain?: string
|
|
113047
114572
|
/**
|
|
113048
114573
|
* Channel to drill into
|
|
@@ -113052,27 +114577,72 @@ channel: ("paid" | "organic" | "direct" | "email")
|
|
|
113052
114577
|
* Comma-separated dimension names (utmSource,utmMedium,utmCampaign,clickIdType) that must be IS NULL
|
|
113053
114578
|
*/
|
|
113054
114579
|
utmNulls?: string
|
|
114580
|
+
/**
|
|
114581
|
+
* utm_medium of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
114582
|
+
*/
|
|
113055
114583
|
utmMedium?: string
|
|
114584
|
+
/**
|
|
114585
|
+
* utm_source of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
114586
|
+
*/
|
|
113056
114587
|
utmSource?: string
|
|
113057
114588
|
/**
|
|
113058
114589
|
* Native click-id type of the breakdown row to drill into (e.g. 'gclid'). Tri-state: omit for no filter (all click ids), pass a value to match it, or list 'clickIdType' in utmNulls to match the IS-NULL row.
|
|
113059
114590
|
*/
|
|
113060
114591
|
clickIdType?: string
|
|
114592
|
+
/**
|
|
114593
|
+
* utm_campaign of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
114594
|
+
*/
|
|
113061
114595
|
utmCampaign?: string
|
|
114596
|
+
/**
|
|
114597
|
+
* How far back before a conversion a touchpoint may be credited, in days; must match the report this row came from (default 30).
|
|
114598
|
+
*/
|
|
113062
114599
|
lookbackDays?: number
|
|
113063
114600
|
}
|
|
113064
114601
|
|
|
113065
114602
|
export interface TrackingReportsSourcePeopleOutput {
|
|
114603
|
+
/**
|
|
114604
|
+
* Pass back as `cursor` for the next page. Null on the last page.
|
|
114605
|
+
*/
|
|
113066
114606
|
cursor: (string | null)
|
|
114607
|
+
/**
|
|
114608
|
+
* The page of people behind the requested row, ordered by the keyset the cursor walks.
|
|
114609
|
+
*/
|
|
113067
114610
|
people: {
|
|
114611
|
+
/**
|
|
114612
|
+
* Where this person stands in their subscription lifecycle, e.g. active or churned.
|
|
114613
|
+
*/
|
|
113068
114614
|
status: string
|
|
114615
|
+
/**
|
|
114616
|
+
* Identifier of this person; pass it to `tracking_reports_attributed_journey` to see why they were credited here.
|
|
114617
|
+
*/
|
|
113069
114618
|
profileId: string
|
|
114619
|
+
/**
|
|
114620
|
+
* Most recent tracked activity for this person (ISO 8601, UTC); null when none was recorded.
|
|
114621
|
+
*/
|
|
113070
114622
|
lastSeenAt: (string | null)
|
|
114623
|
+
/**
|
|
114624
|
+
* Earliest tracked activity for this person (ISO 8601, UTC); null when none was recorded.
|
|
114625
|
+
*/
|
|
113071
114626
|
firstSeenAt: (string | null)
|
|
114627
|
+
/**
|
|
114628
|
+
* Lifetime revenue credited to this person under the requested model, one row per currency.
|
|
114629
|
+
*/
|
|
113072
114630
|
attributedRevenue: {
|
|
114631
|
+
/**
|
|
114632
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
114633
|
+
*/
|
|
113073
114634
|
currency: string
|
|
114635
|
+
/**
|
|
114636
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
114637
|
+
*/
|
|
113074
114638
|
netMinor: number
|
|
114639
|
+
/**
|
|
114640
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
114641
|
+
*/
|
|
113075
114642
|
grossMinor: number
|
|
114643
|
+
/**
|
|
114644
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
114645
|
+
*/
|
|
113076
114646
|
refundedMinor: number
|
|
113077
114647
|
}[]
|
|
113078
114648
|
}[]
|
|
@@ -113083,9 +114653,21 @@ export interface TrackingSnippetsGetInput {
|
|
|
113083
114653
|
}
|
|
113084
114654
|
|
|
113085
114655
|
export interface TrackingSnippetsGetOutput {
|
|
114656
|
+
/**
|
|
114657
|
+
* Tracking host the snippet sends to — the customer-facing domain events and the bundle are served from.
|
|
114658
|
+
*/
|
|
113086
114659
|
host: string
|
|
114660
|
+
/**
|
|
114661
|
+
* The tag to paste into every page, verbatim, before </head>. Includes the consent-aware bootstrap; install it unconditionally rather than behind a consent gate.
|
|
114662
|
+
*/
|
|
113087
114663
|
snippet: string
|
|
114664
|
+
/**
|
|
114665
|
+
* Absolute URL of the tracker bundle the snippet loads; already points at this product's own tracking host.
|
|
114666
|
+
*/
|
|
113088
114667
|
scriptUrl: string
|
|
114668
|
+
/**
|
|
114669
|
+
* The same tag stripped to the bare script element, for tag managers and CMS fields that reject anything else. Behaves identically; use it only when the full snippet will not fit.
|
|
114670
|
+
*/
|
|
113089
114671
|
minimalSnippet: string
|
|
113090
114672
|
}
|
|
113091
114673
|
|