@lepsto/sdk-app 84.0.0 → 85.0.1
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/README.md +38 -6
- package/dist/_types/gen/client.gen.d.ts +38 -18
- package/dist/_types/gen/manifest.gen.d.ts +1 -1
- package/dist/_types/gen/playground/connect.gen.d.ts +3 -0
- package/dist/_types/gen/playground/index.d.ts +3 -0
- package/dist/_types/gen/playground/queryOptions.gen.d.ts +70 -0
- package/dist/_types/gen/types.gen.d.ts +1948 -212
- package/dist/chunk-HRKHYP5B.js +11397 -0
- package/dist/chunk-HRKHYP5B.js.map +1 -0
- package/dist/index.cjs +236 -176
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +31 -11354
- package/dist/index.js.map +1 -1
- package/dist/playground/index.cjs +106 -0
- package/dist/playground/index.cjs.map +1 -0
- package/dist/playground/index.d.cts +1 -0
- package/dist/playground/index.d.ts +1 -0
- package/dist/playground/index.js +78 -0
- package/dist/playground/index.js.map +1 -0
- package/docs/README.md +6 -6
- package/docs/recipes/access.md +12 -12
- package/docs/recipes/local-dev.md +2 -2
- package/docs/recipes/sdk-usage.md +11 -11
- package/docs/rules.md +10 -10
- package/package.json +22 -12
- package/src/gen/bindings.gen.ts +216 -150
- package/src/gen/client.gen.ts +71 -31
- package/src/gen/manifest.gen.ts +30 -28
- package/src/gen/playground/connect.gen.ts +9 -0
- package/src/gen/playground/index.ts +4 -0
- package/src/gen/playground/queryOptions.gen.ts +119 -0
- package/src/gen/types.gen.ts +1977 -211
- package/dist/_types/gen/waitlist/index.d.ts +0 -2
- package/dist/_types/gen/waitlist/queryOptions.gen.d.ts +0 -30
- package/dist/waitlist/index.cjs +0 -41
- package/dist/waitlist/index.cjs.map +0 -1
- package/dist/waitlist/index.d.cts +0 -1
- package/dist/waitlist/index.d.ts +0 -1
- package/dist/waitlist/index.js +0 -33
- package/dist/waitlist/index.js.map +0 -1
- package/src/gen/waitlist/index.ts +0 -3
- package/src/gen/waitlist/queryOptions.gen.ts +0 -50
package/src/gen/types.gen.ts
CHANGED
|
@@ -90532,6 +90532,378 @@ export interface OrganizationYoutubeInstallOutput {
|
|
|
90532
90532
|
url: string
|
|
90533
90533
|
}
|
|
90534
90534
|
|
|
90535
|
+
export interface PlaygroundAnalyticsOverviewInput {
|
|
90536
|
+
/**
|
|
90537
|
+
* Max records per entity in recent[]; omit for the endpoint default
|
|
90538
|
+
*/
|
|
90539
|
+
limit?: number
|
|
90540
|
+
}
|
|
90541
|
+
|
|
90542
|
+
export interface PlaygroundAnalyticsOverviewOutput {
|
|
90543
|
+
ok: boolean
|
|
90544
|
+
minted: boolean
|
|
90545
|
+
overview?: unknown
|
|
90546
|
+
http_status: number
|
|
90547
|
+
}
|
|
90548
|
+
|
|
90549
|
+
export interface PlaygroundBillingEntitlementsInput {
|
|
90550
|
+
|
|
90551
|
+
}
|
|
90552
|
+
|
|
90553
|
+
export interface PlaygroundBillingEntitlementsOutput {
|
|
90554
|
+
ok: boolean
|
|
90555
|
+
minted: boolean
|
|
90556
|
+
http_status: number
|
|
90557
|
+
entitlements?: unknown
|
|
90558
|
+
}
|
|
90559
|
+
|
|
90560
|
+
export interface PlaygroundBillingRecordUsageInput {
|
|
90561
|
+
/**
|
|
90562
|
+
* Quantity of events to record against playground-events (SUM); defaults to 1
|
|
90563
|
+
*/
|
|
90564
|
+
value?: number
|
|
90565
|
+
}
|
|
90566
|
+
|
|
90567
|
+
export interface PlaygroundBillingRecordUsageOutput {
|
|
90568
|
+
minted: boolean
|
|
90569
|
+
accepted: (number | null)
|
|
90570
|
+
recorded: boolean
|
|
90571
|
+
duplicates: (number | null)
|
|
90572
|
+
http_status: number
|
|
90573
|
+
}
|
|
90574
|
+
|
|
90575
|
+
export interface PlaygroundClickupCreateTaskInput {
|
|
90576
|
+
/**
|
|
90577
|
+
* Task title; defaults to a fixture label
|
|
90578
|
+
*/
|
|
90579
|
+
name?: string
|
|
90580
|
+
/**
|
|
90581
|
+
* ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
|
|
90582
|
+
*/
|
|
90583
|
+
listId?: string
|
|
90584
|
+
}
|
|
90585
|
+
|
|
90586
|
+
export interface PlaygroundClickupCreateTaskOutput {
|
|
90587
|
+
minted: boolean
|
|
90588
|
+
task_id: (string | null)
|
|
90589
|
+
list_status: number
|
|
90590
|
+
vend_status: number
|
|
90591
|
+
clickup_status: number
|
|
90592
|
+
installation_count: number
|
|
90593
|
+
}
|
|
90594
|
+
|
|
90595
|
+
export interface PlaygroundClickupGetLastWebhookInput {
|
|
90596
|
+
|
|
90597
|
+
}
|
|
90598
|
+
|
|
90599
|
+
export type PlaygroundClickupGetLastWebhookOutput = ({
|
|
90600
|
+
payload: string
|
|
90601
|
+
event_id: string
|
|
90602
|
+
provider: string
|
|
90603
|
+
verified: boolean
|
|
90604
|
+
product_id: string
|
|
90605
|
+
occurred_at: string
|
|
90606
|
+
connector_id: string
|
|
90607
|
+
clickup_event: (string | null)
|
|
90608
|
+
receipt_count: number
|
|
90609
|
+
} | {
|
|
90610
|
+
found: false
|
|
90611
|
+
})
|
|
90612
|
+
|
|
90613
|
+
export interface PlaygroundClickupGetOverviewInput {
|
|
90614
|
+
|
|
90615
|
+
}
|
|
90616
|
+
|
|
90617
|
+
export interface PlaygroundClickupGetOverviewOutput {
|
|
90618
|
+
team: ({
|
|
90619
|
+
teamId: string
|
|
90620
|
+
teamName: string
|
|
90621
|
+
} | null)
|
|
90622
|
+
lists: PlaygroundClickupGetOverviewOutputItems[]
|
|
90623
|
+
tasks: {
|
|
90624
|
+
id: string
|
|
90625
|
+
name: string
|
|
90626
|
+
status: (string | null)
|
|
90627
|
+
}[]
|
|
90628
|
+
minted: boolean
|
|
90629
|
+
spaces: PlaygroundClickupGetOverviewOutputItems[]
|
|
90630
|
+
list_status: number
|
|
90631
|
+
vend_status: number
|
|
90632
|
+
lists_status: number
|
|
90633
|
+
tasks_status: number
|
|
90634
|
+
spaces_status: number
|
|
90635
|
+
folders_status: number
|
|
90636
|
+
installation_count: number
|
|
90637
|
+
}
|
|
90638
|
+
export interface PlaygroundClickupGetOverviewOutputItems {
|
|
90639
|
+
id: string
|
|
90640
|
+
name: string
|
|
90641
|
+
}
|
|
90642
|
+
|
|
90643
|
+
export interface PlaygroundEchoPingInput {
|
|
90644
|
+
/**
|
|
90645
|
+
* The text to echo back, 1–1024 characters
|
|
90646
|
+
*/
|
|
90647
|
+
message: string
|
|
90648
|
+
}
|
|
90649
|
+
|
|
90650
|
+
export interface PlaygroundEchoPingOutput {
|
|
90651
|
+
/**
|
|
90652
|
+
* The message exactly as it was received
|
|
90653
|
+
*/
|
|
90654
|
+
message: string
|
|
90655
|
+
/**
|
|
90656
|
+
* The product the call was resolved to
|
|
90657
|
+
*/
|
|
90658
|
+
productId: string
|
|
90659
|
+
/**
|
|
90660
|
+
* ISO-8601 instant (UTC) at which the call reached the service
|
|
90661
|
+
*/
|
|
90662
|
+
receivedAt: string
|
|
90663
|
+
}
|
|
90664
|
+
|
|
90665
|
+
export interface PlaygroundGdriveGetLastChangeInput {
|
|
90666
|
+
|
|
90667
|
+
}
|
|
90668
|
+
|
|
90669
|
+
export type PlaygroundGdriveGetLastChangeOutput = ({
|
|
90670
|
+
file_id: string
|
|
90671
|
+
removed: boolean
|
|
90672
|
+
file_name: (string | null)
|
|
90673
|
+
mime_type: (string | null)
|
|
90674
|
+
product_id: string
|
|
90675
|
+
occurred_at: string
|
|
90676
|
+
connector_id: string
|
|
90677
|
+
resource_state: string
|
|
90678
|
+
} | {
|
|
90679
|
+
found: false
|
|
90680
|
+
})
|
|
90681
|
+
|
|
90682
|
+
export interface PlaygroundGdriveReadFileInput {
|
|
90683
|
+
/**
|
|
90684
|
+
* Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
|
|
90685
|
+
*/
|
|
90686
|
+
fileId?: string
|
|
90687
|
+
}
|
|
90688
|
+
|
|
90689
|
+
export interface PlaygroundGdriveReadFileOutput {
|
|
90690
|
+
minted: boolean
|
|
90691
|
+
file_id: (string | null)
|
|
90692
|
+
file_name: (string | null)
|
|
90693
|
+
mime_type: (string | null)
|
|
90694
|
+
file_count: number
|
|
90695
|
+
get_status: number
|
|
90696
|
+
list_status: number
|
|
90697
|
+
vend_status: number
|
|
90698
|
+
content_bytes: (number | null)
|
|
90699
|
+
}
|
|
90700
|
+
|
|
90701
|
+
export interface PlaygroundGoogleadsReadCustomerInput {
|
|
90702
|
+
|
|
90703
|
+
}
|
|
90704
|
+
|
|
90705
|
+
export interface PlaygroundGoogleadsReadCustomerOutput {
|
|
90706
|
+
minted: boolean
|
|
90707
|
+
vended: boolean
|
|
90708
|
+
customer_id: (string | null)
|
|
90709
|
+
vend_status: number
|
|
90710
|
+
result_count: number
|
|
90711
|
+
search_status: number
|
|
90712
|
+
login_customer_id: (string | null)
|
|
90713
|
+
}
|
|
90714
|
+
|
|
90715
|
+
export interface PlaygroundLifecycleGetStateInput {
|
|
90716
|
+
|
|
90717
|
+
}
|
|
90718
|
+
|
|
90719
|
+
export interface PlaygroundLifecycleGetStateOutput {
|
|
90720
|
+
blocked: boolean
|
|
90721
|
+
archived: boolean
|
|
90722
|
+
productId: string
|
|
90723
|
+
lastBlockTransition: ({
|
|
90724
|
+
eventId: string
|
|
90725
|
+
eventName: string
|
|
90726
|
+
productId: string
|
|
90727
|
+
occurredAt: string
|
|
90728
|
+
recordedAt: string
|
|
90729
|
+
receiptCount: number
|
|
90730
|
+
organizationId: string
|
|
90731
|
+
cascadedFromOrg: boolean
|
|
90732
|
+
} | null)
|
|
90733
|
+
lastArchiveTransition: ({
|
|
90734
|
+
eventId: string
|
|
90735
|
+
eventName: string
|
|
90736
|
+
productId: string
|
|
90737
|
+
occurredAt: string
|
|
90738
|
+
recordedAt: string
|
|
90739
|
+
receiptCount: number
|
|
90740
|
+
organizationId: string
|
|
90741
|
+
cascadedFromOrg: boolean
|
|
90742
|
+
} | null)
|
|
90743
|
+
}
|
|
90744
|
+
|
|
90745
|
+
export interface PlaygroundLifecycleListEventsInput {
|
|
90746
|
+
|
|
90747
|
+
}
|
|
90748
|
+
|
|
90749
|
+
export type PlaygroundLifecycleListEventsOutput = {
|
|
90750
|
+
eventId: string
|
|
90751
|
+
eventName: string
|
|
90752
|
+
productId: string
|
|
90753
|
+
occurredAt: string
|
|
90754
|
+
recordedAt: string
|
|
90755
|
+
receiptCount: number
|
|
90756
|
+
organizationId: string
|
|
90757
|
+
cascadedFromOrg: boolean
|
|
90758
|
+
}[]
|
|
90759
|
+
|
|
90760
|
+
export interface PlaygroundWebhookGetLastInput {
|
|
90761
|
+
|
|
90762
|
+
}
|
|
90763
|
+
|
|
90764
|
+
export type PlaygroundWebhookGetLastOutput = ({
|
|
90765
|
+
payload?: unknown
|
|
90766
|
+
event_id: string
|
|
90767
|
+
provider: string
|
|
90768
|
+
verified: boolean
|
|
90769
|
+
product_id: string
|
|
90770
|
+
occurred_at: string
|
|
90771
|
+
connector_id: string
|
|
90772
|
+
delivery_count: number
|
|
90773
|
+
} | {
|
|
90774
|
+
found: false
|
|
90775
|
+
})
|
|
90776
|
+
|
|
90777
|
+
export interface PlaygroundWorkflowEchoInput {
|
|
90778
|
+
/**
|
|
90779
|
+
* The text to store, 1–1024 characters
|
|
90780
|
+
*/
|
|
90781
|
+
note: string
|
|
90782
|
+
/**
|
|
90783
|
+
* Optional labels stored alongside the note, at most 20
|
|
90784
|
+
*
|
|
90785
|
+
* @maxItems 20
|
|
90786
|
+
*/
|
|
90787
|
+
tags?: []|[string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]
|
|
90788
|
+
}
|
|
90789
|
+
|
|
90790
|
+
export interface PlaygroundWorkflowEchoOutput {
|
|
90791
|
+
/**
|
|
90792
|
+
* Identifier of the stored echo
|
|
90793
|
+
*/
|
|
90794
|
+
id: string
|
|
90795
|
+
/**
|
|
90796
|
+
* The note exactly as it was received
|
|
90797
|
+
*/
|
|
90798
|
+
note: string
|
|
90799
|
+
/**
|
|
90800
|
+
* The tags exactly as they were received
|
|
90801
|
+
*/
|
|
90802
|
+
tags: string[]
|
|
90803
|
+
/**
|
|
90804
|
+
* Correlation id for this echo. The playground/workflow.echoed event published about two seconds later repeats it, which is how a composer matches the completion back to this step.
|
|
90805
|
+
*/
|
|
90806
|
+
echo_id: string
|
|
90807
|
+
/**
|
|
90808
|
+
* ISO-8601 instant (UTC) at which the echo was stored
|
|
90809
|
+
*/
|
|
90810
|
+
received_at: string
|
|
90811
|
+
}
|
|
90812
|
+
|
|
90813
|
+
export interface PlaygroundWorkflowEchoListInput {
|
|
90814
|
+
|
|
90815
|
+
}
|
|
90816
|
+
|
|
90817
|
+
export type PlaygroundWorkflowEchoListOutput = {
|
|
90818
|
+
/**
|
|
90819
|
+
* Identifier of the stored echo
|
|
90820
|
+
*/
|
|
90821
|
+
id: string
|
|
90822
|
+
/**
|
|
90823
|
+
* The note exactly as it was received
|
|
90824
|
+
*/
|
|
90825
|
+
note: string
|
|
90826
|
+
/**
|
|
90827
|
+
* The tags exactly as they were received
|
|
90828
|
+
*/
|
|
90829
|
+
tags: string[]
|
|
90830
|
+
/**
|
|
90831
|
+
* ISO-8601 instant (UTC) at which the echo was stored
|
|
90832
|
+
*/
|
|
90833
|
+
received_at: string
|
|
90834
|
+
}[]
|
|
90835
|
+
|
|
90836
|
+
export interface PlaygroundWorkflowPingInput {
|
|
90837
|
+
/**
|
|
90838
|
+
* Class of ping, echoed on the emitted event and filterable on the trigger. Defaults to 'manual'.
|
|
90839
|
+
*/
|
|
90840
|
+
kind?: string
|
|
90841
|
+
}
|
|
90842
|
+
|
|
90843
|
+
export interface PlaygroundWorkflowPingOutput {
|
|
90844
|
+
/**
|
|
90845
|
+
* Correlation id for this ping. The emitted playground/workflow.ping event repeats it, which is how a composer matches the event back to this step.
|
|
90846
|
+
*/
|
|
90847
|
+
id: string
|
|
90848
|
+
/**
|
|
90849
|
+
* The name of the event that was published
|
|
90850
|
+
*/
|
|
90851
|
+
event: string
|
|
90852
|
+
}
|
|
90853
|
+
|
|
90854
|
+
export interface PlaygroundWorkflowSubjectsListInput {
|
|
90855
|
+
/**
|
|
90856
|
+
* How many subjects to return, 1–100. Defaults to 25.
|
|
90857
|
+
*/
|
|
90858
|
+
limit?: number
|
|
90859
|
+
/**
|
|
90860
|
+
* The next_cursor of the previous page. Opaque — pass it back unchanged. Omit for the first page.
|
|
90861
|
+
*/
|
|
90862
|
+
cursor?: string
|
|
90863
|
+
/**
|
|
90864
|
+
* ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR AFTER this — the opposite question, the recently active population. Omit for no lower bound.
|
|
90865
|
+
*/
|
|
90866
|
+
last_activity_after?: string
|
|
90867
|
+
/**
|
|
90868
|
+
* ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR BEFORE this — the "inactive for N days" question: pass now minus N days. Omit for no upper bound.
|
|
90869
|
+
*/
|
|
90870
|
+
last_activity_before?: string
|
|
90871
|
+
}
|
|
90872
|
+
|
|
90873
|
+
export interface PlaygroundWorkflowSubjectsListOutput {
|
|
90874
|
+
/**
|
|
90875
|
+
* This page of subjects, most recently active first
|
|
90876
|
+
*/
|
|
90877
|
+
items: {
|
|
90878
|
+
/**
|
|
90879
|
+
* Stable identifier for the subject. This is the field a batch trigger keys on, so a subject already served in an earlier run is skipped rather than served twice.
|
|
90880
|
+
*/
|
|
90881
|
+
subject_key: string
|
|
90882
|
+
/**
|
|
90883
|
+
* Human-readable name of the subject
|
|
90884
|
+
*/
|
|
90885
|
+
display_name: string
|
|
90886
|
+
/**
|
|
90887
|
+
* ISO-8601 instant (UTC) of the subject last activity
|
|
90888
|
+
*/
|
|
90889
|
+
last_activity_at: string
|
|
90890
|
+
}[]
|
|
90891
|
+
/**
|
|
90892
|
+
* Whether another page follows. False and a null next_cursor both mark the last page, so a consumer that loops on either terminates.
|
|
90893
|
+
*/
|
|
90894
|
+
has_more: boolean
|
|
90895
|
+
/**
|
|
90896
|
+
* Pass back as `cursor` to fetch the next page; null on the last page. Always null when has_more is false.
|
|
90897
|
+
*/
|
|
90898
|
+
next_cursor: (string | null)
|
|
90899
|
+
}
|
|
90900
|
+
|
|
90901
|
+
export interface PlaygroundWsEchoInput {
|
|
90902
|
+
|
|
90903
|
+
}
|
|
90904
|
+
|
|
90905
|
+
export type PlaygroundWsEchoOutput = unknown;
|
|
90906
|
+
|
|
90535
90907
|
export interface RealtimeArchiveExportInput {
|
|
90536
90908
|
/**
|
|
90537
90909
|
* Only entries with ts <= to_ts (epoch ms)
|
|
@@ -112241,54 +112613,150 @@ secretPrefix: string
|
|
|
112241
112613
|
}
|
|
112242
112614
|
|
|
112243
112615
|
export interface TrackingDomainsCreateInput {
|
|
112616
|
+
/**
|
|
112617
|
+
* Bare hostname to serve tracking from, which must sit under the chosen domain (e.g. analytics.example.com); a suggestion is used when omitted
|
|
112618
|
+
*/
|
|
112244
112619
|
host?: string
|
|
112620
|
+
/**
|
|
112621
|
+
* DNS records to request instead of the default CNAME to the tracking edge; leave unset unless the domain needs custom records
|
|
112622
|
+
*/
|
|
112245
112623
|
records?: {
|
|
112624
|
+
/**
|
|
112625
|
+
* Time-to-live in seconds the record should be published with; the platform picks one when omitted
|
|
112626
|
+
*/
|
|
112246
112627
|
ttl?: number
|
|
112628
|
+
/**
|
|
112629
|
+
* Fully-qualified host the record is published at; defaults to the claimed tracking host
|
|
112630
|
+
*/
|
|
112247
112631
|
name?: string
|
|
112632
|
+
/**
|
|
112633
|
+
* Value the record points at — the edge hostname for a CNAME, the proof string for a TXT
|
|
112634
|
+
*/
|
|
112248
112635
|
target: string
|
|
112636
|
+
/**
|
|
112637
|
+
* DNS record type to publish, e.g. CNAME or TXT
|
|
112638
|
+
*/
|
|
112249
112639
|
recordType: string
|
|
112250
112640
|
}[]
|
|
112641
|
+
/**
|
|
112642
|
+
* Product domain to claim the tracking host under, as listed in `domains[].domainId` by tracking_domains_list
|
|
112643
|
+
*/
|
|
112251
112644
|
domainId: string
|
|
112252
112645
|
}
|
|
112253
112646
|
|
|
112254
112647
|
export interface TrackingDomainsCreateOutput {
|
|
112648
|
+
/**
|
|
112649
|
+
* The binding as just claimed; it starts `pending` and goes `active` once the DNS is observed live
|
|
112650
|
+
*/
|
|
112255
112651
|
binding: {
|
|
112652
|
+
/**
|
|
112653
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112654
|
+
*/
|
|
112256
112655
|
host: string
|
|
112656
|
+
/**
|
|
112657
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112658
|
+
*/
|
|
112257
112659
|
status: ("pending" | "active" | "failed")
|
|
112660
|
+
/**
|
|
112661
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112662
|
+
*/
|
|
112258
112663
|
records: unknown[]
|
|
112664
|
+
/**
|
|
112665
|
+
* Product domain this tracking host sits under
|
|
112666
|
+
*/
|
|
112259
112667
|
domainId: string
|
|
112668
|
+
/**
|
|
112669
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112670
|
+
*/
|
|
112260
112671
|
bindingId: string
|
|
112672
|
+
/**
|
|
112673
|
+
* When the binding was claimed
|
|
112674
|
+
*/
|
|
112261
112675
|
createdAt: string
|
|
112676
|
+
/**
|
|
112677
|
+
* Product the binding belongs to
|
|
112678
|
+
*/
|
|
112262
112679
|
productId: string
|
|
112680
|
+
/**
|
|
112681
|
+
* When the binding last changed status or records
|
|
112682
|
+
*/
|
|
112263
112683
|
updatedAt: string
|
|
112684
|
+
/**
|
|
112685
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112686
|
+
*/
|
|
112264
112687
|
statusDetail: (string | null)
|
|
112688
|
+
/**
|
|
112689
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112690
|
+
*/
|
|
112265
112691
|
ownerExtension: string
|
|
112266
112692
|
}
|
|
112693
|
+
/**
|
|
112694
|
+
* Ordered, human-readable steps for publishing the DNS the claim needs; empty when the platform manages the domain itself
|
|
112695
|
+
*/
|
|
112267
112696
|
instructions: string[]
|
|
112268
112697
|
}
|
|
112269
112698
|
|
|
112270
112699
|
export interface TrackingDomainsDeleteInput {
|
|
112700
|
+
/**
|
|
112701
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112702
|
+
*/
|
|
112271
112703
|
bindingId: string
|
|
112272
112704
|
}
|
|
112273
112705
|
|
|
112274
112706
|
export interface TrackingDomainsDeleteOutput {
|
|
112707
|
+
/**
|
|
112708
|
+
* Always true — the release succeeded; a failure arrives as an error, not as false
|
|
112709
|
+
*/
|
|
112275
112710
|
ok: true
|
|
112276
112711
|
}
|
|
112277
112712
|
|
|
112278
112713
|
export interface TrackingDomainsGetInput {
|
|
112714
|
+
/**
|
|
112715
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112716
|
+
*/
|
|
112279
112717
|
bindingId: string
|
|
112280
112718
|
}
|
|
112281
112719
|
|
|
112282
112720
|
export interface TrackingDomainsGetOutput {
|
|
112721
|
+
/**
|
|
112722
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112723
|
+
*/
|
|
112283
112724
|
host: string
|
|
112725
|
+
/**
|
|
112726
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112727
|
+
*/
|
|
112284
112728
|
status: ("pending" | "active" | "failed")
|
|
112729
|
+
/**
|
|
112730
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112731
|
+
*/
|
|
112285
112732
|
records: unknown[]
|
|
112733
|
+
/**
|
|
112734
|
+
* Product domain this tracking host sits under
|
|
112735
|
+
*/
|
|
112286
112736
|
domainId: string
|
|
112737
|
+
/**
|
|
112738
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112739
|
+
*/
|
|
112287
112740
|
bindingId: string
|
|
112741
|
+
/**
|
|
112742
|
+
* When the binding was claimed
|
|
112743
|
+
*/
|
|
112288
112744
|
createdAt: string
|
|
112745
|
+
/**
|
|
112746
|
+
* Product the binding belongs to
|
|
112747
|
+
*/
|
|
112289
112748
|
productId: string
|
|
112749
|
+
/**
|
|
112750
|
+
* When the binding last changed status or records
|
|
112751
|
+
*/
|
|
112290
112752
|
updatedAt: string
|
|
112753
|
+
/**
|
|
112754
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112755
|
+
*/
|
|
112291
112756
|
statusDetail: (string | null)
|
|
112757
|
+
/**
|
|
112758
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112759
|
+
*/
|
|
112292
112760
|
ownerExtension: string
|
|
112293
112761
|
}
|
|
112294
112762
|
|
|
@@ -112297,41 +112765,125 @@ export interface TrackingDomainsListInput {
|
|
|
112297
112765
|
}
|
|
112298
112766
|
|
|
112299
112767
|
export interface TrackingDomainsListOutput {
|
|
112768
|
+
/**
|
|
112769
|
+
* The product's domains as the platform vouches for them — the set a new tracking host may be claimed under
|
|
112770
|
+
*/
|
|
112300
112771
|
domains: {
|
|
112772
|
+
/**
|
|
112773
|
+
* Who runs the DNS: `managed` means the platform publishes records for you, `external` means you publish them yourself
|
|
112774
|
+
*/
|
|
112301
112775
|
mode: ("external" | "managed")
|
|
112776
|
+
/**
|
|
112777
|
+
* Apex domain name the product owns, e.g. example.com
|
|
112778
|
+
*/
|
|
112302
112779
|
domain: string
|
|
112780
|
+
/**
|
|
112781
|
+
* Stable platform id of the product domain, and what a claim takes as its `domainId`
|
|
112782
|
+
*/
|
|
112303
112783
|
domainId: string
|
|
112784
|
+
/**
|
|
112785
|
+
* ISO-8601 timestamp of when the domain was added to the product
|
|
112786
|
+
*/
|
|
112304
112787
|
createdAt: string
|
|
112788
|
+
/**
|
|
112789
|
+
* How many extensions currently hold a host binding under this domain
|
|
112790
|
+
*/
|
|
112305
112791
|
extensionCount: number
|
|
112306
112792
|
}[]
|
|
112793
|
+
/**
|
|
112794
|
+
* Tracking-host bindings this toolkit currently holds across those domains
|
|
112795
|
+
*/
|
|
112307
112796
|
bindings: {
|
|
112797
|
+
/**
|
|
112798
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112799
|
+
*/
|
|
112308
112800
|
host: string
|
|
112801
|
+
/**
|
|
112802
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112803
|
+
*/
|
|
112309
112804
|
status: ("pending" | "active" | "failed")
|
|
112805
|
+
/**
|
|
112806
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112807
|
+
*/
|
|
112310
112808
|
records: unknown[]
|
|
112809
|
+
/**
|
|
112810
|
+
* Product domain this tracking host sits under
|
|
112811
|
+
*/
|
|
112311
112812
|
domainId: string
|
|
112813
|
+
/**
|
|
112814
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112815
|
+
*/
|
|
112312
112816
|
bindingId: string
|
|
112817
|
+
/**
|
|
112818
|
+
* When the binding was claimed
|
|
112819
|
+
*/
|
|
112313
112820
|
createdAt: string
|
|
112821
|
+
/**
|
|
112822
|
+
* Product the binding belongs to
|
|
112823
|
+
*/
|
|
112314
112824
|
productId: string
|
|
112825
|
+
/**
|
|
112826
|
+
* When the binding last changed status or records
|
|
112827
|
+
*/
|
|
112315
112828
|
updatedAt: string
|
|
112829
|
+
/**
|
|
112830
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112831
|
+
*/
|
|
112316
112832
|
statusDetail: (string | null)
|
|
112833
|
+
/**
|
|
112834
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112835
|
+
*/
|
|
112317
112836
|
ownerExtension: string
|
|
112318
112837
|
}[]
|
|
112319
112838
|
}
|
|
112320
112839
|
|
|
112321
112840
|
export interface TrackingDomainsVerifyInput {
|
|
112841
|
+
/**
|
|
112842
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112843
|
+
*/
|
|
112322
112844
|
bindingId: string
|
|
112323
112845
|
}
|
|
112324
112846
|
|
|
112325
112847
|
export interface TrackingDomainsVerifyOutput {
|
|
112848
|
+
/**
|
|
112849
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
112850
|
+
*/
|
|
112326
112851
|
host: string
|
|
112852
|
+
/**
|
|
112853
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
112854
|
+
*/
|
|
112327
112855
|
status: ("pending" | "active" | "failed")
|
|
112856
|
+
/**
|
|
112857
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
112858
|
+
*/
|
|
112328
112859
|
records: unknown[]
|
|
112860
|
+
/**
|
|
112861
|
+
* Product domain this tracking host sits under
|
|
112862
|
+
*/
|
|
112329
112863
|
domainId: string
|
|
112864
|
+
/**
|
|
112865
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
112866
|
+
*/
|
|
112330
112867
|
bindingId: string
|
|
112868
|
+
/**
|
|
112869
|
+
* When the binding was claimed
|
|
112870
|
+
*/
|
|
112331
112871
|
createdAt: string
|
|
112872
|
+
/**
|
|
112873
|
+
* Product the binding belongs to
|
|
112874
|
+
*/
|
|
112332
112875
|
productId: string
|
|
112876
|
+
/**
|
|
112877
|
+
* When the binding last changed status or records
|
|
112878
|
+
*/
|
|
112333
112879
|
updatedAt: string
|
|
112880
|
+
/**
|
|
112881
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
112882
|
+
*/
|
|
112334
112883
|
statusDetail: (string | null)
|
|
112884
|
+
/**
|
|
112885
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
112886
|
+
*/
|
|
112335
112887
|
ownerExtension: string
|
|
112336
112888
|
}
|
|
112337
112889
|
|
|
@@ -112343,7 +112895,13 @@ name: string
|
|
|
112343
112895
|
}
|
|
112344
112896
|
|
|
112345
112897
|
export interface TrackingEventNamesArchiveOutput {
|
|
112898
|
+
/**
|
|
112899
|
+
* Event name whose status was changed
|
|
112900
|
+
*/
|
|
112346
112901
|
name: string
|
|
112902
|
+
/**
|
|
112903
|
+
* The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
|
|
112904
|
+
*/
|
|
112347
112905
|
status: ("active" | "archived")
|
|
112348
112906
|
}
|
|
112349
112907
|
|
|
@@ -112367,13 +112925,37 @@ status?: ("active" | "archived")
|
|
|
112367
112925
|
}
|
|
112368
112926
|
|
|
112369
112927
|
export interface TrackingEventNamesListOutput {
|
|
112928
|
+
/**
|
|
112929
|
+
* The matching catalogue entries, ordered by the requested sort
|
|
112930
|
+
*/
|
|
112370
112931
|
names: {
|
|
112932
|
+
/**
|
|
112933
|
+
* Event name exactly as the tracking script sends it — the string other tools take as their `event`
|
|
112934
|
+
*/
|
|
112371
112935
|
name: string
|
|
112936
|
+
/**
|
|
112937
|
+
* How many events with this name have been received in total
|
|
112938
|
+
*/
|
|
112372
112939
|
count: number
|
|
112940
|
+
/**
|
|
112941
|
+
* `active` for a name in use, `archived` for one hidden from pickers and reports
|
|
112942
|
+
*/
|
|
112373
112943
|
status: string
|
|
112944
|
+
/**
|
|
112945
|
+
* ISO-8601 timestamp of the most recent event received under this name
|
|
112946
|
+
*/
|
|
112374
112947
|
lastSeen: string
|
|
112948
|
+
/**
|
|
112949
|
+
* ISO-8601 timestamp of the first event ever received under this name
|
|
112950
|
+
*/
|
|
112375
112951
|
firstSeen: string
|
|
112952
|
+
/**
|
|
112953
|
+
* Property keys sampled from recent events with this name, so you can see what the payload carries
|
|
112954
|
+
*/
|
|
112376
112955
|
propsKeys: string[]
|
|
112956
|
+
/**
|
|
112957
|
+
* Whether this name is marked a conversion, which is what makes it available as a workflow trigger
|
|
112958
|
+
*/
|
|
112377
112959
|
isConversion: boolean
|
|
112378
112960
|
}[]
|
|
112379
112961
|
}
|
|
@@ -112390,7 +112972,13 @@ isConversion: boolean
|
|
|
112390
112972
|
}
|
|
112391
112973
|
|
|
112392
112974
|
export interface TrackingEventNamesSetConversionOutput {
|
|
112975
|
+
/**
|
|
112976
|
+
* Event name the conversion flag was applied to
|
|
112977
|
+
*/
|
|
112393
112978
|
name: string
|
|
112979
|
+
/**
|
|
112980
|
+
* The flag as it now stands after the change
|
|
112981
|
+
*/
|
|
112394
112982
|
isConversion: boolean
|
|
112395
112983
|
}
|
|
112396
112984
|
|
|
@@ -112402,7 +112990,13 @@ name: string
|
|
|
112402
112990
|
}
|
|
112403
112991
|
|
|
112404
112992
|
export interface TrackingEventNamesUnarchiveOutput {
|
|
112993
|
+
/**
|
|
112994
|
+
* Event name whose status was changed
|
|
112995
|
+
*/
|
|
112405
112996
|
name: string
|
|
112997
|
+
/**
|
|
112998
|
+
* The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
|
|
112999
|
+
*/
|
|
112406
113000
|
status: ("active" | "archived")
|
|
112407
113001
|
}
|
|
112408
113002
|
|
|
@@ -112411,14 +113005,32 @@ export interface TrackingGoogleadsConnectionStatusInput {
|
|
|
112411
113005
|
}
|
|
112412
113006
|
|
|
112413
113007
|
export type TrackingGoogleadsConnectionStatusOutput = ({
|
|
113008
|
+
/**
|
|
113009
|
+
* Where the Google Ads connection stands: connected means an account is chosen and its credential works, so the other tools will run.
|
|
113010
|
+
*/
|
|
112414
113011
|
state: "connected"
|
|
113012
|
+
/**
|
|
113013
|
+
* The Google Ads account the data is read from and conversions are written to, as a customer id. Only present while connected.
|
|
113014
|
+
*/
|
|
112415
113015
|
customerId: string
|
|
113016
|
+
/**
|
|
113017
|
+
* 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.
|
|
113018
|
+
*/
|
|
112416
113019
|
loginCustomerId: string
|
|
112417
113020
|
} | {
|
|
113021
|
+
/**
|
|
113022
|
+
* Google is authorised but nobody has picked which Google Ads account to use yet, so nothing can run until someone does.
|
|
113023
|
+
*/
|
|
112418
113024
|
state: "pending_account_selection"
|
|
112419
113025
|
} | {
|
|
113026
|
+
/**
|
|
113027
|
+
* The Google authorisation expired or was revoked and has to be granted again before anything can run.
|
|
113028
|
+
*/
|
|
112420
113029
|
state: "reauth_required"
|
|
112421
113030
|
} | {
|
|
113031
|
+
/**
|
|
113032
|
+
* No Google Ads connection has been set up for this product at all.
|
|
113033
|
+
*/
|
|
112422
113034
|
state: "not_connected"
|
|
112423
113035
|
})
|
|
112424
113036
|
|
|
@@ -112439,26 +113051,77 @@ export interface TrackingGoogleadsFeedbackConfigGetInput {
|
|
|
112439
113051
|
}
|
|
112440
113052
|
|
|
112441
113053
|
export interface TrackingGoogleadsFeedbackConfigGetOutput {
|
|
113054
|
+
/**
|
|
113055
|
+
* 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.
|
|
113056
|
+
*/
|
|
112442
113057
|
mode: ("existing_pixel" | "fresh_pixel")
|
|
113058
|
+
/**
|
|
113059
|
+
* Which tracked events become which Google Ads conversion action, and where each one takes its money value from. Disabled rules stay listed.
|
|
113060
|
+
*/
|
|
112443
113061
|
rules: {
|
|
113062
|
+
/**
|
|
113063
|
+
* Tracked event-name this rule uploads, as listed by tracking_event-names_list
|
|
113064
|
+
*/
|
|
112444
113065
|
event: string
|
|
113066
|
+
/**
|
|
113067
|
+
* What monetary value is reported to Google for each conversion this rule uploads
|
|
113068
|
+
*/
|
|
112445
113069
|
value: ({
|
|
113070
|
+
/**
|
|
113071
|
+
* 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
|
|
113072
|
+
*/
|
|
112446
113073
|
source: "revenue"
|
|
112447
113074
|
} | {
|
|
113075
|
+
/**
|
|
113076
|
+
* 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
|
|
113077
|
+
*/
|
|
112448
113078
|
source: "dynamic"
|
|
112449
113079
|
} | {
|
|
113080
|
+
/**
|
|
113081
|
+
* 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
|
|
113082
|
+
*/
|
|
112450
113083
|
source: "fixed"
|
|
113084
|
+
/**
|
|
113085
|
+
* ISO-4217 currency the fixed amount is denominated in, e.g. USD
|
|
113086
|
+
*/
|
|
112451
113087
|
currency: string
|
|
113088
|
+
/**
|
|
113089
|
+
* The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
|
|
113090
|
+
*/
|
|
112452
113091
|
amountMinor: number
|
|
112453
113092
|
})
|
|
113093
|
+
/**
|
|
113094
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
113095
|
+
*/
|
|
112454
113096
|
enabled: boolean
|
|
113097
|
+
/**
|
|
113098
|
+
* Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
|
|
113099
|
+
*/
|
|
112455
113100
|
conversionAction: string
|
|
112456
113101
|
}[]
|
|
113102
|
+
/**
|
|
113103
|
+
* Whether conversions are being sent to Google Ads at all. False leaves every rule below in place but uploads nothing.
|
|
113104
|
+
*/
|
|
112457
113105
|
enabled: boolean
|
|
113106
|
+
/**
|
|
113107
|
+
* The tenant this configuration belongs to. Never supplied by a caller — it comes from the authenticated identity.
|
|
113108
|
+
*/
|
|
112458
113109
|
productId: string
|
|
113110
|
+
/**
|
|
113111
|
+
* 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.
|
|
113112
|
+
*/
|
|
112459
113113
|
lookbackDays: number
|
|
113114
|
+
/**
|
|
113115
|
+
* 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.
|
|
113116
|
+
*/
|
|
112460
113117
|
accountCurrency: (string | null)
|
|
113118
|
+
/**
|
|
113119
|
+
* The event names that may use the Dynamic value source, because revenue is known for them. Any other event needs a fixed amount.
|
|
113120
|
+
*/
|
|
112461
113121
|
dynamicValueEvents: string[]
|
|
113122
|
+
/**
|
|
113123
|
+
* Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
|
|
113124
|
+
*/
|
|
112462
113125
|
enhancedConversions: boolean
|
|
112463
113126
|
}
|
|
112464
113127
|
|
|
@@ -112475,11 +113138,23 @@ rules?: {
|
|
|
112475
113138
|
* Any tracked event-name for this product (validated against the event-name catalog)
|
|
112476
113139
|
*/
|
|
112477
113140
|
event: string
|
|
113141
|
+
/**
|
|
113142
|
+
* What monetary value to report to Google for each conversion this rule uploads
|
|
113143
|
+
*/
|
|
112478
113144
|
value: ({
|
|
113145
|
+
/**
|
|
113146
|
+
* 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
|
|
113147
|
+
*/
|
|
112479
113148
|
source: "revenue"
|
|
112480
113149
|
} | {
|
|
113150
|
+
/**
|
|
113151
|
+
* 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
|
|
113152
|
+
*/
|
|
112481
113153
|
source: "dynamic"
|
|
112482
113154
|
} | {
|
|
113155
|
+
/**
|
|
113156
|
+
* 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
|
|
113157
|
+
*/
|
|
112483
113158
|
source: "fixed"
|
|
112484
113159
|
/**
|
|
112485
113160
|
* ISO-4217 currency code, e.g. USD
|
|
@@ -112490,6 +113165,9 @@ currency: string
|
|
|
112490
113165
|
*/
|
|
112491
113166
|
amountMinor?: number
|
|
112492
113167
|
})
|
|
113168
|
+
/**
|
|
113169
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
113170
|
+
*/
|
|
112493
113171
|
enabled: boolean
|
|
112494
113172
|
/**
|
|
112495
113173
|
* Google conversion action resource: customers/<cid>/conversionActions/<id>
|
|
@@ -112511,28 +113189,82 @@ enhancedConversions?: boolean
|
|
|
112511
113189
|
}
|
|
112512
113190
|
|
|
112513
113191
|
export interface TrackingGoogleadsFeedbackConfigSetOutput {
|
|
113192
|
+
/**
|
|
113193
|
+
* The config as it now stands after the write, with server-side normalisation applied
|
|
113194
|
+
*/
|
|
112514
113195
|
config: {
|
|
113196
|
+
/**
|
|
113197
|
+
* How our uploads sit beside your own tag: `existing_pixel` only fills gaps it left, `fresh_pixel` reports our data alone
|
|
113198
|
+
*/
|
|
112515
113199
|
mode: ("existing_pixel" | "fresh_pixel")
|
|
113200
|
+
/**
|
|
113201
|
+
* The event-to-conversion-action mappings, each with its own value source
|
|
113202
|
+
*/
|
|
112516
113203
|
rules: {
|
|
113204
|
+
/**
|
|
113205
|
+
* Tracked event-name this rule uploads, as listed by tracking_event-names_list
|
|
113206
|
+
*/
|
|
112517
113207
|
event: string
|
|
113208
|
+
/**
|
|
113209
|
+
* What monetary value is reported to Google for each conversion this rule uploads
|
|
113210
|
+
*/
|
|
112518
113211
|
value: ({
|
|
113212
|
+
/**
|
|
113213
|
+
* 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
|
|
113214
|
+
*/
|
|
112519
113215
|
source: "revenue"
|
|
112520
113216
|
} | {
|
|
113217
|
+
/**
|
|
113218
|
+
* 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
|
|
113219
|
+
*/
|
|
112521
113220
|
source: "dynamic"
|
|
112522
113221
|
} | {
|
|
113222
|
+
/**
|
|
113223
|
+
* 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
|
|
113224
|
+
*/
|
|
112523
113225
|
source: "fixed"
|
|
113226
|
+
/**
|
|
113227
|
+
* ISO-4217 currency the fixed amount is denominated in, e.g. USD
|
|
113228
|
+
*/
|
|
112524
113229
|
currency: string
|
|
113230
|
+
/**
|
|
113231
|
+
* The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
|
|
113232
|
+
*/
|
|
112525
113233
|
amountMinor: number
|
|
112526
113234
|
})
|
|
113235
|
+
/**
|
|
113236
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
113237
|
+
*/
|
|
112527
113238
|
enabled: boolean
|
|
113239
|
+
/**
|
|
113240
|
+
* Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
|
|
113241
|
+
*/
|
|
112528
113242
|
conversionAction: string
|
|
112529
113243
|
}[]
|
|
113244
|
+
/**
|
|
113245
|
+
* Master switch: with it off no rule uploads anything, however the individual rules are set
|
|
113246
|
+
*/
|
|
112530
113247
|
enabled: boolean
|
|
113248
|
+
/**
|
|
113249
|
+
* Product this conversion-feedback config belongs to
|
|
113250
|
+
*/
|
|
112531
113251
|
productId: string
|
|
113252
|
+
/**
|
|
113253
|
+
* How many days back a click may have happened and still be matched to a conversion (max 90)
|
|
113254
|
+
*/
|
|
112532
113255
|
lookbackDays: number
|
|
113256
|
+
/**
|
|
113257
|
+
* The connected Google Ads account's currency, best-effort; null or absent when it could not be read
|
|
113258
|
+
*/
|
|
112533
113259
|
accountCurrency?: (string | null)
|
|
113260
|
+
/**
|
|
113261
|
+
* Whether hashed email and phone are sent alongside gclid as additional match keys, which raises match rates
|
|
113262
|
+
*/
|
|
112534
113263
|
enhancedConversions: boolean
|
|
112535
113264
|
}
|
|
113265
|
+
/**
|
|
113266
|
+
* Plain-language safety notes about what this combination of mode and match keys will do to the connected account
|
|
113267
|
+
*/
|
|
112536
113268
|
guidance: string[]
|
|
112537
113269
|
}
|
|
112538
113270
|
|
|
@@ -112541,15 +113273,48 @@ export interface TrackingGoogleadsFeedbackRunInput {
|
|
|
112541
113273
|
}
|
|
112542
113274
|
|
|
112543
113275
|
export interface TrackingGoogleadsFeedbackRunOutput {
|
|
113276
|
+
/**
|
|
113277
|
+
* 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.
|
|
113278
|
+
*/
|
|
113279
|
+
runId: string
|
|
113280
|
+
/**
|
|
113281
|
+
* Rows Google rejected in this pass.
|
|
113282
|
+
*/
|
|
112544
113283
|
failed: number
|
|
113284
|
+
/**
|
|
113285
|
+
* Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
|
|
113286
|
+
*/
|
|
112545
113287
|
matched: number
|
|
113288
|
+
/**
|
|
113289
|
+
* Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
|
|
113290
|
+
*/
|
|
112546
113291
|
noGclid: number
|
|
113292
|
+
/**
|
|
113293
|
+
* 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.
|
|
113294
|
+
*/
|
|
112547
113295
|
skipped?: ("disabled" | "no_rules" | "not_connected")
|
|
113296
|
+
/**
|
|
113297
|
+
* Conversions in the lookback window that an enabled rule applied to.
|
|
113298
|
+
*/
|
|
112548
113299
|
selected: number
|
|
113300
|
+
/**
|
|
113301
|
+
* Rows Google accepted in this pass.
|
|
113302
|
+
*/
|
|
112549
113303
|
uploaded: number
|
|
113304
|
+
/**
|
|
113305
|
+
* The tenant whose conversions this pass uploaded.
|
|
113306
|
+
*/
|
|
112550
113307
|
productId: string
|
|
113308
|
+
/**
|
|
113309
|
+
* Conversions held back because their money value had not landed yet. They are retried on a later pass.
|
|
113310
|
+
*/
|
|
112551
113311
|
zeroValue: number
|
|
112552
|
-
|
|
113312
|
+
/**
|
|
113313
|
+
* Google's own rejection detail, passed through unchanged, when it refused part of the batch. Absent when it accepted everything.
|
|
113314
|
+
*/
|
|
113315
|
+
partialFailureError?: {
|
|
113316
|
+
[k: string]: unknown
|
|
113317
|
+
}
|
|
112553
113318
|
}
|
|
112554
113319
|
|
|
112555
113320
|
export interface TrackingGoogleadsFeedbackStatusInput {
|
|
@@ -112557,25 +113322,82 @@ export interface TrackingGoogleadsFeedbackStatusInput {
|
|
|
112557
113322
|
}
|
|
112558
113323
|
|
|
112559
113324
|
export interface TrackingGoogleadsFeedbackStatusOutput {
|
|
113325
|
+
/**
|
|
113326
|
+
* 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.
|
|
113327
|
+
*/
|
|
112560
113328
|
mode: ("existing_pixel" | "fresh_pixel")
|
|
113329
|
+
/**
|
|
113330
|
+
* Rows Google has rejected since this product was connected, across every pass.
|
|
113331
|
+
*/
|
|
112561
113332
|
failed: number
|
|
113333
|
+
/**
|
|
113334
|
+
* Whether conversions are being sent to Google Ads at all.
|
|
113335
|
+
*/
|
|
112562
113336
|
enabled: boolean
|
|
113337
|
+
/**
|
|
113338
|
+
* Coverage of the most recent pass. Null when no pass has run for this product yet.
|
|
113339
|
+
*/
|
|
112563
113340
|
lastRun: ({
|
|
113341
|
+
/**
|
|
113342
|
+
* When the last pass finished. Null when the stored summary predates this field.
|
|
113343
|
+
*/
|
|
112564
113344
|
ranAt: (string | null)
|
|
113345
|
+
/**
|
|
113346
|
+
* Rows Google rejected. Anything above zero is what makes the status partial.
|
|
113347
|
+
*/
|
|
112565
113348
|
failed: number
|
|
113349
|
+
/**
|
|
113350
|
+
* 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.
|
|
113351
|
+
*/
|
|
112566
113352
|
status: ("ok" | "partial" | "not_connected")
|
|
113353
|
+
/**
|
|
113354
|
+
* Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
|
|
113355
|
+
*/
|
|
112567
113356
|
matched: number
|
|
113357
|
+
/**
|
|
113358
|
+
* Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
|
|
113359
|
+
*/
|
|
112568
113360
|
noGclid: number
|
|
113361
|
+
/**
|
|
113362
|
+
* Conversions in the lookback window that an enabled rule applied to.
|
|
113363
|
+
*/
|
|
112569
113364
|
selected: number
|
|
113365
|
+
/**
|
|
113366
|
+
* Rows Google accepted.
|
|
113367
|
+
*/
|
|
112570
113368
|
uploaded: number
|
|
113369
|
+
/**
|
|
113370
|
+
* Conversions held back because their money value had not landed yet. They are retried on a later pass.
|
|
113371
|
+
*/
|
|
112571
113372
|
zeroValue: number
|
|
112572
113373
|
} | null)
|
|
113374
|
+
/**
|
|
113375
|
+
* 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.
|
|
113376
|
+
*/
|
|
112573
113377
|
guidance: string[]
|
|
113378
|
+
/**
|
|
113379
|
+
* Rows Google has accepted since this product was connected, across every pass.
|
|
113380
|
+
*/
|
|
112574
113381
|
uploaded: number
|
|
113382
|
+
/**
|
|
113383
|
+
* How many event-to-conversion-action rules are configured, enabled or not.
|
|
113384
|
+
*/
|
|
112575
113385
|
ruleCount: number
|
|
113386
|
+
/**
|
|
113387
|
+
* How many days back each pass looks for conversions to send, and how far back a click may be matched.
|
|
113388
|
+
*/
|
|
112576
113389
|
lookbackDays: number
|
|
113390
|
+
/**
|
|
113391
|
+
* 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.
|
|
113392
|
+
*/
|
|
112577
113393
|
accountCurrency: (string | null)
|
|
112578
|
-
|
|
113394
|
+
/**
|
|
113395
|
+
* The event names that may use the Dynamic value source, because revenue is known for them.
|
|
113396
|
+
*/
|
|
113397
|
+
dynamicValueEvents: string[]
|
|
113398
|
+
/**
|
|
113399
|
+
* Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
|
|
113400
|
+
*/
|
|
112579
113401
|
enhancedConversions: boolean
|
|
112580
113402
|
}
|
|
112581
113403
|
|
|
@@ -112597,65 +113419,228 @@ conversionDatetime: string
|
|
|
112597
113419
|
}[]
|
|
112598
113420
|
|
|
112599
113421
|
export interface TrackingGoogleadsRoasReportInput {
|
|
112600
|
-
|
|
112601
|
-
|
|
113422
|
+
/**
|
|
113423
|
+
* 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.
|
|
113424
|
+
*/
|
|
113425
|
+
to?: string
|
|
113426
|
+
/**
|
|
113427
|
+
* 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.
|
|
113428
|
+
*/
|
|
113429
|
+
from?: string
|
|
113430
|
+
/**
|
|
113431
|
+
* Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
|
|
113432
|
+
*/
|
|
112602
113433
|
model?: ("last_click" | "first_click")
|
|
113434
|
+
/**
|
|
113435
|
+
* Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
|
|
113436
|
+
*/
|
|
112603
113437
|
domain?: string
|
|
113438
|
+
/**
|
|
113439
|
+
* Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
|
|
113440
|
+
*/
|
|
112604
113441
|
customerId?: string
|
|
113442
|
+
/**
|
|
113443
|
+
* 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.
|
|
113444
|
+
*/
|
|
112605
113445
|
lookbackDays?: number
|
|
112606
113446
|
}
|
|
112607
113447
|
|
|
112608
113448
|
export interface TrackingGoogleadsRoasReportOutput {
|
|
113449
|
+
/**
|
|
113450
|
+
* End of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
|
|
113451
|
+
*/
|
|
112609
113452
|
to: string
|
|
113453
|
+
/**
|
|
113454
|
+
* Start of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
|
|
113455
|
+
*/
|
|
112610
113456
|
from: string
|
|
113457
|
+
/**
|
|
113458
|
+
* Which touchpoint earned the credit in these numbers: the last paid click before the conversion, or the first.
|
|
113459
|
+
*/
|
|
112611
113460
|
model: ("last_click" | "first_click")
|
|
113461
|
+
/**
|
|
113462
|
+
* 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.
|
|
113463
|
+
*/
|
|
113464
|
+
stale: boolean
|
|
113465
|
+
/**
|
|
113466
|
+
* The installed site this report was restricted to; null when it covers every domain of the product.
|
|
113467
|
+
*/
|
|
112612
113468
|
domain: (string | null)
|
|
113469
|
+
/**
|
|
113470
|
+
* One entry per Google Ads account and currency. Kept apart on purpose: amounts in different currencies are never added together.
|
|
113471
|
+
*/
|
|
112613
113472
|
accounts: {
|
|
113473
|
+
/**
|
|
113474
|
+
* 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.
|
|
113475
|
+
*/
|
|
112614
113476
|
stale: boolean
|
|
113477
|
+
/**
|
|
113478
|
+
* 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.
|
|
113479
|
+
*/
|
|
112615
113480
|
currency: string
|
|
113481
|
+
/**
|
|
113482
|
+
* This account's campaigns, each with its ad groups and ads nested underneath.
|
|
113483
|
+
*/
|
|
112616
113484
|
campaigns: TrackingGoogleadsRoasReportOutputItems[]
|
|
113485
|
+
/**
|
|
113486
|
+
* Google Ads account these campaigns belong to, by customer id without dashes.
|
|
113487
|
+
*/
|
|
112617
113488
|
customerId: string
|
|
113489
|
+
/**
|
|
113490
|
+
* When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
|
|
113491
|
+
*/
|
|
112618
113492
|
costLastSyncedAt: (string | null)
|
|
112619
113493
|
}[]
|
|
113494
|
+
/**
|
|
113495
|
+
* ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
|
|
113496
|
+
*/
|
|
113497
|
+
currency: (string | null)
|
|
113498
|
+
/**
|
|
113499
|
+
* When this report was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
|
|
113500
|
+
*/
|
|
112620
113501
|
computedAt: string
|
|
113502
|
+
/**
|
|
113503
|
+
* Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
|
|
113504
|
+
*/
|
|
113505
|
+
customerId: (string | null)
|
|
113506
|
+
/**
|
|
113507
|
+
* How far back before a conversion a paid click was allowed to sit and still earn the credit, in days.
|
|
113508
|
+
*/
|
|
112621
113509
|
lookbackDays: number
|
|
113510
|
+
/**
|
|
113511
|
+
* Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
|
|
113512
|
+
*/
|
|
113513
|
+
costLastSyncedAt: (string | null)
|
|
113514
|
+
/**
|
|
113515
|
+
* 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.
|
|
113516
|
+
*/
|
|
112622
113517
|
unmatchedAttributed: {
|
|
113518
|
+
/**
|
|
113519
|
+
* Revenue that stayed outside every campaign, one row per currency. Never cross-summed.
|
|
113520
|
+
*/
|
|
112623
113521
|
revenue: TrackingGoogleadsRoasReportOutputItems1[]
|
|
113522
|
+
/**
|
|
113523
|
+
* How many distinct customers paid but could not be traced to any Google Ads campaign.
|
|
113524
|
+
*/
|
|
112624
113525
|
conversions: number
|
|
113526
|
+
/**
|
|
113527
|
+
* 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.
|
|
113528
|
+
*/
|
|
112625
113529
|
utmCampaign: (string | null)
|
|
112626
113530
|
}[]
|
|
112627
113531
|
}
|
|
112628
113532
|
export interface TrackingGoogleadsRoasReportOutputItems {
|
|
113533
|
+
/**
|
|
113534
|
+
* What one attributed customer cost: cost divided by attributed conversions, in minor units of the account currency. null when there were no attributed conversions.
|
|
113535
|
+
*/
|
|
112629
113536
|
cpa: (number | null)
|
|
113537
|
+
/**
|
|
113538
|
+
* Google Ads ad this node is, by its numeric id; null on a campaign or ad group node.
|
|
113539
|
+
*/
|
|
112630
113540
|
adId: (string | null)
|
|
113541
|
+
/**
|
|
113542
|
+
* What Google charged and what Google itself counted for this node over the window.
|
|
113543
|
+
*/
|
|
112631
113544
|
cost: {
|
|
113545
|
+
/**
|
|
113546
|
+
* How many times someone clicked through from Google over the window.
|
|
113547
|
+
*/
|
|
112632
113548
|
clicks: number
|
|
113549
|
+
/**
|
|
113550
|
+
* ISO-4217 code of the Google Ads account these numbers come from, e.g. USD. Fixed per account.
|
|
113551
|
+
*/
|
|
112633
113552
|
currency: string
|
|
113553
|
+
/**
|
|
113554
|
+
* What Google charged for this campaign, ad group or ad over the window, in minor units (1250 = 12.50).
|
|
113555
|
+
*/
|
|
112634
113556
|
costMinor: number
|
|
113557
|
+
/**
|
|
113558
|
+
* How many times Google showed this ad over the window.
|
|
113559
|
+
*/
|
|
112635
113560
|
impressions: number
|
|
113561
|
+
/**
|
|
113562
|
+
* Conversions GOOGLE counted for this node — its own attribution, not ours. May be fractional, because Google splits credit across touchpoints.
|
|
113563
|
+
*/
|
|
112636
113564
|
platformConversions: number
|
|
113565
|
+
/**
|
|
113566
|
+
* Conversion value GOOGLE reports for this node, in minor units of the account currency. Compare it with our attributed revenue; the two rarely agree.
|
|
113567
|
+
*/
|
|
112637
113568
|
platformConversionsValueMinor: number
|
|
112638
113569
|
}
|
|
113570
|
+
/**
|
|
113571
|
+
* What this campaign, ad group or ad is called in Google Ads; null when the name has not been synced.
|
|
113572
|
+
*/
|
|
112639
113573
|
name: (string | null)
|
|
113574
|
+
/**
|
|
113575
|
+
* 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.
|
|
113576
|
+
*/
|
|
112640
113577
|
roas: (number | null)
|
|
113578
|
+
/**
|
|
113579
|
+
* 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.
|
|
113580
|
+
*/
|
|
112641
113581
|
level: ("campaign" | "ad_group" | "ad")
|
|
113582
|
+
/**
|
|
113583
|
+
* Google Ads campaign state, passed through raw: ENABLED, PAUSED, REMOVED. Present on campaign nodes only — the key is absent below.
|
|
113584
|
+
*/
|
|
112642
113585
|
status?: string
|
|
113586
|
+
/**
|
|
113587
|
+
* The level below this one: ad groups under a campaign, ads under an ad group, empty on an ad.
|
|
113588
|
+
*/
|
|
112643
113589
|
children: TrackingGoogleadsRoasReportOutputItems[]
|
|
113590
|
+
/**
|
|
113591
|
+
* Google Ads ad group this node belongs to, by its numeric id; null on a campaign node.
|
|
113592
|
+
*/
|
|
112644
113593
|
adGroupId: (string | null)
|
|
113594
|
+
/**
|
|
113595
|
+
* What WE traced back to this node from our own tracking. null below campaign level, and null on a campaign nothing was traced to.
|
|
113596
|
+
*/
|
|
112645
113597
|
attributed: ({
|
|
113598
|
+
/**
|
|
113599
|
+
* What WE traced back to this campaign, one row per currency the customers paid in. Never cross-summed — use accountCurrencyNetMinor for a single figure.
|
|
113600
|
+
*/
|
|
112646
113601
|
revenue: TrackingGoogleadsRoasReportOutputItems1[]
|
|
112647
|
-
|
|
113602
|
+
/**
|
|
113603
|
+
* 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.
|
|
113604
|
+
*/
|
|
113605
|
+
matchedBy: (("lt_campaign_id" | "campaign_id" | "campaign_name" | "gclid") | null)
|
|
113606
|
+
/**
|
|
113607
|
+
* 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.
|
|
113608
|
+
*/
|
|
112648
113609
|
conversions: number
|
|
113610
|
+
/**
|
|
113611
|
+
* 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.
|
|
113612
|
+
*/
|
|
112649
113613
|
accountCurrencyNetMinor: number
|
|
112650
113614
|
} | null)
|
|
113615
|
+
/**
|
|
113616
|
+
* Google Ads campaign this node belongs to, by its numeric id. Set at every level.
|
|
113617
|
+
*/
|
|
112651
113618
|
campaignId: string
|
|
113619
|
+
/**
|
|
113620
|
+
* Google Ads account this node belongs to, by customer id without dashes.
|
|
113621
|
+
*/
|
|
112652
113622
|
customerId: string
|
|
113623
|
+
/**
|
|
113624
|
+
* 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.
|
|
113625
|
+
*/
|
|
112653
113626
|
channelType?: (string | null)
|
|
112654
113627
|
}
|
|
112655
113628
|
export interface TrackingGoogleadsRoasReportOutputItems1 {
|
|
113629
|
+
/**
|
|
113630
|
+
* ISO-4217 code the three amounts on this row are denominated in, e.g. USD. One row per currency; rows are never added together.
|
|
113631
|
+
*/
|
|
112656
113632
|
currency: string
|
|
113633
|
+
/**
|
|
113634
|
+
* Money kept after refunds (gross minus refunded), in minor units of this row's currency. This is what ROAS is calculated from.
|
|
113635
|
+
*/
|
|
112657
113636
|
netMinor: number
|
|
113637
|
+
/**
|
|
113638
|
+
* Money taken before refunds, in minor units of this row's currency (1250 = 12.50).
|
|
113639
|
+
*/
|
|
112658
113640
|
grossMinor: number
|
|
113641
|
+
/**
|
|
113642
|
+
* Money given back within the window, in minor units of this row's currency; already subtracted from netMinor.
|
|
113643
|
+
*/
|
|
112659
113644
|
refundedMinor: number
|
|
112660
113645
|
}
|
|
112661
113646
|
|
|
@@ -112664,21 +113649,67 @@ export interface TrackingGoogleadsSyncNowInput {
|
|
|
112664
113649
|
}
|
|
112665
113650
|
|
|
112666
113651
|
export interface TrackingGoogleadsSyncNowOutput {
|
|
113652
|
+
/**
|
|
113653
|
+
* 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.
|
|
113654
|
+
*/
|
|
112667
113655
|
rows: {
|
|
113656
|
+
/**
|
|
113657
|
+
* Ads written.
|
|
113658
|
+
*/
|
|
112668
113659
|
ads: number
|
|
113660
|
+
/**
|
|
113661
|
+
* Day-by-day ad spend and metric rows written.
|
|
113662
|
+
*/
|
|
112669
113663
|
adDaily: number
|
|
113664
|
+
/**
|
|
113665
|
+
* Ad groups written.
|
|
113666
|
+
*/
|
|
112670
113667
|
adGroups: number
|
|
113668
|
+
/**
|
|
113669
|
+
* Campaigns written, names and status included.
|
|
113670
|
+
*/
|
|
112671
113671
|
campaigns: number
|
|
113672
|
+
/**
|
|
113673
|
+
* Day-by-day ad-group spend and metric rows written.
|
|
113674
|
+
*/
|
|
112672
113675
|
adGroupDaily: number
|
|
113676
|
+
/**
|
|
113677
|
+
* Day-by-day campaign spend and metric rows written.
|
|
113678
|
+
*/
|
|
112673
113679
|
campaignDaily: number
|
|
112674
113680
|
}
|
|
113681
|
+
/**
|
|
113682
|
+
* 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.
|
|
113683
|
+
*/
|
|
113684
|
+
runId: string
|
|
113685
|
+
/**
|
|
113686
|
+
* 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.
|
|
113687
|
+
*/
|
|
112675
113688
|
reason?: string
|
|
113689
|
+
/**
|
|
113690
|
+
* Whether the sweep ran. skipped means the Google Ads account could not be reached and nothing at all was written.
|
|
113691
|
+
*/
|
|
112676
113692
|
status: ("ok" | "skipped")
|
|
113693
|
+
/**
|
|
113694
|
+
* The range of days this sweep read spend and metrics for.
|
|
113695
|
+
*/
|
|
112677
113696
|
window: {
|
|
113697
|
+
/**
|
|
113698
|
+
* Last day covered, inclusive, as YYYY-MM-DD.
|
|
113699
|
+
*/
|
|
112678
113700
|
end: string
|
|
113701
|
+
/**
|
|
113702
|
+
* First day covered, inclusive, as YYYY-MM-DD.
|
|
113703
|
+
*/
|
|
112679
113704
|
start: string
|
|
112680
113705
|
}
|
|
113706
|
+
/**
|
|
113707
|
+
* The tenant whose Google Ads account was swept.
|
|
113708
|
+
*/
|
|
112681
113709
|
productId: string
|
|
113710
|
+
/**
|
|
113711
|
+
* When the sweep finished. Null when nothing was written.
|
|
113712
|
+
*/
|
|
112682
113713
|
lastSyncedAt: (string | null)
|
|
112683
113714
|
}
|
|
112684
113715
|
|
|
@@ -112694,54 +113725,187 @@ from?: string
|
|
|
112694
113725
|
}
|
|
112695
113726
|
|
|
112696
113727
|
export interface TrackingGoogleadsTrackingHealthOutput {
|
|
113728
|
+
/**
|
|
113729
|
+
* End of the range these figures cover, as an instant.
|
|
113730
|
+
*/
|
|
112697
113731
|
to: string
|
|
113732
|
+
/**
|
|
113733
|
+
* Start of the range these figures cover, as an instant. Echoes back the range that was asked for.
|
|
113734
|
+
*/
|
|
112698
113735
|
from: string
|
|
113736
|
+
/**
|
|
113737
|
+
* Whether the tracking template has been seen working live: true once at least one tagged click has arrived.
|
|
113738
|
+
*/
|
|
112699
113739
|
installed: boolean
|
|
113740
|
+
/**
|
|
113741
|
+
* Whether the sample above was cut short. True means more untagged URLs exist than are listed.
|
|
113742
|
+
*/
|
|
112700
113743
|
truncated: boolean
|
|
113744
|
+
/**
|
|
113745
|
+
* Google paid clicks that arrived on the site in this range. The denominator for everything below.
|
|
113746
|
+
*/
|
|
112701
113747
|
paidClicks: number
|
|
113748
|
+
/**
|
|
113749
|
+
* 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.
|
|
113750
|
+
*/
|
|
112702
113751
|
dataQuality: {
|
|
113752
|
+
/**
|
|
113753
|
+
* 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.
|
|
113754
|
+
*/
|
|
112703
113755
|
cookielessPaidClicks: number
|
|
112704
113756
|
}
|
|
113757
|
+
/**
|
|
113758
|
+
* Share of paid clicks that arrived untagged, between 0 and 1. Anything much above zero means the tracking template needs fixing.
|
|
113759
|
+
*/
|
|
112705
113760
|
breakageRate: number
|
|
113761
|
+
/**
|
|
113762
|
+
* Of those, the ones that arrived carrying our URL tracking parameters, so the campaign behind them is known.
|
|
113763
|
+
*/
|
|
112706
113764
|
taggedClicks: number
|
|
113765
|
+
/**
|
|
113766
|
+
* When the most recent untagged click arrived. Close to now means the breakage is still live. Null when none did.
|
|
113767
|
+
*/
|
|
112707
113768
|
lastUntaggedAt: (string | null)
|
|
113769
|
+
/**
|
|
113770
|
+
* 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.
|
|
113771
|
+
*/
|
|
112708
113772
|
untaggedClicks: number
|
|
113773
|
+
/**
|
|
113774
|
+
* When the first untagged click of the range arrived — roughly when the breakage started. Null when none did.
|
|
113775
|
+
*/
|
|
112709
113776
|
firstUntaggedAt: (string | null)
|
|
113777
|
+
/**
|
|
113778
|
+
* 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.
|
|
113779
|
+
*/
|
|
112710
113780
|
sampleUntaggedUrls: string[]
|
|
112711
113781
|
}
|
|
112712
113782
|
|
|
112713
113783
|
export interface TrackingGoogleadsUsVsPlatformInput {
|
|
112714
|
-
|
|
112715
|
-
|
|
113784
|
+
/**
|
|
113785
|
+
* 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.
|
|
113786
|
+
*/
|
|
113787
|
+
to?: string
|
|
113788
|
+
/**
|
|
113789
|
+
* 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.
|
|
113790
|
+
*/
|
|
113791
|
+
from?: string
|
|
113792
|
+
/**
|
|
113793
|
+
* Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
|
|
113794
|
+
*/
|
|
112716
113795
|
model?: ("last_click" | "first_click")
|
|
113796
|
+
/**
|
|
113797
|
+
* Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
|
|
113798
|
+
*/
|
|
112717
113799
|
domain?: string
|
|
113800
|
+
/**
|
|
113801
|
+
* Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
|
|
113802
|
+
*/
|
|
112718
113803
|
customerId?: string
|
|
113804
|
+
/**
|
|
113805
|
+
* 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.
|
|
113806
|
+
*/
|
|
112719
113807
|
lookbackDays?: number
|
|
112720
113808
|
}
|
|
112721
113809
|
|
|
112722
113810
|
export interface TrackingGoogleadsUsVsPlatformOutput {
|
|
113811
|
+
/**
|
|
113812
|
+
* End of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
|
|
113813
|
+
*/
|
|
112723
113814
|
to: string
|
|
113815
|
+
/**
|
|
113816
|
+
* Start of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
|
|
113817
|
+
*/
|
|
112724
113818
|
from: string
|
|
113819
|
+
/**
|
|
113820
|
+
* 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.
|
|
113821
|
+
*/
|
|
112725
113822
|
model: ("last_click" | "first_click")
|
|
113823
|
+
/**
|
|
113824
|
+
* 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.
|
|
113825
|
+
*/
|
|
113826
|
+
stale: boolean
|
|
113827
|
+
/**
|
|
113828
|
+
* The installed site this comparison was restricted to; null when it covers every domain of the product.
|
|
113829
|
+
*/
|
|
112726
113830
|
domain: (string | null)
|
|
113831
|
+
/**
|
|
113832
|
+
* One entry per Google Ads account and currency, each holding its per-campaign comparison rows. Currencies are never added together.
|
|
113833
|
+
*/
|
|
112727
113834
|
accounts: {
|
|
113835
|
+
/**
|
|
113836
|
+
* One row per campaign in this account, ours beside Google's.
|
|
113837
|
+
*/
|
|
112728
113838
|
rows: {
|
|
113839
|
+
/**
|
|
113840
|
+
* What this campaign is called in Google Ads; null when the name has not been synced.
|
|
113841
|
+
*/
|
|
112729
113842
|
name: (string | null)
|
|
113843
|
+
/**
|
|
113844
|
+
* ISO-4217 code both sides of this comparison are expressed in, e.g. USD. Ours and Google's are never converted.
|
|
113845
|
+
*/
|
|
112730
113846
|
currency: string
|
|
113847
|
+
/**
|
|
113848
|
+
* The Google Ads campaign this row compares, by its numeric id.
|
|
113849
|
+
*/
|
|
112731
113850
|
campaignId: string
|
|
113851
|
+
/**
|
|
113852
|
+
* Google Ads account this campaign belongs to, by customer id without dashes.
|
|
113853
|
+
*/
|
|
112732
113854
|
customerId: string
|
|
113855
|
+
/**
|
|
113856
|
+
* How many distinct customers WE traced to this campaign. A whole number: we never split a customer across campaigns.
|
|
113857
|
+
*/
|
|
112733
113858
|
ourConversions: number
|
|
113859
|
+
/**
|
|
113860
|
+
* Net revenue WE traced to this campaign, in minor units of the account currency (1250 = 12.50). 0 when we traced none.
|
|
113861
|
+
*/
|
|
112734
113862
|
ourRevenueNetMinor: number
|
|
113863
|
+
/**
|
|
113864
|
+
* 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.
|
|
113865
|
+
*/
|
|
112735
113866
|
platformConversions: number
|
|
113867
|
+
/**
|
|
113868
|
+
* Conversion value GOOGLE reports for the same campaign, in minor units of the account currency. The counterpart of ourRevenueNetMinor.
|
|
113869
|
+
*/
|
|
112736
113870
|
platformConversionsValueMinor: number
|
|
112737
113871
|
}[]
|
|
113872
|
+
/**
|
|
113873
|
+
* 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.
|
|
113874
|
+
*/
|
|
112738
113875
|
stale: boolean
|
|
113876
|
+
/**
|
|
113877
|
+
* 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.
|
|
113878
|
+
*/
|
|
112739
113879
|
currency: string
|
|
113880
|
+
/**
|
|
113881
|
+
* Google Ads account these comparison rows belong to, by customer id without dashes.
|
|
113882
|
+
*/
|
|
112740
113883
|
customerId: string
|
|
113884
|
+
/**
|
|
113885
|
+
* When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
|
|
113886
|
+
*/
|
|
112741
113887
|
costLastSyncedAt: (string | null)
|
|
112742
113888
|
}[]
|
|
113889
|
+
/**
|
|
113890
|
+
* ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
|
|
113891
|
+
*/
|
|
113892
|
+
currency: (string | null)
|
|
113893
|
+
/**
|
|
113894
|
+
* When this comparison was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
|
|
113895
|
+
*/
|
|
112743
113896
|
computedAt: string
|
|
113897
|
+
/**
|
|
113898
|
+
* Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
|
|
113899
|
+
*/
|
|
113900
|
+
customerId: (string | null)
|
|
113901
|
+
/**
|
|
113902
|
+
* How far back before a conversion a paid click was allowed to sit and still earn the credit on our side, in days.
|
|
113903
|
+
*/
|
|
112744
113904
|
lookbackDays: number
|
|
113905
|
+
/**
|
|
113906
|
+
* Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
|
|
113907
|
+
*/
|
|
113908
|
+
costLastSyncedAt: (string | null)
|
|
112745
113909
|
}
|
|
112746
113910
|
|
|
112747
113911
|
export interface TrackingIdentityHealthInput {
|
|
@@ -112749,11 +113913,29 @@ export interface TrackingIdentityHealthInput {
|
|
|
112749
113913
|
}
|
|
112750
113914
|
|
|
112751
113915
|
export interface TrackingIdentityHealthOutput {
|
|
113916
|
+
/**
|
|
113917
|
+
* When these numbers were computed, ISO 8601 UTC. They are a live count, so this is effectively the moment of the call.
|
|
113918
|
+
*/
|
|
112752
113919
|
computedAt: string
|
|
113920
|
+
/**
|
|
113921
|
+
* How many people the product holds in total, anonymous ones included. The denominator of both rates below.
|
|
113922
|
+
*/
|
|
112753
113923
|
totalProfiles: number
|
|
113924
|
+
/**
|
|
113925
|
+
* 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.
|
|
113926
|
+
*/
|
|
112754
113927
|
identifiedRate: number
|
|
113928
|
+
/**
|
|
113929
|
+
* 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.
|
|
113930
|
+
*/
|
|
112755
113931
|
adTouchpointRate: number
|
|
113932
|
+
/**
|
|
113933
|
+
* How many of them an email or phone is known for — the people a message can actually be sent to.
|
|
113934
|
+
*/
|
|
112756
113935
|
identifiedProfiles: number
|
|
113936
|
+
/**
|
|
113937
|
+
* 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.
|
|
113938
|
+
*/
|
|
112757
113939
|
adTouchpointProfiles: number
|
|
112758
113940
|
}
|
|
112759
113941
|
|
|
@@ -112765,6 +113947,9 @@ domain: string
|
|
|
112765
113947
|
}
|
|
112766
113948
|
|
|
112767
113949
|
export interface TrackingInstallDomainsCreateOutput {
|
|
113950
|
+
/**
|
|
113951
|
+
* The domain as stored after normalisation, which may differ from what was submitted
|
|
113952
|
+
*/
|
|
112768
113953
|
domain: string
|
|
112769
113954
|
}
|
|
112770
113955
|
|
|
@@ -112776,6 +113961,9 @@ domain: string
|
|
|
112776
113961
|
}
|
|
112777
113962
|
|
|
112778
113963
|
export interface TrackingInstallDomainsDeleteOutput {
|
|
113964
|
+
/**
|
|
113965
|
+
* Always true — the domain was removed; a failure arrives as an error, not as false
|
|
113966
|
+
*/
|
|
112779
113967
|
ok: true
|
|
112780
113968
|
}
|
|
112781
113969
|
|
|
@@ -112784,14 +113972,35 @@ export interface TrackingInstallDomainsListInput {
|
|
|
112784
113972
|
}
|
|
112785
113973
|
|
|
112786
113974
|
export interface TrackingInstallDomainsListOutput {
|
|
113975
|
+
/**
|
|
113976
|
+
* Domains sending events that nobody registered — usually a staging host, a typo, or an install worth adding
|
|
113977
|
+
*/
|
|
112787
113978
|
discovered: TrackingInstallDomainsListOutputItems[]
|
|
113979
|
+
/**
|
|
113980
|
+
* Domains deliberately put on the install checklist, each with whether its script has been seen
|
|
113981
|
+
*/
|
|
112788
113982
|
registered: TrackingInstallDomainsListOutputItems[]
|
|
113983
|
+
/**
|
|
113984
|
+
* Length in days of the lookback window the `seen` and `lastSeen` figures are measured over
|
|
113985
|
+
*/
|
|
112789
113986
|
windowDays: number
|
|
112790
113987
|
}
|
|
112791
113988
|
export interface TrackingInstallDomainsListOutputItems {
|
|
113989
|
+
/**
|
|
113990
|
+
* Whether the tracking script actually sent an event from this domain inside the lookback window
|
|
113991
|
+
*/
|
|
112792
113992
|
seen: boolean
|
|
113993
|
+
/**
|
|
113994
|
+
* Normalised domain name the status is reported for
|
|
113995
|
+
*/
|
|
112793
113996
|
domain: string
|
|
113997
|
+
/**
|
|
113998
|
+
* ISO-8601 timestamp of the most recent event from this domain, or null if none arrived in the window
|
|
113999
|
+
*/
|
|
112794
114000
|
lastSeen: (string | null)
|
|
114001
|
+
/**
|
|
114002
|
+
* Whether the domain is on the install checklist on purpose, as opposed to merely observed sending events
|
|
114003
|
+
*/
|
|
112795
114004
|
registered: boolean
|
|
112796
114005
|
}
|
|
112797
114006
|
|
|
@@ -112803,6 +114012,9 @@ domain: string
|
|
|
112803
114012
|
}
|
|
112804
114013
|
|
|
112805
114014
|
export interface TrackingLinkDomainsCreateOutput {
|
|
114015
|
+
/**
|
|
114016
|
+
* The domain as stored after normalisation, which may differ from what was submitted
|
|
114017
|
+
*/
|
|
112806
114018
|
domain: string
|
|
112807
114019
|
}
|
|
112808
114020
|
|
|
@@ -112814,6 +114026,9 @@ domain: string
|
|
|
112814
114026
|
}
|
|
112815
114027
|
|
|
112816
114028
|
export interface TrackingLinkDomainsDeleteOutput {
|
|
114029
|
+
/**
|
|
114030
|
+
* Always true — the domain left the linking group; a failure arrives as an error, not as false
|
|
114031
|
+
*/
|
|
112817
114032
|
ok: true
|
|
112818
114033
|
}
|
|
112819
114034
|
|
|
@@ -112822,6 +114037,9 @@ export interface TrackingLinkDomainsListInput {
|
|
|
112822
114037
|
}
|
|
112823
114038
|
|
|
112824
114039
|
export interface TrackingLinkDomainsListOutput {
|
|
114040
|
+
/**
|
|
114041
|
+
* Root domains in the linking group; the tracking script decorates links between any two of them so one visitor stays one visitor
|
|
114042
|
+
*/
|
|
112825
114043
|
domains: string[]
|
|
112826
114044
|
}
|
|
112827
114045
|
|
|
@@ -112841,22 +114059,70 @@ domain?: string
|
|
|
112841
114059
|
}
|
|
112842
114060
|
|
|
112843
114061
|
export interface TrackingLiveEventsListOutput {
|
|
114062
|
+
/**
|
|
114063
|
+
* Pass back as `since` to fetch what arrived after this page. Null when there is nothing older to page into.
|
|
114064
|
+
*/
|
|
112844
114065
|
cursor: (string | null)
|
|
114066
|
+
/**
|
|
114067
|
+
* The page of events, newest first.
|
|
114068
|
+
*/
|
|
112845
114069
|
events: {
|
|
114070
|
+
/**
|
|
114071
|
+
* Stable identifier of this single event; unique within the product and safe to deduplicate on across polls.
|
|
114072
|
+
*/
|
|
112846
114073
|
id: string
|
|
114074
|
+
/**
|
|
114075
|
+
* When the event happened, as reported by the tracker (ISO 8601, UTC).
|
|
114076
|
+
*/
|
|
112847
114077
|
ts: string
|
|
114078
|
+
/**
|
|
114079
|
+
* Page address the event fired on, query string included. Free text from the customer site, so it can carry personal data.
|
|
114080
|
+
*/
|
|
112848
114081
|
url: (string | null)
|
|
114082
|
+
/**
|
|
114083
|
+
* Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
|
|
114084
|
+
*/
|
|
112849
114085
|
name: string
|
|
114086
|
+
/**
|
|
114087
|
+
* Document title of that page at the time. Free text from the customer site, so it can carry personal data.
|
|
114088
|
+
*/
|
|
112850
114089
|
title: (string | null)
|
|
114090
|
+
/**
|
|
114091
|
+
* Site the event came from; null when the tracker could not determine one.
|
|
114092
|
+
*/
|
|
112851
114093
|
domain: (string | null)
|
|
114094
|
+
/**
|
|
114095
|
+
* Where this visit came from, as read off the landing URL and referrer. Every field is null when the visit carried nothing.
|
|
114096
|
+
*/
|
|
112852
114097
|
source: {
|
|
114098
|
+
/**
|
|
114099
|
+
* Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
|
|
114100
|
+
*/
|
|
112853
114101
|
referrer: (string | null)
|
|
114102
|
+
/**
|
|
114103
|
+
* utm_medium of the landing URL, e.g. cpc; null when absent.
|
|
114104
|
+
*/
|
|
112854
114105
|
utmMedium: (string | null)
|
|
114106
|
+
/**
|
|
114107
|
+
* utm_source of the landing URL, e.g. newsletter; null when absent.
|
|
114108
|
+
*/
|
|
112855
114109
|
utmSource: (string | null)
|
|
114110
|
+
/**
|
|
114111
|
+
* Which ad-network click id was present on the landing URL, e.g. 'gclid'. Null when the visit carried none.
|
|
114112
|
+
*/
|
|
112856
114113
|
clickIdType: (string | null)
|
|
114114
|
+
/**
|
|
114115
|
+
* utm_campaign of the landing URL; null when absent.
|
|
114116
|
+
*/
|
|
112857
114117
|
utmCampaign: (string | null)
|
|
112858
114118
|
}
|
|
114119
|
+
/**
|
|
114120
|
+
* Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
|
|
114121
|
+
*/
|
|
112859
114122
|
country: (string | null)
|
|
114123
|
+
/**
|
|
114124
|
+
* 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.
|
|
114125
|
+
*/
|
|
112860
114126
|
anonymousId: (string | null)
|
|
112861
114127
|
}[]
|
|
112862
114128
|
}
|
|
@@ -112869,18 +114135,52 @@ profileId: string
|
|
|
112869
114135
|
}
|
|
112870
114136
|
|
|
112871
114137
|
export interface TrackingProfilesDeleteOutput {
|
|
114138
|
+
/**
|
|
114139
|
+
* Always true: the response only exists when the erasure ran. A failure arrives as an error, not as ok=false.
|
|
114140
|
+
*/
|
|
112872
114141
|
ok: true
|
|
114142
|
+
/**
|
|
114143
|
+
* What happened to the archived copy of the events. Postgres is erased synchronously; the archive is not, and this says so out loud.
|
|
114144
|
+
*/
|
|
112873
114145
|
archive: {
|
|
114146
|
+
/**
|
|
114147
|
+
* Plain-language reason the archived copy could not be deleted in the same breath — text meant to be quoted into a compliance record.
|
|
114148
|
+
*/
|
|
112874
114149
|
note: string
|
|
114150
|
+
/**
|
|
114151
|
+
* Always gap_flagged: the archived copy is known to still hold this person and the gap has been recorded rather than silently ignored.
|
|
114152
|
+
*/
|
|
112875
114153
|
status: "gap_flagged"
|
|
112876
114154
|
}
|
|
114155
|
+
/**
|
|
114156
|
+
* How much was actually destroyed, by kind. Worth recording: it is the evidence that the erasure did something.
|
|
114157
|
+
*/
|
|
112877
114158
|
deleted: {
|
|
114159
|
+
/**
|
|
114160
|
+
* Tracked events removed, found through the anonymous ids this person browsed under.
|
|
114161
|
+
*/
|
|
112878
114162
|
events: number
|
|
114163
|
+
/**
|
|
114164
|
+
* Merge records removed — the history of this person having been joined with another.
|
|
114165
|
+
*/
|
|
112879
114166
|
merges: number
|
|
114167
|
+
/**
|
|
114168
|
+
* Profile rows removed: 1 in practice, and 0 only if the row vanished between the lookup and the delete.
|
|
114169
|
+
*/
|
|
112880
114170
|
profile: number
|
|
114171
|
+
/**
|
|
114172
|
+
* Emails, phones, anonymous ids and click ids removed for this person.
|
|
114173
|
+
*/
|
|
112881
114174
|
identifiers: number
|
|
112882
114175
|
}
|
|
114176
|
+
/**
|
|
114177
|
+
* The person who was erased. Nothing else of them remains, so this is all there is left to name them by.
|
|
114178
|
+
*/
|
|
112883
114179
|
profileId: string
|
|
114180
|
+
/**
|
|
114181
|
+
* 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.
|
|
114182
|
+
*/
|
|
114183
|
+
requestId: string
|
|
112884
114184
|
}
|
|
112885
114185
|
|
|
112886
114186
|
export interface TrackingProfilesExportInput {
|
|
@@ -112891,52 +114191,172 @@ profileId: string
|
|
|
112891
114191
|
}
|
|
112892
114192
|
|
|
112893
114193
|
export interface TrackingProfilesExportOutput {
|
|
114194
|
+
/**
|
|
114195
|
+
* The complete history, newest event first, capped at 50000 events — check `truncated` before treating it as complete.
|
|
114196
|
+
*/
|
|
112894
114197
|
journey: {
|
|
114198
|
+
/**
|
|
114199
|
+
* When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
|
|
114200
|
+
*/
|
|
112895
114201
|
ts: string
|
|
114202
|
+
/**
|
|
114203
|
+
* Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
|
|
114204
|
+
*/
|
|
112896
114205
|
ref: string
|
|
114206
|
+
/**
|
|
114207
|
+
* Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
|
|
114208
|
+
*/
|
|
112897
114209
|
url: (string | null)
|
|
114210
|
+
/**
|
|
114211
|
+
* What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
|
|
114212
|
+
*/
|
|
112898
114213
|
name: string
|
|
114214
|
+
/**
|
|
114215
|
+
* Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
|
|
114216
|
+
*/
|
|
112899
114217
|
props: {
|
|
112900
114218
|
[k: string]: unknown
|
|
112901
114219
|
}
|
|
114220
|
+
/**
|
|
114221
|
+
* Title of the page as the browser reported it. Null off-page.
|
|
114222
|
+
*/
|
|
112902
114223
|
title: (string | null)
|
|
114224
|
+
/**
|
|
114225
|
+
* Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
|
|
114226
|
+
*/
|
|
112903
114227
|
domain: (string | null)
|
|
114228
|
+
/**
|
|
114229
|
+
* Campaign tags and ad click carried by this event, as they were on the URL at the time.
|
|
114230
|
+
*/
|
|
112904
114231
|
source: {
|
|
114232
|
+
/**
|
|
114233
|
+
* The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
|
|
114234
|
+
*/
|
|
112905
114235
|
clickId: (string | null)
|
|
114236
|
+
/**
|
|
114237
|
+
* utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
|
|
114238
|
+
*/
|
|
112906
114239
|
utmTerm: (string | null)
|
|
114240
|
+
/**
|
|
114241
|
+
* utm_medium on the URL of this event.
|
|
114242
|
+
*/
|
|
112907
114243
|
utmMedium: (string | null)
|
|
114244
|
+
/**
|
|
114245
|
+
* utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
|
|
114246
|
+
*/
|
|
112908
114247
|
utmSource: (string | null)
|
|
114248
|
+
/**
|
|
114249
|
+
* utm_content on the URL of this event — which creative or link variant was clicked.
|
|
114250
|
+
*/
|
|
112909
114251
|
utmContent: (string | null)
|
|
114252
|
+
/**
|
|
114253
|
+
* Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
|
|
114254
|
+
*/
|
|
112910
114255
|
clickIdType: (string | null)
|
|
114256
|
+
/**
|
|
114257
|
+
* utm_campaign on the URL of this event.
|
|
114258
|
+
*/
|
|
112911
114259
|
utmCampaign: (string | null)
|
|
112912
114260
|
}
|
|
114261
|
+
/**
|
|
114262
|
+
* Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
|
|
114263
|
+
*/
|
|
112913
114264
|
country: (string | null)
|
|
114265
|
+
/**
|
|
114266
|
+
* Where the person came from immediately before this event. Null on a direct arrival or off-page.
|
|
114267
|
+
*/
|
|
112914
114268
|
referrer: (string | null)
|
|
114269
|
+
/**
|
|
114270
|
+
* Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
|
|
114271
|
+
*/
|
|
112915
114272
|
sessionId: (string | null)
|
|
112916
114273
|
}[]
|
|
114274
|
+
/**
|
|
114275
|
+
* The person themselves: their handle, how far they have come, and when they were seen.
|
|
114276
|
+
*/
|
|
112917
114277
|
profile: {
|
|
114278
|
+
/**
|
|
114279
|
+
* 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.
|
|
114280
|
+
*/
|
|
112918
114281
|
status: ("anonymous" | "identified" | "customer")
|
|
114282
|
+
/**
|
|
114283
|
+
* When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
|
|
114284
|
+
*/
|
|
112919
114285
|
createdAt: string
|
|
114286
|
+
/**
|
|
114287
|
+
* Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
|
|
114288
|
+
*/
|
|
112920
114289
|
profileId: string
|
|
114290
|
+
/**
|
|
114291
|
+
* Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
|
|
114292
|
+
*/
|
|
112921
114293
|
lastSeenAt: string
|
|
114294
|
+
/**
|
|
114295
|
+
* Timestamp of the earliest event on record for this person, ISO 8601 UTC.
|
|
114296
|
+
*/
|
|
112922
114297
|
firstSeenAt: string
|
|
112923
114298
|
}
|
|
114299
|
+
/**
|
|
114300
|
+
* 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.
|
|
114301
|
+
*/
|
|
112924
114302
|
signals: {
|
|
114303
|
+
/**
|
|
114304
|
+
* 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.
|
|
114305
|
+
*/
|
|
112925
114306
|
emails: string[]
|
|
114307
|
+
/**
|
|
114308
|
+
* Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
|
|
114309
|
+
*/
|
|
112926
114310
|
phones: string[]
|
|
114311
|
+
/**
|
|
114312
|
+
* Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
|
|
114313
|
+
*/
|
|
112927
114314
|
domains: string[]
|
|
114315
|
+
/**
|
|
114316
|
+
* 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.
|
|
114317
|
+
*/
|
|
112928
114318
|
clickIds: {
|
|
114319
|
+
/**
|
|
114320
|
+
* Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
|
|
114321
|
+
*/
|
|
112929
114322
|
type: string
|
|
114323
|
+
/**
|
|
114324
|
+
* The click identifier itself, raw, as the network stamped it on the landing URL.
|
|
114325
|
+
*/
|
|
112930
114326
|
value: string
|
|
112931
114327
|
}[]
|
|
112932
114328
|
}
|
|
114329
|
+
/**
|
|
114330
|
+
* True when the history hit the 50000-event cap and older events were left out. False means this export is everything held.
|
|
114331
|
+
*/
|
|
112933
114332
|
truncated: boolean
|
|
114333
|
+
/**
|
|
114334
|
+
* When this export was produced, ISO 8601 UTC — the as-of date to put on a subject-access response.
|
|
114335
|
+
*/
|
|
112934
114336
|
exportedAt: string
|
|
114337
|
+
/**
|
|
114338
|
+
* 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.
|
|
114339
|
+
*/
|
|
112935
114340
|
acquisition: ({
|
|
114341
|
+
/**
|
|
114342
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
114343
|
+
*/
|
|
112936
114344
|
utmMedium: (string | null)
|
|
114345
|
+
/**
|
|
114346
|
+
* 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.
|
|
114347
|
+
*/
|
|
112937
114348
|
utmSource: (string | null)
|
|
114349
|
+
/**
|
|
114350
|
+
* 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.
|
|
114351
|
+
*/
|
|
112938
114352
|
clickIdType: (string | null)
|
|
114353
|
+
/**
|
|
114354
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
114355
|
+
*/
|
|
112939
114356
|
firstSeenAt: string
|
|
114357
|
+
/**
|
|
114358
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
114359
|
+
*/
|
|
112940
114360
|
utmCampaign: (string | null)
|
|
112941
114361
|
} | null)
|
|
112942
114362
|
}
|
|
@@ -112951,78 +114371,228 @@ profileId: string
|
|
|
112951
114371
|
*/
|
|
112952
114372
|
journeyLimit?: number
|
|
112953
114373
|
/**
|
|
112954
|
-
*
|
|
114374
|
+
* Continue paging back through the journey: pass the cursor the previous page returned. Omit to start at the most recent event.
|
|
112955
114375
|
*/
|
|
112956
114376
|
journeyCursor?: string
|
|
112957
114377
|
}
|
|
112958
114378
|
|
|
112959
114379
|
export interface TrackingProfilesGetOutput {
|
|
114380
|
+
/**
|
|
114381
|
+
* Lifetime value of this person, per currency. Null when revenue tracking is not in use for the product.
|
|
114382
|
+
*/
|
|
112960
114383
|
ltv: ({
|
|
114384
|
+
/**
|
|
114385
|
+
* 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.
|
|
114386
|
+
*/
|
|
112961
114387
|
entries: {
|
|
114388
|
+
/**
|
|
114389
|
+
* ISO 4217 code the amounts beside it are denominated in, e.g. EUR. One entry per code the person ever paid in.
|
|
114390
|
+
*/
|
|
112962
114391
|
currency: string
|
|
114392
|
+
/**
|
|
114393
|
+
* What the business actually kept: gross minus refunded, in minor units. This is the number to rank customers by.
|
|
114394
|
+
*/
|
|
112963
114395
|
netMinor: number
|
|
114396
|
+
/**
|
|
114397
|
+
* Everything the person was ever charged, in minor units (1250 = 12.50 EUR). Refunds are not subtracted here.
|
|
114398
|
+
*/
|
|
112964
114399
|
grossMinor: number
|
|
114400
|
+
/**
|
|
114401
|
+
* Their most recent payment in this currency, ISO 8601 UTC — how live the relationship is.
|
|
114402
|
+
*/
|
|
112965
114403
|
lastPaymentAt: (string | null)
|
|
114404
|
+
/**
|
|
114405
|
+
* How much of the gross went back to them, in minor units. Zero for a person who never had a refund.
|
|
114406
|
+
*/
|
|
112966
114407
|
refundedMinor: number
|
|
114408
|
+
/**
|
|
114409
|
+
* When this person first paid in this currency, ISO 8601 UTC. Null when the totals were computed without a dated payment.
|
|
114410
|
+
*/
|
|
112967
114411
|
firstPaymentAt: (string | null)
|
|
112968
114412
|
}[]
|
|
114413
|
+
/**
|
|
114414
|
+
* The person these totals belong to — the same handle as profile.profileId.
|
|
114415
|
+
*/
|
|
112969
114416
|
profileId: string
|
|
114417
|
+
/**
|
|
114418
|
+
* When these totals were last recomputed, ISO 8601 UTC. Null when they have never been computed.
|
|
114419
|
+
*/
|
|
112970
114420
|
computedAt: (string | null)
|
|
112971
114421
|
} | null)
|
|
114422
|
+
/**
|
|
114423
|
+
* 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.
|
|
114424
|
+
*/
|
|
112972
114425
|
journey: {
|
|
114426
|
+
/**
|
|
114427
|
+
* Pass back as `journeyCursor` to page further back in time. Null once the journey is exhausted.
|
|
114428
|
+
*/
|
|
112973
114429
|
cursor: (string | null)
|
|
114430
|
+
/**
|
|
114431
|
+
* This page of the journey, newest event first.
|
|
114432
|
+
*/
|
|
112974
114433
|
events: {
|
|
114434
|
+
/**
|
|
114435
|
+
* When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
|
|
114436
|
+
*/
|
|
112975
114437
|
ts: string
|
|
114438
|
+
/**
|
|
114439
|
+
* Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
|
|
114440
|
+
*/
|
|
112976
114441
|
ref: string
|
|
114442
|
+
/**
|
|
114443
|
+
* Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
|
|
114444
|
+
*/
|
|
112977
114445
|
url: (string | null)
|
|
114446
|
+
/**
|
|
114447
|
+
* What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
|
|
114448
|
+
*/
|
|
112978
114449
|
name: string
|
|
114450
|
+
/**
|
|
114451
|
+
* Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
|
|
114452
|
+
*/
|
|
112979
114453
|
props: {
|
|
112980
114454
|
[k: string]: unknown
|
|
112981
114455
|
}
|
|
114456
|
+
/**
|
|
114457
|
+
* Title of the page as the browser reported it. Null off-page.
|
|
114458
|
+
*/
|
|
112982
114459
|
title: (string | null)
|
|
114460
|
+
/**
|
|
114461
|
+
* Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
|
|
114462
|
+
*/
|
|
112983
114463
|
domain: (string | null)
|
|
114464
|
+
/**
|
|
114465
|
+
* Campaign tags and ad click carried by this event, as they were on the URL at the time.
|
|
114466
|
+
*/
|
|
112984
114467
|
source: {
|
|
114468
|
+
/**
|
|
114469
|
+
* The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
|
|
114470
|
+
*/
|
|
112985
114471
|
clickId: (string | null)
|
|
114472
|
+
/**
|
|
114473
|
+
* utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
|
|
114474
|
+
*/
|
|
112986
114475
|
utmTerm: (string | null)
|
|
114476
|
+
/**
|
|
114477
|
+
* utm_medium on the URL of this event.
|
|
114478
|
+
*/
|
|
112987
114479
|
utmMedium: (string | null)
|
|
114480
|
+
/**
|
|
114481
|
+
* utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
|
|
114482
|
+
*/
|
|
112988
114483
|
utmSource: (string | null)
|
|
114484
|
+
/**
|
|
114485
|
+
* utm_content on the URL of this event — which creative or link variant was clicked.
|
|
114486
|
+
*/
|
|
112989
114487
|
utmContent: (string | null)
|
|
114488
|
+
/**
|
|
114489
|
+
* Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
|
|
114490
|
+
*/
|
|
112990
114491
|
clickIdType: (string | null)
|
|
114492
|
+
/**
|
|
114493
|
+
* utm_campaign on the URL of this event.
|
|
114494
|
+
*/
|
|
112991
114495
|
utmCampaign: (string | null)
|
|
112992
114496
|
}
|
|
114497
|
+
/**
|
|
114498
|
+
* Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
|
|
114499
|
+
*/
|
|
112993
114500
|
country: (string | null)
|
|
114501
|
+
/**
|
|
114502
|
+
* Where the person came from immediately before this event. Null on a direct arrival or off-page.
|
|
114503
|
+
*/
|
|
112994
114504
|
referrer: (string | null)
|
|
114505
|
+
/**
|
|
114506
|
+
* Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
|
|
114507
|
+
*/
|
|
112995
114508
|
sessionId: (string | null)
|
|
112996
114509
|
}[]
|
|
112997
114510
|
}
|
|
114511
|
+
/**
|
|
114512
|
+
* The person themselves: their handle, how far they have come, and when they were seen.
|
|
114513
|
+
*/
|
|
112998
114514
|
profile: {
|
|
114515
|
+
/**
|
|
114516
|
+
* 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.
|
|
114517
|
+
*/
|
|
112999
114518
|
status: ("anonymous" | "identified" | "customer")
|
|
114519
|
+
/**
|
|
114520
|
+
* When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
|
|
114521
|
+
*/
|
|
113000
114522
|
createdAt: string
|
|
114523
|
+
/**
|
|
114524
|
+
* Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
|
|
114525
|
+
*/
|
|
113001
114526
|
profileId: string
|
|
114527
|
+
/**
|
|
114528
|
+
* Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
|
|
114529
|
+
*/
|
|
113002
114530
|
lastSeenAt: string
|
|
114531
|
+
/**
|
|
114532
|
+
* Timestamp of the earliest event on record for this person, ISO 8601 UTC.
|
|
114533
|
+
*/
|
|
113003
114534
|
firstSeenAt: string
|
|
113004
114535
|
}
|
|
114536
|
+
/**
|
|
114537
|
+
* 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.
|
|
114538
|
+
*/
|
|
113005
114539
|
signals: {
|
|
114540
|
+
/**
|
|
114541
|
+
* 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.
|
|
114542
|
+
*/
|
|
113006
114543
|
emails: string[]
|
|
114544
|
+
/**
|
|
114545
|
+
* Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
|
|
114546
|
+
*/
|
|
113007
114547
|
phones: string[]
|
|
114548
|
+
/**
|
|
114549
|
+
* Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
|
|
114550
|
+
*/
|
|
113008
114551
|
domains: string[]
|
|
114552
|
+
/**
|
|
114553
|
+
* 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.
|
|
114554
|
+
*/
|
|
113009
114555
|
clickIds: {
|
|
114556
|
+
/**
|
|
114557
|
+
* Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
|
|
114558
|
+
*/
|
|
113010
114559
|
type: string
|
|
114560
|
+
/**
|
|
114561
|
+
* The click identifier itself, raw, as the network stamped it on the landing URL.
|
|
114562
|
+
*/
|
|
113011
114563
|
value: string
|
|
113012
114564
|
}[]
|
|
113013
114565
|
}
|
|
114566
|
+
/**
|
|
114567
|
+
* 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.
|
|
114568
|
+
*/
|
|
113014
114569
|
acquisition: ({
|
|
114570
|
+
/**
|
|
114571
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
114572
|
+
*/
|
|
113015
114573
|
utmMedium: (string | null)
|
|
114574
|
+
/**
|
|
114575
|
+
* 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.
|
|
114576
|
+
*/
|
|
113016
114577
|
utmSource: (string | null)
|
|
114578
|
+
/**
|
|
114579
|
+
* 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.
|
|
114580
|
+
*/
|
|
113017
114581
|
clickIdType: (string | null)
|
|
114582
|
+
/**
|
|
114583
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
114584
|
+
*/
|
|
113018
114585
|
firstSeenAt: string
|
|
114586
|
+
/**
|
|
114587
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
114588
|
+
*/
|
|
113019
114589
|
utmCampaign: (string | null)
|
|
113020
114590
|
} | null)
|
|
113021
114591
|
}
|
|
113022
114592
|
|
|
113023
114593
|
export interface TrackingProfilesListInput {
|
|
113024
114594
|
/**
|
|
113025
|
-
*
|
|
114595
|
+
* Email to search people by — the whole address by default, or its beginning when emailMatch is prefix. Omit to search across everyone.
|
|
113026
114596
|
*/
|
|
113027
114597
|
email?: string
|
|
113028
114598
|
/**
|
|
@@ -113030,132 +114600,363 @@ email?: string
|
|
|
113030
114600
|
*/
|
|
113031
114601
|
limit?: number
|
|
113032
114602
|
/**
|
|
113033
|
-
*
|
|
114603
|
+
* Continue a previous page: pass the cursor that page returned. Omit to start from the most recently seen person.
|
|
113034
114604
|
*/
|
|
113035
114605
|
cursor?: string
|
|
113036
114606
|
/**
|
|
113037
|
-
*
|
|
114607
|
+
* Keep only people at this stage — anonymous, identified or customer. Omit to get all three.
|
|
113038
114608
|
*/
|
|
113039
114609
|
status?: ("anonymous" | "identified" | "customer")
|
|
113040
114610
|
/**
|
|
113041
|
-
* How
|
|
114611
|
+
* 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
114612
|
*/
|
|
113043
114613
|
emailMatch?: ("exact" | "prefix")
|
|
113044
114614
|
}
|
|
113045
114615
|
|
|
113046
114616
|
export interface TrackingProfilesListOutput {
|
|
114617
|
+
/**
|
|
114618
|
+
* Pass this back as `cursor` to fetch the next page. Null on the last page — that null is how a loop knows to stop.
|
|
114619
|
+
*/
|
|
113047
114620
|
cursor: (string | null)
|
|
114621
|
+
/**
|
|
114622
|
+
* The page of people, most recently seen first. Shorter than the requested limit on the last page.
|
|
114623
|
+
*/
|
|
113048
114624
|
profiles: {
|
|
114625
|
+
/**
|
|
114626
|
+
* 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.
|
|
114627
|
+
*/
|
|
113049
114628
|
emails: string[]
|
|
114629
|
+
/**
|
|
114630
|
+
* How far this person has come: anonymous = only a browser, identified = an email or phone is known, customer = they have paid.
|
|
114631
|
+
*/
|
|
113050
114632
|
status: ("anonymous" | "identified" | "customer")
|
|
114633
|
+
/**
|
|
114634
|
+
* Stable handle for this person. Feed it to a get, export or erase step.
|
|
114635
|
+
*/
|
|
113051
114636
|
profileId: string
|
|
114637
|
+
/**
|
|
114638
|
+
* Timestamp of their most recent event, ISO 8601 UTC. The page is ordered by this, newest first.
|
|
114639
|
+
*/
|
|
113052
114640
|
lastSeenAt: string
|
|
114641
|
+
/**
|
|
114642
|
+
* 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.
|
|
114643
|
+
*/
|
|
113053
114644
|
acquisition: ({
|
|
114645
|
+
/**
|
|
114646
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
114647
|
+
*/
|
|
113054
114648
|
utmMedium: (string | null)
|
|
114649
|
+
/**
|
|
114650
|
+
* 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.
|
|
114651
|
+
*/
|
|
113055
114652
|
utmSource: (string | null)
|
|
114653
|
+
/**
|
|
114654
|
+
* 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.
|
|
114655
|
+
*/
|
|
113056
114656
|
clickIdType: (string | null)
|
|
114657
|
+
/**
|
|
114658
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
114659
|
+
*/
|
|
113057
114660
|
firstSeenAt: string
|
|
114661
|
+
/**
|
|
114662
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
114663
|
+
*/
|
|
113058
114664
|
utmCampaign: (string | null)
|
|
113059
114665
|
} | null)
|
|
114666
|
+
/**
|
|
114667
|
+
* Timestamp of their earliest event, ISO 8601 UTC.
|
|
114668
|
+
*/
|
|
113060
114669
|
firstSeenAt: string
|
|
113061
114670
|
}[]
|
|
113062
114671
|
}
|
|
113063
114672
|
|
|
113064
114673
|
export interface TrackingReportsAttributedJourneyInput {
|
|
114674
|
+
/**
|
|
114675
|
+
* Show only journey events at or before this instant (ISO). Omit for the whole history.
|
|
114676
|
+
*/
|
|
113065
114677
|
to?: string
|
|
114678
|
+
/**
|
|
114679
|
+
* Show only journey events at or after this instant (ISO). Omit for the whole history.
|
|
114680
|
+
*/
|
|
113066
114681
|
from?: string
|
|
114682
|
+
/**
|
|
114683
|
+
* Attribution model to explain the decision under; re-reads the same history, so switching it is free (default 'last_click').
|
|
114684
|
+
*/
|
|
113067
114685
|
model?: ("last_click" | "first_click")
|
|
113068
114686
|
/**
|
|
113069
114687
|
* The profile id (uuid)
|
|
113070
114688
|
*/
|
|
113071
114689
|
profileId: string
|
|
114690
|
+
/**
|
|
114691
|
+
* How far back before the conversion a touchpoint may be credited, in days (default 30).
|
|
114692
|
+
*/
|
|
113072
114693
|
lookbackDays?: number
|
|
113073
114694
|
}
|
|
113074
114695
|
|
|
113075
114696
|
export interface TrackingReportsAttributedJourneyOutput {
|
|
114697
|
+
/**
|
|
114698
|
+
* What this person actually did, in order.
|
|
114699
|
+
*/
|
|
113076
114700
|
journey: {
|
|
114701
|
+
/**
|
|
114702
|
+
* Every tracked event for this person inside the requested window, oldest first.
|
|
114703
|
+
*/
|
|
113077
114704
|
events: {
|
|
114705
|
+
/**
|
|
114706
|
+
* When the event happened (ISO 8601, UTC). Events are ordered oldest first.
|
|
114707
|
+
*/
|
|
113078
114708
|
ts: string
|
|
114709
|
+
/**
|
|
114710
|
+
* Handle for this event within the journey; `decisions[].winnerRef` points back at one of these to name the winning touchpoint.
|
|
114711
|
+
*/
|
|
113079
114712
|
ref: string
|
|
114713
|
+
/**
|
|
114714
|
+
* Page address the event fired on. Free text from the customer site, so it can carry personal data.
|
|
114715
|
+
*/
|
|
113080
114716
|
url: (string | null)
|
|
114717
|
+
/**
|
|
114718
|
+
* Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
|
|
114719
|
+
*/
|
|
113081
114720
|
name: string
|
|
114721
|
+
/**
|
|
114722
|
+
* Custom properties the site attached to this event. Shape is the customer's, so it can carry anything, personal data included.
|
|
114723
|
+
*/
|
|
113082
114724
|
props: {
|
|
113083
114725
|
[k: string]: unknown
|
|
113084
114726
|
}
|
|
114727
|
+
/**
|
|
114728
|
+
* Document title of that page. Free text from the customer site, so it can carry personal data.
|
|
114729
|
+
*/
|
|
113085
114730
|
title: (string | null)
|
|
114731
|
+
/**
|
|
114732
|
+
* Site the event came from; null when the tracker could not determine one.
|
|
114733
|
+
*/
|
|
113086
114734
|
domain: (string | null)
|
|
114735
|
+
/**
|
|
114736
|
+
* Where this event's visit came from, as read off the landing URL. Every field is null when the visit carried nothing.
|
|
114737
|
+
*/
|
|
113087
114738
|
source: {
|
|
114739
|
+
/**
|
|
114740
|
+
* The click id value itself. Identifies one ad click by this person, so treat it as personal data.
|
|
114741
|
+
*/
|
|
113088
114742
|
clickId: (string | null)
|
|
114743
|
+
/**
|
|
114744
|
+
* utm_term of the landing URL, the paid keyword; null when absent.
|
|
114745
|
+
*/
|
|
113089
114746
|
utmTerm: (string | null)
|
|
114747
|
+
/**
|
|
114748
|
+
* utm_medium of the landing URL; null when absent.
|
|
114749
|
+
*/
|
|
113090
114750
|
utmMedium: (string | null)
|
|
114751
|
+
/**
|
|
114752
|
+
* utm_source of the landing URL; null when absent.
|
|
114753
|
+
*/
|
|
113091
114754
|
utmSource: (string | null)
|
|
114755
|
+
/**
|
|
114756
|
+
* utm_content of the landing URL, the creative variant; null when absent.
|
|
114757
|
+
*/
|
|
113092
114758
|
utmContent: (string | null)
|
|
114759
|
+
/**
|
|
114760
|
+
* Which ad-network click id was present, e.g. 'gclid'; null when the visit carried none.
|
|
114761
|
+
*/
|
|
113093
114762
|
clickIdType: (string | null)
|
|
114763
|
+
/**
|
|
114764
|
+
* utm_campaign of the landing URL; null when absent.
|
|
114765
|
+
*/
|
|
113094
114766
|
utmCampaign: (string | null)
|
|
113095
114767
|
}
|
|
114768
|
+
/**
|
|
114769
|
+
* Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
|
|
114770
|
+
*/
|
|
113096
114771
|
country: (string | null)
|
|
114772
|
+
/**
|
|
114773
|
+
* Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
|
|
114774
|
+
*/
|
|
113097
114775
|
referrer: (string | null)
|
|
114776
|
+
/**
|
|
114777
|
+
* Visit this event belongs to; events sharing one happened in the same sitting. Null when no session could be established.
|
|
114778
|
+
*/
|
|
113098
114779
|
sessionId: (string | null)
|
|
113099
114780
|
}[]
|
|
113100
114781
|
}
|
|
113101
|
-
|
|
114782
|
+
/**
|
|
114783
|
+
* 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.
|
|
114784
|
+
*/
|
|
114785
|
+
decisions: TrackingReportsAttributedJourneyOutputItems[]
|
|
114786
|
+
/**
|
|
114787
|
+
* The person this journey belongs to, echoed back from the request.
|
|
114788
|
+
*/
|
|
114789
|
+
profileId: string
|
|
114790
|
+
/**
|
|
114791
|
+
* 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.
|
|
114792
|
+
*/
|
|
114793
|
+
originatingDecision: (TrackingReportsAttributedJourneyOutputItems | null)
|
|
114794
|
+
}
|
|
114795
|
+
export interface TrackingReportsAttributedJourneyOutputItems {
|
|
114796
|
+
/**
|
|
114797
|
+
* Attribution model the winner was picked under, echoed back from the request.
|
|
114798
|
+
*/
|
|
113102
114799
|
model: ("last_click" | "first_click")
|
|
114800
|
+
/**
|
|
114801
|
+
* Why this touchpoint won, or why nothing did, in a sentence a person can read.
|
|
114802
|
+
*/
|
|
113103
114803
|
reason: string
|
|
114804
|
+
/**
|
|
114805
|
+
* Revenue of that conversion, one row per currency.
|
|
114806
|
+
*/
|
|
113104
114807
|
revenue: {
|
|
114808
|
+
/**
|
|
114809
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
114810
|
+
*/
|
|
113105
114811
|
currency: string
|
|
114812
|
+
/**
|
|
114813
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
114814
|
+
*/
|
|
113106
114815
|
netMinor: number
|
|
114816
|
+
/**
|
|
114817
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
114818
|
+
*/
|
|
113107
114819
|
grossMinor: number
|
|
114820
|
+
/**
|
|
114821
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
114822
|
+
*/
|
|
113108
114823
|
refundedMinor: number
|
|
113109
114824
|
}[]
|
|
114825
|
+
/**
|
|
114826
|
+
* `journey.events[].ref` of the touchpoint that won the credit. Null when nothing inside the window qualified.
|
|
114827
|
+
*/
|
|
113110
114828
|
winnerRef: (string | null)
|
|
114829
|
+
/**
|
|
114830
|
+
* When the conversion this decision explains happened (ISO 8601, UTC).
|
|
114831
|
+
*/
|
|
113111
114832
|
conversionTs: string
|
|
114833
|
+
/**
|
|
114834
|
+
* How far back before `conversionTs` a touchpoint was allowed to be credited, in days; echoed back.
|
|
114835
|
+
*/
|
|
113112
114836
|
lookbackDays: number
|
|
114837
|
+
/**
|
|
114838
|
+
* The winning touchpoint spelled out, so a reader need not resolve `winnerRef`. Null exactly when `winnerRef` is null.
|
|
114839
|
+
*/
|
|
113113
114840
|
winningTouchpoint: ({
|
|
114841
|
+
/**
|
|
114842
|
+
* When the winning touchpoint happened (ISO 8601, UTC).
|
|
114843
|
+
*/
|
|
113114
114844
|
ts: string
|
|
114845
|
+
/**
|
|
114846
|
+
* Channel the winning touchpoint belongs to.
|
|
114847
|
+
*/
|
|
113115
114848
|
channel: ("paid" | "organic" | "direct" | "email")
|
|
114849
|
+
/**
|
|
114850
|
+
* utm_medium of the winning touchpoint; null when it carried none.
|
|
114851
|
+
*/
|
|
113116
114852
|
utmMedium: (string | null)
|
|
114853
|
+
/**
|
|
114854
|
+
* utm_source of the winning touchpoint; null when it carried none.
|
|
114855
|
+
*/
|
|
113117
114856
|
utmSource: (string | null)
|
|
114857
|
+
/**
|
|
114858
|
+
* Campaign id carried by our own `_lt_campaign` landing-URL parameter; null when the visit carried none.
|
|
114859
|
+
*/
|
|
114860
|
+
ltCampaign?: (string | null)
|
|
114861
|
+
/**
|
|
114862
|
+
* Ad-network click id present on the winning touchpoint, e.g. 'gclid'; null when it carried none.
|
|
114863
|
+
*/
|
|
113118
114864
|
clickIdType: (string | null)
|
|
114865
|
+
/**
|
|
114866
|
+
* utm_campaign of the winning touchpoint; null when it carried none.
|
|
114867
|
+
*/
|
|
113119
114868
|
utmCampaign: (string | null)
|
|
113120
114869
|
} | null)
|
|
113121
|
-
}[]
|
|
113122
|
-
profileId: string
|
|
113123
114870
|
}
|
|
113124
114871
|
|
|
113125
114872
|
export interface TrackingReportsEventVolumeInput {
|
|
113126
|
-
|
|
113127
|
-
|
|
114873
|
+
/**
|
|
114874
|
+
* End of the range to count, inclusive (ISO 8601). Optional — defaults to the moment of the call.
|
|
114875
|
+
*/
|
|
114876
|
+
to?: string
|
|
114877
|
+
/**
|
|
114878
|
+
* Start of the range to count, inclusive (ISO 8601). Optional — defaults to 30 days back, the start of that UTC day.
|
|
114879
|
+
*/
|
|
114880
|
+
from?: string
|
|
114881
|
+
/**
|
|
114882
|
+
* Count only this site. Omit to count every site the product sends from.
|
|
114883
|
+
*/
|
|
113128
114884
|
domain?: string
|
|
113129
114885
|
}
|
|
113130
114886
|
|
|
113131
114887
|
export interface TrackingReportsEventVolumeOutput {
|
|
114888
|
+
/**
|
|
114889
|
+
* End of the range the figures cover, echoed back (ISO 8601, UTC).
|
|
114890
|
+
*/
|
|
113132
114891
|
to: string
|
|
114892
|
+
/**
|
|
114893
|
+
* Start of the range the figures cover, echoed back (ISO 8601, UTC).
|
|
114894
|
+
*/
|
|
113133
114895
|
from: string
|
|
114896
|
+
/**
|
|
114897
|
+
* Site the figures were restricted to; null when every site of the product is included.
|
|
114898
|
+
*/
|
|
113134
114899
|
domain: (string | null)
|
|
114900
|
+
/**
|
|
114901
|
+
* When this report was computed (ISO 8601, UTC).
|
|
114902
|
+
*/
|
|
113135
114903
|
computedAt: string
|
|
114904
|
+
/**
|
|
114905
|
+
* 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.
|
|
114906
|
+
*/
|
|
113136
114907
|
dataQuality: {
|
|
114908
|
+
/**
|
|
114909
|
+
* Fraction of `totalEvents` (0..1) that came from sites running no consent banner, where nobody was ever asked.
|
|
114910
|
+
*/
|
|
113137
114911
|
noBannerShare: number
|
|
114912
|
+
/**
|
|
114913
|
+
* Events from sites with no consent banner. Kept apart from `cookielessEvents` on purpose: nobody refused here, nobody was asked.
|
|
114914
|
+
*/
|
|
113138
114915
|
noBannerEvents: number
|
|
114916
|
+
/**
|
|
114917
|
+
* How many UTC days the range spans; each one re-counts a returning declining visitor.
|
|
114918
|
+
*/
|
|
113139
114919
|
utcDaysInRange: number
|
|
114920
|
+
/**
|
|
114921
|
+
* Fraction of `totalEvents` (0..1) that came from visitors who declined statistics consent.
|
|
114922
|
+
*/
|
|
113140
114923
|
cookielessShare: number
|
|
114924
|
+
/**
|
|
114925
|
+
* Events from visitors who declined; no cookie was written and no identifier sent.
|
|
114926
|
+
*/
|
|
113141
114927
|
cookielessEvents: number
|
|
114928
|
+
/**
|
|
114929
|
+
* 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.
|
|
114930
|
+
*/
|
|
113142
114931
|
identifiedEvents: number
|
|
114932
|
+
/**
|
|
114933
|
+
* True when `visitorsDeduplicatedPerUtcDay` over-counts for this range: the range spans more than one UTC day and there is declining traffic in it.
|
|
114934
|
+
*/
|
|
113143
114935
|
visitorsOverstated: boolean
|
|
114936
|
+
/**
|
|
114937
|
+
* Events from visitors who granted statistics consent.
|
|
114938
|
+
*/
|
|
113144
114939
|
consentGrantedEvents: number
|
|
113145
114940
|
}
|
|
114941
|
+
/**
|
|
114942
|
+
* How many events arrived in the range, across every consent state.
|
|
114943
|
+
*/
|
|
113146
114944
|
totalEvents: number
|
|
114945
|
+
/**
|
|
114946
|
+
* 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.
|
|
114947
|
+
*/
|
|
113147
114948
|
visitorsDeduplicatedPerUtcDay: number
|
|
113148
114949
|
}
|
|
113149
114950
|
|
|
113150
114951
|
export interface TrackingReportsRevenueBySourceInput {
|
|
113151
114952
|
/**
|
|
113152
|
-
* Cohort window end (ISO)
|
|
114953
|
+
* Cohort window end (ISO). Optional — defaults to the moment of the call.
|
|
113153
114954
|
*/
|
|
113154
|
-
to
|
|
114955
|
+
to?: string
|
|
113155
114956
|
/**
|
|
113156
|
-
* Cohort window start (ISO); selects conversions by subscription start
|
|
114957
|
+
* Cohort window start (ISO); selects conversions by subscription start. Optional — defaults to 30 days back, the start of that UTC day.
|
|
113157
114958
|
*/
|
|
113158
|
-
from
|
|
114959
|
+
from?: string
|
|
113159
114960
|
/**
|
|
113160
114961
|
* Attribution model
|
|
113161
114962
|
*/
|
|
@@ -113171,54 +114972,150 @@ lookbackDays?: number
|
|
|
113171
114972
|
}
|
|
113172
114973
|
|
|
113173
114974
|
export interface TrackingReportsRevenueBySourceOutput {
|
|
114975
|
+
/**
|
|
114976
|
+
* End of the cohort window the figures cover, echoed back (ISO 8601, UTC).
|
|
114977
|
+
*/
|
|
113174
114978
|
to: string
|
|
114979
|
+
/**
|
|
114980
|
+
* Start of the cohort window the figures cover, echoed back (ISO 8601, UTC).
|
|
114981
|
+
*/
|
|
113175
114982
|
from: string
|
|
114983
|
+
/**
|
|
114984
|
+
* Attribution model the credit was assigned under, echoed back. Pass the same value to `tracking_reports_source_people` to drill into a row.
|
|
114985
|
+
*/
|
|
113176
114986
|
model: ("last_click" | "first_click")
|
|
114987
|
+
/**
|
|
114988
|
+
* Site touchpoints were restricted to; null when every site of the product was considered.
|
|
114989
|
+
*/
|
|
113177
114990
|
domain: (string | null)
|
|
114991
|
+
/**
|
|
114992
|
+
* Every channel plus `unattributed`. This is the whole window, not the attributed part of it.
|
|
114993
|
+
*/
|
|
113178
114994
|
totals: {
|
|
114995
|
+
/**
|
|
114996
|
+
* Revenue over every channel plus `unattributed`, one row per currency.
|
|
114997
|
+
*/
|
|
113179
114998
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
114999
|
+
/**
|
|
115000
|
+
* Distinct paying people over every channel plus `unattributed`.
|
|
115001
|
+
*/
|
|
113180
115002
|
customers: number
|
|
113181
115003
|
}
|
|
115004
|
+
/**
|
|
115005
|
+
* One row per channel that earned revenue in the window. Channels with none are omitted.
|
|
115006
|
+
*/
|
|
113182
115007
|
channels: {
|
|
115008
|
+
/**
|
|
115009
|
+
* Which acquisition channel this row aggregates.
|
|
115010
|
+
*/
|
|
113183
115011
|
channel: ("paid" | "organic" | "direct" | "email")
|
|
115012
|
+
/**
|
|
115013
|
+
* 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.
|
|
115014
|
+
*/
|
|
113184
115015
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
115016
|
+
/**
|
|
115017
|
+
* Distinct paying people credited to this channel.
|
|
115018
|
+
*/
|
|
113185
115019
|
customers: number
|
|
115020
|
+
/**
|
|
115021
|
+
* The channel split by UTM combination. Each row is a drill-down target for `tracking_reports_source_people`.
|
|
115022
|
+
*/
|
|
113186
115023
|
utmBreakdown: {
|
|
115024
|
+
/**
|
|
115025
|
+
* Revenue credited to this UTM combination, one row per currency.
|
|
115026
|
+
*/
|
|
113187
115027
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
115028
|
+
/**
|
|
115029
|
+
* Distinct paying people credited to this UTM combination.
|
|
115030
|
+
*/
|
|
113188
115031
|
customers: number
|
|
115032
|
+
/**
|
|
115033
|
+
* utm_medium of this row; null when the visit carried none.
|
|
115034
|
+
*/
|
|
113189
115035
|
utmMedium: (string | null)
|
|
115036
|
+
/**
|
|
115037
|
+
* utm_source of this row; null when the visit carried none.
|
|
115038
|
+
*/
|
|
113190
115039
|
utmSource: (string | null)
|
|
115040
|
+
/**
|
|
115041
|
+
* Ad-network click id present on the visit, e.g. 'gclid'; null when it carried none.
|
|
115042
|
+
*/
|
|
113191
115043
|
clickIdType: (string | null)
|
|
115044
|
+
/**
|
|
115045
|
+
* utm_campaign of this row; null when the visit carried none.
|
|
115046
|
+
*/
|
|
113192
115047
|
utmCampaign: (string | null)
|
|
113193
115048
|
}[]
|
|
113194
115049
|
}[]
|
|
115050
|
+
/**
|
|
115051
|
+
* Fraction of paying people (0..1) a touchpoint could be found for: attributed customers over `totals.customers`. Count-based, never revenue-weighted.
|
|
115052
|
+
*/
|
|
113195
115053
|
matchRate: number
|
|
115054
|
+
/**
|
|
115055
|
+
* When this report was computed (ISO 8601, UTC).
|
|
115056
|
+
*/
|
|
113196
115057
|
computedAt: string
|
|
115058
|
+
/**
|
|
115059
|
+
* How far back before a conversion a touchpoint was allowed to be credited, in days; echoed back.
|
|
115060
|
+
*/
|
|
113197
115061
|
lookbackDays: number
|
|
115062
|
+
/**
|
|
115063
|
+
* Revenue that reached no channel — kept as its own row so the channel rows are never quietly inflated to cover it.
|
|
115064
|
+
*/
|
|
113198
115065
|
unattributed: {
|
|
115066
|
+
/**
|
|
115067
|
+
* Revenue no touchpoint could be credited for, one row per currency.
|
|
115068
|
+
*/
|
|
113199
115069
|
revenue: TrackingReportsRevenueBySourceOutputItems[]
|
|
115070
|
+
/**
|
|
115071
|
+
* Distinct paying people no touchpoint could be credited for.
|
|
115072
|
+
*/
|
|
113200
115073
|
customers: number
|
|
113201
115074
|
}
|
|
113202
115075
|
}
|
|
113203
115076
|
export interface TrackingReportsRevenueBySourceOutputItems {
|
|
115077
|
+
/**
|
|
115078
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
115079
|
+
*/
|
|
113204
115080
|
currency: string
|
|
115081
|
+
/**
|
|
115082
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
115083
|
+
*/
|
|
113205
115084
|
netMinor: number
|
|
115085
|
+
/**
|
|
115086
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
115087
|
+
*/
|
|
113206
115088
|
grossMinor: number
|
|
115089
|
+
/**
|
|
115090
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
115091
|
+
*/
|
|
113207
115092
|
refundedMinor: number
|
|
113208
115093
|
}
|
|
113209
115094
|
|
|
113210
115095
|
export interface TrackingReportsSourcePeopleInput {
|
|
113211
|
-
|
|
113212
|
-
from
|
|
115096
|
+
/**
|
|
115097
|
+
* Cohort window end (ISO); must match the report this row came from. Optional — defaults to the moment of the call.
|
|
115098
|
+
*/
|
|
115099
|
+
to?: string
|
|
115100
|
+
/**
|
|
115101
|
+
* Cohort window start (ISO); must match the report this row came from. Optional — defaults to 30 days back, the start of that UTC day.
|
|
115102
|
+
*/
|
|
115103
|
+
from?: string
|
|
113213
115104
|
/**
|
|
113214
115105
|
* People per page (default 50, max 200)
|
|
113215
115106
|
*/
|
|
113216
115107
|
limit?: number
|
|
115108
|
+
/**
|
|
115109
|
+
* Attribution model to credit the touchpoint under; must match the report this row came from (default 'last_click').
|
|
115110
|
+
*/
|
|
113217
115111
|
model?: ("last_click" | "first_click")
|
|
113218
115112
|
/**
|
|
113219
115113
|
* Opaque keyset cursor from a previous page
|
|
113220
115114
|
*/
|
|
113221
115115
|
cursor?: string
|
|
115116
|
+
/**
|
|
115117
|
+
* Only consider touchpoints on this domain; must match the report this row came from. Omit for no restriction.
|
|
115118
|
+
*/
|
|
113222
115119
|
domain?: string
|
|
113223
115120
|
/**
|
|
113224
115121
|
* Channel to drill into
|
|
@@ -113228,27 +115125,72 @@ channel: ("paid" | "organic" | "direct" | "email")
|
|
|
113228
115125
|
* Comma-separated dimension names (utmSource,utmMedium,utmCampaign,clickIdType) that must be IS NULL
|
|
113229
115126
|
*/
|
|
113230
115127
|
utmNulls?: string
|
|
115128
|
+
/**
|
|
115129
|
+
* utm_medium of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
115130
|
+
*/
|
|
113231
115131
|
utmMedium?: string
|
|
115132
|
+
/**
|
|
115133
|
+
* utm_source of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
115134
|
+
*/
|
|
113232
115135
|
utmSource?: string
|
|
113233
115136
|
/**
|
|
113234
115137
|
* 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
115138
|
*/
|
|
113236
115139
|
clickIdType?: string
|
|
115140
|
+
/**
|
|
115141
|
+
* utm_campaign of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
115142
|
+
*/
|
|
113237
115143
|
utmCampaign?: string
|
|
115144
|
+
/**
|
|
115145
|
+
* How far back before a conversion a touchpoint may be credited, in days; must match the report this row came from (default 30).
|
|
115146
|
+
*/
|
|
113238
115147
|
lookbackDays?: number
|
|
113239
115148
|
}
|
|
113240
115149
|
|
|
113241
115150
|
export interface TrackingReportsSourcePeopleOutput {
|
|
115151
|
+
/**
|
|
115152
|
+
* Pass back as `cursor` for the next page. Null on the last page.
|
|
115153
|
+
*/
|
|
113242
115154
|
cursor: (string | null)
|
|
115155
|
+
/**
|
|
115156
|
+
* The page of people behind the requested row, ordered by the keyset the cursor walks.
|
|
115157
|
+
*/
|
|
113243
115158
|
people: {
|
|
115159
|
+
/**
|
|
115160
|
+
* Where this person stands in their subscription lifecycle, e.g. active or churned.
|
|
115161
|
+
*/
|
|
113244
115162
|
status: string
|
|
115163
|
+
/**
|
|
115164
|
+
* Identifier of this person; pass it to `tracking_reports_attributed_journey` to see why they were credited here.
|
|
115165
|
+
*/
|
|
113245
115166
|
profileId: string
|
|
115167
|
+
/**
|
|
115168
|
+
* Most recent tracked activity for this person (ISO 8601, UTC); null when none was recorded.
|
|
115169
|
+
*/
|
|
113246
115170
|
lastSeenAt: (string | null)
|
|
115171
|
+
/**
|
|
115172
|
+
* Earliest tracked activity for this person (ISO 8601, UTC); null when none was recorded.
|
|
115173
|
+
*/
|
|
113247
115174
|
firstSeenAt: (string | null)
|
|
115175
|
+
/**
|
|
115176
|
+
* Lifetime revenue credited to this person under the requested model, one row per currency.
|
|
115177
|
+
*/
|
|
113248
115178
|
attributedRevenue: {
|
|
115179
|
+
/**
|
|
115180
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
115181
|
+
*/
|
|
113249
115182
|
currency: string
|
|
115183
|
+
/**
|
|
115184
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
115185
|
+
*/
|
|
113250
115186
|
netMinor: number
|
|
115187
|
+
/**
|
|
115188
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
115189
|
+
*/
|
|
113251
115190
|
grossMinor: number
|
|
115191
|
+
/**
|
|
115192
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
115193
|
+
*/
|
|
113252
115194
|
refundedMinor: number
|
|
113253
115195
|
}[]
|
|
113254
115196
|
}[]
|
|
@@ -113259,9 +115201,21 @@ export interface TrackingSnippetsGetInput {
|
|
|
113259
115201
|
}
|
|
113260
115202
|
|
|
113261
115203
|
export interface TrackingSnippetsGetOutput {
|
|
115204
|
+
/**
|
|
115205
|
+
* Tracking host the snippet sends to — the customer-facing domain events and the bundle are served from.
|
|
115206
|
+
*/
|
|
113262
115207
|
host: string
|
|
115208
|
+
/**
|
|
115209
|
+
* The tag to paste into every page, verbatim, before </head>. Includes the consent-aware bootstrap; install it unconditionally rather than behind a consent gate.
|
|
115210
|
+
*/
|
|
113263
115211
|
snippet: string
|
|
115212
|
+
/**
|
|
115213
|
+
* Absolute URL of the tracker bundle the snippet loads; already points at this product's own tracking host.
|
|
115214
|
+
*/
|
|
113264
115215
|
scriptUrl: string
|
|
115216
|
+
/**
|
|
115217
|
+
* 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.
|
|
115218
|
+
*/
|
|
113265
115219
|
minimalSnippet: string
|
|
113266
115220
|
}
|
|
113267
115221
|
|
|
@@ -117107,194 +119061,6 @@ description: (string | null)
|
|
|
117107
119061
|
secretPrefix: string
|
|
117108
119062
|
}
|
|
117109
119063
|
|
|
117110
|
-
export interface WaitlistConfigGetInput {
|
|
117111
|
-
|
|
117112
|
-
}
|
|
117113
|
-
|
|
117114
|
-
export type WaitlistConfigGetOutput = ({
|
|
117115
|
-
createdAt: string
|
|
117116
|
-
policyUrl: (string | null)
|
|
117117
|
-
productId: string
|
|
117118
|
-
updatedAt: string
|
|
117119
|
-
senderName: (string | null)
|
|
117120
|
-
consentText: string
|
|
117121
|
-
policyLabel: (string | null)
|
|
117122
|
-
siteBaseUrl: (string | null)
|
|
117123
|
-
senderDomain: (string | null)
|
|
117124
|
-
inviteSubject: (string | null)
|
|
117125
|
-
policyVersion: string
|
|
117126
|
-
inviteTemplate: (string | null)
|
|
117127
|
-
} | null)
|
|
117128
|
-
|
|
117129
|
-
export interface WaitlistConfigUpsertInput {
|
|
117130
|
-
/**
|
|
117131
|
-
* Policy link URL (http/https/mailto). Rendered as a structured link in the form. Null to clear.
|
|
117132
|
-
*/
|
|
117133
|
-
policyUrl?: (string | null)
|
|
117134
|
-
/**
|
|
117135
|
-
* Controller display name shown as the invite From name and in the default email body (A7§64 controller identity). Stored as-is. Null to clear (falls back to a generic sender name).
|
|
117136
|
-
*/
|
|
117137
|
-
senderName?: (string | null)
|
|
117138
|
-
/**
|
|
117139
|
-
* Plain-text consent statement shown at signup. May contain a {policy} placeholder marking the policy link. Stored as-is (no HTML sanitization).
|
|
117140
|
-
*/
|
|
117141
|
-
consentText: string
|
|
117142
|
-
/**
|
|
117143
|
-
* Visible text for the policy link. Falls back to the URL itself if absent.
|
|
117144
|
-
*/
|
|
117145
|
-
policyLabel?: (string | null)
|
|
117146
|
-
/**
|
|
117147
|
-
* Per-product public base URL of the tenant site; invite (/signup) and opt-out (/withdraw) links are built from it. http/https only, path allowed, trailing slash stripped. Stored as-is (DP-013); not content-verified. Null to clear.
|
|
117148
|
-
*/
|
|
117149
|
-
siteBaseUrl?: (string | null)
|
|
117150
|
-
/**
|
|
117151
|
-
* Sender domain for invite emails (bare hostname). Verification happens at send time, not here. Null to clear.
|
|
117152
|
-
*/
|
|
117153
|
-
senderDomain?: (string | null)
|
|
117154
|
-
/**
|
|
117155
|
-
* Invite email subject line. Plain text, stored as-is; CR/LF stripped at send time. Null to clear (falls back to a default subject).
|
|
117156
|
-
*/
|
|
117157
|
-
inviteSubject?: (string | null)
|
|
117158
|
-
/**
|
|
117159
|
-
* Policy version label, controller-owned free string. Stored as-is, not validated for monotonicity.
|
|
117160
|
-
*/
|
|
117161
|
-
policyVersion: string
|
|
117162
|
-
/**
|
|
117163
|
-
* Invite email template ({{vars}}). Stored as-is; rendered/validated at send time. Null to clear.
|
|
117164
|
-
*/
|
|
117165
|
-
inviteTemplate?: (string | null)
|
|
117166
|
-
}
|
|
117167
|
-
|
|
117168
|
-
export interface WaitlistConfigUpsertOutput {
|
|
117169
|
-
createdAt: string
|
|
117170
|
-
policyUrl: (string | null)
|
|
117171
|
-
productId: string
|
|
117172
|
-
updatedAt: string
|
|
117173
|
-
senderName: (string | null)
|
|
117174
|
-
consentText: string
|
|
117175
|
-
policyLabel: (string | null)
|
|
117176
|
-
siteBaseUrl: (string | null)
|
|
117177
|
-
senderDomain: (string | null)
|
|
117178
|
-
inviteSubject: (string | null)
|
|
117179
|
-
policyVersion: string
|
|
117180
|
-
inviteTemplate: (string | null)
|
|
117181
|
-
}
|
|
117182
|
-
|
|
117183
|
-
export interface WaitlistEmbedGetInput {
|
|
117184
|
-
|
|
117185
|
-
}
|
|
117186
|
-
|
|
117187
|
-
export interface WaitlistEmbedGetOutput {
|
|
117188
|
-
product_id: string
|
|
117189
|
-
script_tag: string
|
|
117190
|
-
public_edge_url: string
|
|
117191
|
-
}
|
|
117192
|
-
|
|
117193
|
-
export interface WaitlistInvitesSendInput {
|
|
117194
|
-
/**
|
|
117195
|
-
* Resend even when a live invite token already exists (mints a fresh token).
|
|
117196
|
-
*/
|
|
117197
|
-
force?: boolean
|
|
117198
|
-
/**
|
|
117199
|
-
* Explicit recipient emails (e.g. from waitlist_signups_list). Combined with filter if both given.
|
|
117200
|
-
*/
|
|
117201
|
-
emails?: string[]
|
|
117202
|
-
/**
|
|
117203
|
-
* Selection filter over signups; resolved server-side with pagination.
|
|
117204
|
-
*/
|
|
117205
|
-
filter?: {
|
|
117206
|
-
/**
|
|
117207
|
-
* Prefix match on email (case-insensitive).
|
|
117208
|
-
*/
|
|
117209
|
-
q?: string
|
|
117210
|
-
/**
|
|
117211
|
-
* Select signups by status (single value or array).
|
|
117212
|
-
*/
|
|
117213
|
-
status?: (("pending" | "invited" | "registered") | ("pending" | "invited" | "registered")[])
|
|
117214
|
-
}
|
|
117215
|
-
}
|
|
117216
|
-
|
|
117217
|
-
export interface WaitlistInvitesSendOutput {
|
|
117218
|
-
sent: {
|
|
117219
|
-
email: string
|
|
117220
|
-
emailId: string
|
|
117221
|
-
}[]
|
|
117222
|
-
failed: {
|
|
117223
|
-
email: string
|
|
117224
|
-
reason: ("quota_exceeded" | "reputation_throttled" | "send_failed")
|
|
117225
|
-
}[]
|
|
117226
|
-
skipped: {
|
|
117227
|
-
email: string
|
|
117228
|
-
reason: ("suppressed" | "already_invited" | "already_registered")
|
|
117229
|
-
}[]
|
|
117230
|
-
}
|
|
117231
|
-
|
|
117232
|
-
export interface WaitlistSignupsEraseInput {
|
|
117233
|
-
/**
|
|
117234
|
-
* Email address to erase (GDPR Art.17) within the current product. Normalized (trimmed + lowercased) server-side. The operation is idempotent.
|
|
117235
|
-
*/
|
|
117236
|
-
email: string
|
|
117237
|
-
}
|
|
117238
|
-
|
|
117239
|
-
export interface WaitlistSignupsEraseOutput {
|
|
117240
|
-
suppressed: boolean
|
|
117241
|
-
deletedTokens: number
|
|
117242
|
-
deletedSignups: number
|
|
117243
|
-
reducedConsents: number
|
|
117244
|
-
}
|
|
117245
|
-
|
|
117246
|
-
export interface WaitlistSignupsFunnelInput {
|
|
117247
|
-
/**
|
|
117248
|
-
* Time window. "7d"/"30d"/"90d" = trailing N days ending now; "all" = all time. Default "30d".
|
|
117249
|
-
*/
|
|
117250
|
-
period?: ("7d" | "30d" | "90d" | "all")
|
|
117251
|
-
}
|
|
117252
|
-
|
|
117253
|
-
export interface WaitlistSignupsFunnelOutput {
|
|
117254
|
-
to: string
|
|
117255
|
-
from: (string | null)
|
|
117256
|
-
period: string
|
|
117257
|
-
signup: number
|
|
117258
|
-
invited: number
|
|
117259
|
-
registered: number
|
|
117260
|
-
non_monotonic: boolean
|
|
117261
|
-
}
|
|
117262
|
-
|
|
117263
|
-
export interface WaitlistSignupsListInput {
|
|
117264
|
-
/**
|
|
117265
|
-
* Prefix search on email (case-insensitive). Returns signups whose email starts with this value. Audited as PII access (DP-009).
|
|
117266
|
-
*/
|
|
117267
|
-
q?: string
|
|
117268
|
-
/**
|
|
117269
|
-
* Page size, 1–200. Default 50.
|
|
117270
|
-
*/
|
|
117271
|
-
limit?: number
|
|
117272
|
-
/**
|
|
117273
|
-
* Sort by created_at. newest = most recent first. Default newest.
|
|
117274
|
-
*/
|
|
117275
|
-
order?: ("newest" | "oldest")
|
|
117276
|
-
/**
|
|
117277
|
-
* Keyset cursor from a previous response next_cursor. Omit to start from the beginning.
|
|
117278
|
-
*/
|
|
117279
|
-
cursor?: string
|
|
117280
|
-
/**
|
|
117281
|
-
* Fields to include per row. Default ["status","created_at"]; id is always included. email and ip_hash are PII and audited when requested.
|
|
117282
|
-
*/
|
|
117283
|
-
fields?: ("status" | "created_at" | "source" | "country" | "email" | "ip_hash")[]
|
|
117284
|
-
/**
|
|
117285
|
-
* Filter by status. A single value or an array. Omit to return all statuses.
|
|
117286
|
-
*/
|
|
117287
|
-
status?: (("pending" | "invited" | "registered") | ("pending" | "invited" | "registered")[])
|
|
117288
|
-
}
|
|
117289
|
-
|
|
117290
|
-
export interface WaitlistSignupsListOutput {
|
|
117291
|
-
items: {
|
|
117292
|
-
[k: string]: unknown
|
|
117293
|
-
}[]
|
|
117294
|
-
has_more: boolean
|
|
117295
|
-
next_cursor: (string | null)
|
|
117296
|
-
}
|
|
117297
|
-
|
|
117298
119064
|
export interface WorkflowCapListInput {
|
|
117299
119065
|
|
|
117300
119066
|
}
|