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