@lessly/sdk-app 79.0.0 → 80.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_types/gen/types.gen.d.ts +1625 -43
- package/dist/index.cjs +9 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -20
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/gen/manifest.gen.ts +9 -20
- package/src/gen/types.gen.ts +1605 -23
|
@@ -118810,87 +118810,267 @@ export interface SupportWebhookUpdateOutput {
|
|
|
118810
118810
|
secretPrefix: string;
|
|
118811
118811
|
}
|
|
118812
118812
|
export interface TrackingDomainsCreateInput {
|
|
118813
|
+
/**
|
|
118814
|
+
* Bare hostname to serve tracking from, which must sit under the chosen domain (e.g. analytics.example.com); a suggestion is used when omitted
|
|
118815
|
+
*/
|
|
118813
118816
|
host?: string;
|
|
118817
|
+
/**
|
|
118818
|
+
* DNS records to request instead of the default CNAME to the tracking edge; leave unset unless the domain needs custom records
|
|
118819
|
+
*/
|
|
118814
118820
|
records?: {
|
|
118821
|
+
/**
|
|
118822
|
+
* Time-to-live in seconds the record should be published with; the platform picks one when omitted
|
|
118823
|
+
*/
|
|
118815
118824
|
ttl?: number;
|
|
118825
|
+
/**
|
|
118826
|
+
* Fully-qualified host the record is published at; defaults to the claimed tracking host
|
|
118827
|
+
*/
|
|
118816
118828
|
name?: string;
|
|
118829
|
+
/**
|
|
118830
|
+
* Value the record points at — the edge hostname for a CNAME, the proof string for a TXT
|
|
118831
|
+
*/
|
|
118817
118832
|
target: string;
|
|
118833
|
+
/**
|
|
118834
|
+
* DNS record type to publish, e.g. CNAME or TXT
|
|
118835
|
+
*/
|
|
118818
118836
|
recordType: string;
|
|
118819
118837
|
}[];
|
|
118838
|
+
/**
|
|
118839
|
+
* Product domain to claim the tracking host under, as listed in `domains[].domainId` by tracking_domains_list
|
|
118840
|
+
*/
|
|
118820
118841
|
domainId: string;
|
|
118821
118842
|
}
|
|
118822
118843
|
export interface TrackingDomainsCreateOutput {
|
|
118844
|
+
/**
|
|
118845
|
+
* The binding as just claimed; it starts `pending` and goes `active` once the DNS is observed live
|
|
118846
|
+
*/
|
|
118823
118847
|
binding: {
|
|
118848
|
+
/**
|
|
118849
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
118850
|
+
*/
|
|
118824
118851
|
host: string;
|
|
118852
|
+
/**
|
|
118853
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
118854
|
+
*/
|
|
118825
118855
|
status: ("pending" | "active" | "failed");
|
|
118856
|
+
/**
|
|
118857
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
118858
|
+
*/
|
|
118826
118859
|
records: unknown[];
|
|
118860
|
+
/**
|
|
118861
|
+
* Product domain this tracking host sits under
|
|
118862
|
+
*/
|
|
118827
118863
|
domainId: string;
|
|
118864
|
+
/**
|
|
118865
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
118866
|
+
*/
|
|
118828
118867
|
bindingId: string;
|
|
118868
|
+
/**
|
|
118869
|
+
* When the binding was claimed
|
|
118870
|
+
*/
|
|
118829
118871
|
createdAt: string;
|
|
118872
|
+
/**
|
|
118873
|
+
* Product the binding belongs to
|
|
118874
|
+
*/
|
|
118830
118875
|
productId: string;
|
|
118876
|
+
/**
|
|
118877
|
+
* When the binding last changed status or records
|
|
118878
|
+
*/
|
|
118831
118879
|
updatedAt: string;
|
|
118880
|
+
/**
|
|
118881
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
118882
|
+
*/
|
|
118832
118883
|
statusDetail: (string | null);
|
|
118884
|
+
/**
|
|
118885
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
118886
|
+
*/
|
|
118833
118887
|
ownerExtension: string;
|
|
118834
118888
|
};
|
|
118889
|
+
/**
|
|
118890
|
+
* Ordered, human-readable steps for publishing the DNS the claim needs; empty when the platform manages the domain itself
|
|
118891
|
+
*/
|
|
118835
118892
|
instructions: string[];
|
|
118836
118893
|
}
|
|
118837
118894
|
export interface TrackingDomainsDeleteInput {
|
|
118895
|
+
/**
|
|
118896
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
118897
|
+
*/
|
|
118838
118898
|
bindingId: string;
|
|
118839
118899
|
}
|
|
118840
118900
|
export interface TrackingDomainsDeleteOutput {
|
|
118901
|
+
/**
|
|
118902
|
+
* Always true — the release succeeded; a failure arrives as an error, not as false
|
|
118903
|
+
*/
|
|
118841
118904
|
ok: true;
|
|
118842
118905
|
}
|
|
118843
118906
|
export interface TrackingDomainsGetInput {
|
|
118907
|
+
/**
|
|
118908
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
118909
|
+
*/
|
|
118844
118910
|
bindingId: string;
|
|
118845
118911
|
}
|
|
118846
118912
|
export interface TrackingDomainsGetOutput {
|
|
118913
|
+
/**
|
|
118914
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
118915
|
+
*/
|
|
118847
118916
|
host: string;
|
|
118917
|
+
/**
|
|
118918
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
118919
|
+
*/
|
|
118848
118920
|
status: ("pending" | "active" | "failed");
|
|
118921
|
+
/**
|
|
118922
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
118923
|
+
*/
|
|
118849
118924
|
records: unknown[];
|
|
118925
|
+
/**
|
|
118926
|
+
* Product domain this tracking host sits under
|
|
118927
|
+
*/
|
|
118850
118928
|
domainId: string;
|
|
118929
|
+
/**
|
|
118930
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
118931
|
+
*/
|
|
118851
118932
|
bindingId: string;
|
|
118933
|
+
/**
|
|
118934
|
+
* When the binding was claimed
|
|
118935
|
+
*/
|
|
118852
118936
|
createdAt: string;
|
|
118937
|
+
/**
|
|
118938
|
+
* Product the binding belongs to
|
|
118939
|
+
*/
|
|
118853
118940
|
productId: string;
|
|
118941
|
+
/**
|
|
118942
|
+
* When the binding last changed status or records
|
|
118943
|
+
*/
|
|
118854
118944
|
updatedAt: string;
|
|
118945
|
+
/**
|
|
118946
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
118947
|
+
*/
|
|
118855
118948
|
statusDetail: (string | null);
|
|
118949
|
+
/**
|
|
118950
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
118951
|
+
*/
|
|
118856
118952
|
ownerExtension: string;
|
|
118857
118953
|
}
|
|
118858
118954
|
export interface TrackingDomainsListInput {
|
|
118859
118955
|
}
|
|
118860
118956
|
export interface TrackingDomainsListOutput {
|
|
118957
|
+
/**
|
|
118958
|
+
* The product's domains as the platform vouches for them — the set a new tracking host may be claimed under
|
|
118959
|
+
*/
|
|
118861
118960
|
domains: {
|
|
118961
|
+
/**
|
|
118962
|
+
* Who runs the DNS: `managed` means the platform publishes records for you, `external` means you publish them yourself
|
|
118963
|
+
*/
|
|
118862
118964
|
mode: ("external" | "managed");
|
|
118965
|
+
/**
|
|
118966
|
+
* Apex domain name the product owns, e.g. example.com
|
|
118967
|
+
*/
|
|
118863
118968
|
domain: string;
|
|
118969
|
+
/**
|
|
118970
|
+
* Stable platform id of the product domain, and what a claim takes as its `domainId`
|
|
118971
|
+
*/
|
|
118864
118972
|
domainId: string;
|
|
118973
|
+
/**
|
|
118974
|
+
* ISO-8601 timestamp of when the domain was added to the product
|
|
118975
|
+
*/
|
|
118865
118976
|
createdAt: string;
|
|
118977
|
+
/**
|
|
118978
|
+
* How many extensions currently hold a host binding under this domain
|
|
118979
|
+
*/
|
|
118866
118980
|
extensionCount: number;
|
|
118867
118981
|
}[];
|
|
118982
|
+
/**
|
|
118983
|
+
* Tracking-host bindings this toolkit currently holds across those domains
|
|
118984
|
+
*/
|
|
118868
118985
|
bindings: {
|
|
118986
|
+
/**
|
|
118987
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
118988
|
+
*/
|
|
118869
118989
|
host: string;
|
|
118990
|
+
/**
|
|
118991
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
118992
|
+
*/
|
|
118870
118993
|
status: ("pending" | "active" | "failed");
|
|
118994
|
+
/**
|
|
118995
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
118996
|
+
*/
|
|
118871
118997
|
records: unknown[];
|
|
118998
|
+
/**
|
|
118999
|
+
* Product domain this tracking host sits under
|
|
119000
|
+
*/
|
|
118872
119001
|
domainId: string;
|
|
119002
|
+
/**
|
|
119003
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
119004
|
+
*/
|
|
118873
119005
|
bindingId: string;
|
|
119006
|
+
/**
|
|
119007
|
+
* When the binding was claimed
|
|
119008
|
+
*/
|
|
118874
119009
|
createdAt: string;
|
|
119010
|
+
/**
|
|
119011
|
+
* Product the binding belongs to
|
|
119012
|
+
*/
|
|
118875
119013
|
productId: string;
|
|
119014
|
+
/**
|
|
119015
|
+
* When the binding last changed status or records
|
|
119016
|
+
*/
|
|
118876
119017
|
updatedAt: string;
|
|
119018
|
+
/**
|
|
119019
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
119020
|
+
*/
|
|
118877
119021
|
statusDetail: (string | null);
|
|
119022
|
+
/**
|
|
119023
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
119024
|
+
*/
|
|
118878
119025
|
ownerExtension: string;
|
|
118879
119026
|
}[];
|
|
118880
119027
|
}
|
|
118881
119028
|
export interface TrackingDomainsVerifyInput {
|
|
119029
|
+
/**
|
|
119030
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
119031
|
+
*/
|
|
118882
119032
|
bindingId: string;
|
|
118883
119033
|
}
|
|
118884
119034
|
export interface TrackingDomainsVerifyOutput {
|
|
119035
|
+
/**
|
|
119036
|
+
* Fully-qualified tracking host this binding serves, e.g. analytics.example.com
|
|
119037
|
+
*/
|
|
118885
119038
|
host: string;
|
|
119039
|
+
/**
|
|
119040
|
+
* Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
|
|
119041
|
+
*/
|
|
118886
119042
|
status: ("pending" | "active" | "failed");
|
|
119043
|
+
/**
|
|
119044
|
+
* DNS records the platform expects to see published for this host, as returned when the binding was claimed
|
|
119045
|
+
*/
|
|
118887
119046
|
records: unknown[];
|
|
119047
|
+
/**
|
|
119048
|
+
* Product domain this tracking host sits under
|
|
119049
|
+
*/
|
|
118888
119050
|
domainId: string;
|
|
119051
|
+
/**
|
|
119052
|
+
* Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
|
|
119053
|
+
*/
|
|
118889
119054
|
bindingId: string;
|
|
119055
|
+
/**
|
|
119056
|
+
* When the binding was claimed
|
|
119057
|
+
*/
|
|
118890
119058
|
createdAt: string;
|
|
119059
|
+
/**
|
|
119060
|
+
* Product the binding belongs to
|
|
119061
|
+
*/
|
|
118891
119062
|
productId: string;
|
|
119063
|
+
/**
|
|
119064
|
+
* When the binding last changed status or records
|
|
119065
|
+
*/
|
|
118892
119066
|
updatedAt: string;
|
|
119067
|
+
/**
|
|
119068
|
+
* Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
|
|
119069
|
+
*/
|
|
118893
119070
|
statusDetail: (string | null);
|
|
119071
|
+
/**
|
|
119072
|
+
* Extension that claimed the binding; tracking bindings are owned by this toolkit
|
|
119073
|
+
*/
|
|
118894
119074
|
ownerExtension: string;
|
|
118895
119075
|
}
|
|
118896
119076
|
export interface TrackingEventNamesArchiveInput {
|
|
@@ -118900,7 +119080,13 @@ export interface TrackingEventNamesArchiveInput {
|
|
|
118900
119080
|
name: string;
|
|
118901
119081
|
}
|
|
118902
119082
|
export interface TrackingEventNamesArchiveOutput {
|
|
119083
|
+
/**
|
|
119084
|
+
* Event name whose status was changed
|
|
119085
|
+
*/
|
|
118903
119086
|
name: string;
|
|
119087
|
+
/**
|
|
119088
|
+
* The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
|
|
119089
|
+
*/
|
|
118904
119090
|
status: ("active" | "archived");
|
|
118905
119091
|
}
|
|
118906
119092
|
export interface TrackingEventNamesListInput {
|
|
@@ -118922,13 +119108,37 @@ export interface TrackingEventNamesListInput {
|
|
|
118922
119108
|
status?: ("active" | "archived");
|
|
118923
119109
|
}
|
|
118924
119110
|
export interface TrackingEventNamesListOutput {
|
|
119111
|
+
/**
|
|
119112
|
+
* The matching catalogue entries, ordered by the requested sort
|
|
119113
|
+
*/
|
|
118925
119114
|
names: {
|
|
119115
|
+
/**
|
|
119116
|
+
* Event name exactly as the tracking script sends it — the string other tools take as their `event`
|
|
119117
|
+
*/
|
|
118926
119118
|
name: string;
|
|
119119
|
+
/**
|
|
119120
|
+
* How many events with this name have been received in total
|
|
119121
|
+
*/
|
|
118927
119122
|
count: number;
|
|
119123
|
+
/**
|
|
119124
|
+
* `active` for a name in use, `archived` for one hidden from pickers and reports
|
|
119125
|
+
*/
|
|
118928
119126
|
status: string;
|
|
119127
|
+
/**
|
|
119128
|
+
* ISO-8601 timestamp of the most recent event received under this name
|
|
119129
|
+
*/
|
|
118929
119130
|
lastSeen: string;
|
|
119131
|
+
/**
|
|
119132
|
+
* ISO-8601 timestamp of the first event ever received under this name
|
|
119133
|
+
*/
|
|
118930
119134
|
firstSeen: string;
|
|
119135
|
+
/**
|
|
119136
|
+
* Property keys sampled from recent events with this name, so you can see what the payload carries
|
|
119137
|
+
*/
|
|
118931
119138
|
propsKeys: string[];
|
|
119139
|
+
/**
|
|
119140
|
+
* Whether this name is marked a conversion, which is what makes it available as a workflow trigger
|
|
119141
|
+
*/
|
|
118932
119142
|
isConversion: boolean;
|
|
118933
119143
|
}[];
|
|
118934
119144
|
}
|
|
@@ -118943,7 +119153,13 @@ export interface TrackingEventNamesSetConversionInput {
|
|
|
118943
119153
|
isConversion: boolean;
|
|
118944
119154
|
}
|
|
118945
119155
|
export interface TrackingEventNamesSetConversionOutput {
|
|
119156
|
+
/**
|
|
119157
|
+
* Event name the conversion flag was applied to
|
|
119158
|
+
*/
|
|
118946
119159
|
name: string;
|
|
119160
|
+
/**
|
|
119161
|
+
* The flag as it now stands after the change
|
|
119162
|
+
*/
|
|
118947
119163
|
isConversion: boolean;
|
|
118948
119164
|
}
|
|
118949
119165
|
export interface TrackingEventNamesUnarchiveInput {
|
|
@@ -118953,20 +119169,44 @@ export interface TrackingEventNamesUnarchiveInput {
|
|
|
118953
119169
|
name: string;
|
|
118954
119170
|
}
|
|
118955
119171
|
export interface TrackingEventNamesUnarchiveOutput {
|
|
119172
|
+
/**
|
|
119173
|
+
* Event name whose status was changed
|
|
119174
|
+
*/
|
|
118956
119175
|
name: string;
|
|
119176
|
+
/**
|
|
119177
|
+
* The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
|
|
119178
|
+
*/
|
|
118957
119179
|
status: ("active" | "archived");
|
|
118958
119180
|
}
|
|
118959
119181
|
export interface TrackingGoogleadsConnectionStatusInput {
|
|
118960
119182
|
}
|
|
118961
119183
|
export type TrackingGoogleadsConnectionStatusOutput = ({
|
|
119184
|
+
/**
|
|
119185
|
+
* Where the Google Ads connection stands: connected means an account is chosen and its credential works, so the other tools will run.
|
|
119186
|
+
*/
|
|
118962
119187
|
state: "connected";
|
|
119188
|
+
/**
|
|
119189
|
+
* The Google Ads account the data is read from and conversions are written to, as a customer id. Only present while connected.
|
|
119190
|
+
*/
|
|
118963
119191
|
customerId: string;
|
|
119192
|
+
/**
|
|
119193
|
+
* 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.
|
|
119194
|
+
*/
|
|
118964
119195
|
loginCustomerId: string;
|
|
118965
119196
|
} | {
|
|
119197
|
+
/**
|
|
119198
|
+
* Google is authorised but nobody has picked which Google Ads account to use yet, so nothing can run until someone does.
|
|
119199
|
+
*/
|
|
118966
119200
|
state: "pending_account_selection";
|
|
118967
119201
|
} | {
|
|
119202
|
+
/**
|
|
119203
|
+
* The Google authorisation expired or was revoked and has to be granted again before anything can run.
|
|
119204
|
+
*/
|
|
118968
119205
|
state: "reauth_required";
|
|
118969
119206
|
} | {
|
|
119207
|
+
/**
|
|
119208
|
+
* No Google Ads connection has been set up for this product at all.
|
|
119209
|
+
*/
|
|
118970
119210
|
state: "not_connected";
|
|
118971
119211
|
});
|
|
118972
119212
|
export interface TrackingGoogleadsConversionActionsInput {
|
|
@@ -118981,26 +119221,77 @@ export type TrackingGoogleadsConversionActionsOutput = {
|
|
|
118981
119221
|
export interface TrackingGoogleadsFeedbackConfigGetInput {
|
|
118982
119222
|
}
|
|
118983
119223
|
export interface TrackingGoogleadsFeedbackConfigGetOutput {
|
|
119224
|
+
/**
|
|
119225
|
+
* 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.
|
|
119226
|
+
*/
|
|
118984
119227
|
mode: ("existing_pixel" | "fresh_pixel");
|
|
119228
|
+
/**
|
|
119229
|
+
* Which tracked events become which Google Ads conversion action, and where each one takes its money value from. Disabled rules stay listed.
|
|
119230
|
+
*/
|
|
118985
119231
|
rules: {
|
|
119232
|
+
/**
|
|
119233
|
+
* Tracked event-name this rule uploads, as listed by tracking_event-names_list
|
|
119234
|
+
*/
|
|
118986
119235
|
event: string;
|
|
119236
|
+
/**
|
|
119237
|
+
* What monetary value is reported to Google for each conversion this rule uploads
|
|
119238
|
+
*/
|
|
118987
119239
|
value: ({
|
|
119240
|
+
/**
|
|
119241
|
+
* 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
|
|
119242
|
+
*/
|
|
118988
119243
|
source: "revenue";
|
|
118989
119244
|
} | {
|
|
119245
|
+
/**
|
|
119246
|
+
* 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
|
|
119247
|
+
*/
|
|
118990
119248
|
source: "dynamic";
|
|
118991
119249
|
} | {
|
|
119250
|
+
/**
|
|
119251
|
+
* 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
|
|
119252
|
+
*/
|
|
118992
119253
|
source: "fixed";
|
|
119254
|
+
/**
|
|
119255
|
+
* ISO-4217 currency the fixed amount is denominated in, e.g. USD
|
|
119256
|
+
*/
|
|
118993
119257
|
currency: string;
|
|
119258
|
+
/**
|
|
119259
|
+
* The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
|
|
119260
|
+
*/
|
|
118994
119261
|
amountMinor: number;
|
|
118995
119262
|
});
|
|
119263
|
+
/**
|
|
119264
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
119265
|
+
*/
|
|
118996
119266
|
enabled: boolean;
|
|
119267
|
+
/**
|
|
119268
|
+
* Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
|
|
119269
|
+
*/
|
|
118997
119270
|
conversionAction: string;
|
|
118998
119271
|
}[];
|
|
119272
|
+
/**
|
|
119273
|
+
* Whether conversions are being sent to Google Ads at all. False leaves every rule below in place but uploads nothing.
|
|
119274
|
+
*/
|
|
118999
119275
|
enabled: boolean;
|
|
119276
|
+
/**
|
|
119277
|
+
* The tenant this configuration belongs to. Never supplied by a caller — it comes from the authenticated identity.
|
|
119278
|
+
*/
|
|
119000
119279
|
productId: string;
|
|
119280
|
+
/**
|
|
119281
|
+
* 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.
|
|
119282
|
+
*/
|
|
119001
119283
|
lookbackDays: number;
|
|
119284
|
+
/**
|
|
119285
|
+
* 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.
|
|
119286
|
+
*/
|
|
119002
119287
|
accountCurrency: (string | null);
|
|
119288
|
+
/**
|
|
119289
|
+
* The event names that may use the Dynamic value source, because revenue is known for them. Any other event needs a fixed amount.
|
|
119290
|
+
*/
|
|
119003
119291
|
dynamicValueEvents: string[];
|
|
119292
|
+
/**
|
|
119293
|
+
* Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
|
|
119294
|
+
*/
|
|
119004
119295
|
enhancedConversions: boolean;
|
|
119005
119296
|
}
|
|
119006
119297
|
export interface TrackingGoogleadsFeedbackConfigSetInput {
|
|
@@ -119016,11 +119307,23 @@ export interface TrackingGoogleadsFeedbackConfigSetInput {
|
|
|
119016
119307
|
* Any tracked event-name for this product (validated against the event-name catalog)
|
|
119017
119308
|
*/
|
|
119018
119309
|
event: string;
|
|
119310
|
+
/**
|
|
119311
|
+
* What monetary value to report to Google for each conversion this rule uploads
|
|
119312
|
+
*/
|
|
119019
119313
|
value: ({
|
|
119314
|
+
/**
|
|
119315
|
+
* 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
|
|
119316
|
+
*/
|
|
119020
119317
|
source: "revenue";
|
|
119021
119318
|
} | {
|
|
119319
|
+
/**
|
|
119320
|
+
* 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
|
|
119321
|
+
*/
|
|
119022
119322
|
source: "dynamic";
|
|
119023
119323
|
} | {
|
|
119324
|
+
/**
|
|
119325
|
+
* 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
|
|
119326
|
+
*/
|
|
119024
119327
|
source: "fixed";
|
|
119025
119328
|
/**
|
|
119026
119329
|
* ISO-4217 currency code, e.g. USD
|
|
@@ -119031,6 +119334,9 @@ export interface TrackingGoogleadsFeedbackConfigSetInput {
|
|
|
119031
119334
|
*/
|
|
119032
119335
|
amountMinor?: number;
|
|
119033
119336
|
});
|
|
119337
|
+
/**
|
|
119338
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
119339
|
+
*/
|
|
119034
119340
|
enabled: boolean;
|
|
119035
119341
|
/**
|
|
119036
119342
|
* Google conversion action resource: customers/<cid>/conversionActions/<id>
|
|
@@ -119051,65 +119357,209 @@ export interface TrackingGoogleadsFeedbackConfigSetInput {
|
|
|
119051
119357
|
enhancedConversions?: boolean;
|
|
119052
119358
|
}
|
|
119053
119359
|
export interface TrackingGoogleadsFeedbackConfigSetOutput {
|
|
119360
|
+
/**
|
|
119361
|
+
* The config as it now stands after the write, with server-side normalisation applied
|
|
119362
|
+
*/
|
|
119054
119363
|
config: {
|
|
119364
|
+
/**
|
|
119365
|
+
* How our uploads sit beside your own tag: `existing_pixel` only fills gaps it left, `fresh_pixel` reports our data alone
|
|
119366
|
+
*/
|
|
119055
119367
|
mode: ("existing_pixel" | "fresh_pixel");
|
|
119368
|
+
/**
|
|
119369
|
+
* The event-to-conversion-action mappings, each with its own value source
|
|
119370
|
+
*/
|
|
119056
119371
|
rules: {
|
|
119372
|
+
/**
|
|
119373
|
+
* Tracked event-name this rule uploads, as listed by tracking_event-names_list
|
|
119374
|
+
*/
|
|
119057
119375
|
event: string;
|
|
119376
|
+
/**
|
|
119377
|
+
* What monetary value is reported to Google for each conversion this rule uploads
|
|
119378
|
+
*/
|
|
119058
119379
|
value: ({
|
|
119380
|
+
/**
|
|
119381
|
+
* 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
|
|
119382
|
+
*/
|
|
119059
119383
|
source: "revenue";
|
|
119060
119384
|
} | {
|
|
119385
|
+
/**
|
|
119386
|
+
* 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
|
|
119387
|
+
*/
|
|
119061
119388
|
source: "dynamic";
|
|
119062
119389
|
} | {
|
|
119390
|
+
/**
|
|
119391
|
+
* 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
|
|
119392
|
+
*/
|
|
119063
119393
|
source: "fixed";
|
|
119394
|
+
/**
|
|
119395
|
+
* ISO-4217 currency the fixed amount is denominated in, e.g. USD
|
|
119396
|
+
*/
|
|
119064
119397
|
currency: string;
|
|
119398
|
+
/**
|
|
119399
|
+
* The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
|
|
119400
|
+
*/
|
|
119065
119401
|
amountMinor: number;
|
|
119066
119402
|
});
|
|
119403
|
+
/**
|
|
119404
|
+
* Whether this single mapping is live; a disabled rule is kept but uploads nothing
|
|
119405
|
+
*/
|
|
119067
119406
|
enabled: boolean;
|
|
119407
|
+
/**
|
|
119408
|
+
* Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
|
|
119409
|
+
*/
|
|
119068
119410
|
conversionAction: string;
|
|
119069
119411
|
}[];
|
|
119412
|
+
/**
|
|
119413
|
+
* Master switch: with it off no rule uploads anything, however the individual rules are set
|
|
119414
|
+
*/
|
|
119070
119415
|
enabled: boolean;
|
|
119416
|
+
/**
|
|
119417
|
+
* Product this conversion-feedback config belongs to
|
|
119418
|
+
*/
|
|
119071
119419
|
productId: string;
|
|
119420
|
+
/**
|
|
119421
|
+
* How many days back a click may have happened and still be matched to a conversion (max 90)
|
|
119422
|
+
*/
|
|
119072
119423
|
lookbackDays: number;
|
|
119424
|
+
/**
|
|
119425
|
+
* The connected Google Ads account's currency, best-effort; null or absent when it could not be read
|
|
119426
|
+
*/
|
|
119073
119427
|
accountCurrency?: (string | null);
|
|
119428
|
+
/**
|
|
119429
|
+
* Whether hashed email and phone are sent alongside gclid as additional match keys, which raises match rates
|
|
119430
|
+
*/
|
|
119074
119431
|
enhancedConversions: boolean;
|
|
119075
119432
|
};
|
|
119433
|
+
/**
|
|
119434
|
+
* Plain-language safety notes about what this combination of mode and match keys will do to the connected account
|
|
119435
|
+
*/
|
|
119076
119436
|
guidance: string[];
|
|
119077
119437
|
}
|
|
119078
119438
|
export interface TrackingGoogleadsFeedbackRunInput {
|
|
119079
119439
|
}
|
|
119080
119440
|
export interface TrackingGoogleadsFeedbackRunOutput {
|
|
119441
|
+
/**
|
|
119442
|
+
* 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.
|
|
119443
|
+
*/
|
|
119444
|
+
runId: string;
|
|
119445
|
+
/**
|
|
119446
|
+
* Rows Google rejected in this pass.
|
|
119447
|
+
*/
|
|
119081
119448
|
failed: number;
|
|
119449
|
+
/**
|
|
119450
|
+
* Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
|
|
119451
|
+
*/
|
|
119082
119452
|
matched: number;
|
|
119453
|
+
/**
|
|
119454
|
+
* Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
|
|
119455
|
+
*/
|
|
119083
119456
|
noGclid: number;
|
|
119457
|
+
/**
|
|
119458
|
+
* 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.
|
|
119459
|
+
*/
|
|
119084
119460
|
skipped?: ("disabled" | "no_rules" | "not_connected");
|
|
119461
|
+
/**
|
|
119462
|
+
* Conversions in the lookback window that an enabled rule applied to.
|
|
119463
|
+
*/
|
|
119085
119464
|
selected: number;
|
|
119465
|
+
/**
|
|
119466
|
+
* Rows Google accepted in this pass.
|
|
119467
|
+
*/
|
|
119086
119468
|
uploaded: number;
|
|
119087
|
-
|
|
119469
|
+
/**
|
|
119470
|
+
* The tenant whose conversions this pass uploaded.
|
|
119471
|
+
*/
|
|
119472
|
+
productId: string;
|
|
119473
|
+
/**
|
|
119474
|
+
* Conversions held back because their money value had not landed yet. They are retried on a later pass.
|
|
119475
|
+
*/
|
|
119088
119476
|
zeroValue: number;
|
|
119089
|
-
|
|
119477
|
+
/**
|
|
119478
|
+
* Google's own rejection detail, passed through unchanged, when it refused part of the batch. Absent when it accepted everything.
|
|
119479
|
+
*/
|
|
119480
|
+
partialFailureError?: {
|
|
119481
|
+
[k: string]: unknown;
|
|
119482
|
+
};
|
|
119090
119483
|
}
|
|
119091
119484
|
export interface TrackingGoogleadsFeedbackStatusInput {
|
|
119092
119485
|
}
|
|
119093
119486
|
export interface TrackingGoogleadsFeedbackStatusOutput {
|
|
119487
|
+
/**
|
|
119488
|
+
* 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.
|
|
119489
|
+
*/
|
|
119094
119490
|
mode: ("existing_pixel" | "fresh_pixel");
|
|
119491
|
+
/**
|
|
119492
|
+
* Rows Google has rejected since this product was connected, across every pass.
|
|
119493
|
+
*/
|
|
119095
119494
|
failed: number;
|
|
119495
|
+
/**
|
|
119496
|
+
* Whether conversions are being sent to Google Ads at all.
|
|
119497
|
+
*/
|
|
119096
119498
|
enabled: boolean;
|
|
119499
|
+
/**
|
|
119500
|
+
* Coverage of the most recent pass. Null when no pass has run for this product yet.
|
|
119501
|
+
*/
|
|
119097
119502
|
lastRun: ({
|
|
119503
|
+
/**
|
|
119504
|
+
* When the last pass finished. Null when the stored summary predates this field.
|
|
119505
|
+
*/
|
|
119098
119506
|
ranAt: (string | null);
|
|
119507
|
+
/**
|
|
119508
|
+
* Rows Google rejected. Anything above zero is what makes the status partial.
|
|
119509
|
+
*/
|
|
119099
119510
|
failed: number;
|
|
119511
|
+
/**
|
|
119512
|
+
* 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.
|
|
119513
|
+
*/
|
|
119100
119514
|
status: ("ok" | "partial" | "not_connected");
|
|
119515
|
+
/**
|
|
119516
|
+
* Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
|
|
119517
|
+
*/
|
|
119101
119518
|
matched: number;
|
|
119519
|
+
/**
|
|
119520
|
+
* Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
|
|
119521
|
+
*/
|
|
119102
119522
|
noGclid: number;
|
|
119523
|
+
/**
|
|
119524
|
+
* Conversions in the lookback window that an enabled rule applied to.
|
|
119525
|
+
*/
|
|
119103
119526
|
selected: number;
|
|
119527
|
+
/**
|
|
119528
|
+
* Rows Google accepted.
|
|
119529
|
+
*/
|
|
119104
119530
|
uploaded: number;
|
|
119531
|
+
/**
|
|
119532
|
+
* Conversions held back because their money value had not landed yet. They are retried on a later pass.
|
|
119533
|
+
*/
|
|
119105
119534
|
zeroValue: number;
|
|
119106
119535
|
} | null);
|
|
119536
|
+
/**
|
|
119537
|
+
* 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.
|
|
119538
|
+
*/
|
|
119107
119539
|
guidance: string[];
|
|
119540
|
+
/**
|
|
119541
|
+
* Rows Google has accepted since this product was connected, across every pass.
|
|
119542
|
+
*/
|
|
119108
119543
|
uploaded: number;
|
|
119544
|
+
/**
|
|
119545
|
+
* How many event-to-conversion-action rules are configured, enabled or not.
|
|
119546
|
+
*/
|
|
119109
119547
|
ruleCount: number;
|
|
119548
|
+
/**
|
|
119549
|
+
* How many days back each pass looks for conversions to send, and how far back a click may be matched.
|
|
119550
|
+
*/
|
|
119110
119551
|
lookbackDays: number;
|
|
119552
|
+
/**
|
|
119553
|
+
* 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.
|
|
119554
|
+
*/
|
|
119111
119555
|
accountCurrency: (string | null);
|
|
119556
|
+
/**
|
|
119557
|
+
* The event names that may use the Dynamic value source, because revenue is known for them.
|
|
119558
|
+
*/
|
|
119112
119559
|
dynamicValueEvents: string[];
|
|
119560
|
+
/**
|
|
119561
|
+
* Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
|
|
119562
|
+
*/
|
|
119113
119563
|
enhancedConversions: boolean;
|
|
119114
119564
|
}
|
|
119115
119565
|
export interface TrackingGoogleadsFeedbackUploadsInput {
|
|
@@ -119128,84 +119578,293 @@ export type TrackingGoogleadsFeedbackUploadsOutput = {
|
|
|
119128
119578
|
conversionDatetime: string;
|
|
119129
119579
|
}[];
|
|
119130
119580
|
export interface TrackingGoogleadsRoasReportInput {
|
|
119131
|
-
|
|
119132
|
-
|
|
119581
|
+
/**
|
|
119582
|
+
* 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.
|
|
119583
|
+
*/
|
|
119584
|
+
to?: string;
|
|
119585
|
+
/**
|
|
119586
|
+
* 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.
|
|
119587
|
+
*/
|
|
119588
|
+
from?: string;
|
|
119589
|
+
/**
|
|
119590
|
+
* Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
|
|
119591
|
+
*/
|
|
119133
119592
|
model?: ("last_click" | "first_click");
|
|
119593
|
+
/**
|
|
119594
|
+
* Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
|
|
119595
|
+
*/
|
|
119134
119596
|
domain?: string;
|
|
119597
|
+
/**
|
|
119598
|
+
* Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
|
|
119599
|
+
*/
|
|
119135
119600
|
customerId?: string;
|
|
119601
|
+
/**
|
|
119602
|
+
* 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.
|
|
119603
|
+
*/
|
|
119136
119604
|
lookbackDays?: number;
|
|
119137
119605
|
}
|
|
119138
119606
|
export interface TrackingGoogleadsRoasReportOutput {
|
|
119607
|
+
/**
|
|
119608
|
+
* End of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
|
|
119609
|
+
*/
|
|
119139
119610
|
to: string;
|
|
119611
|
+
/**
|
|
119612
|
+
* Start of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
|
|
119613
|
+
*/
|
|
119140
119614
|
from: string;
|
|
119615
|
+
/**
|
|
119616
|
+
* Which touchpoint earned the credit in these numbers: the last paid click before the conversion, or the first.
|
|
119617
|
+
*/
|
|
119141
119618
|
model: ("last_click" | "first_click");
|
|
119619
|
+
/**
|
|
119620
|
+
* 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.
|
|
119621
|
+
*/
|
|
119622
|
+
stale: boolean;
|
|
119623
|
+
/**
|
|
119624
|
+
* The installed site this report was restricted to; null when it covers every domain of the product.
|
|
119625
|
+
*/
|
|
119142
119626
|
domain: (string | null);
|
|
119627
|
+
/**
|
|
119628
|
+
* One entry per Google Ads account and currency. Kept apart on purpose: amounts in different currencies are never added together.
|
|
119629
|
+
*/
|
|
119143
119630
|
accounts: {
|
|
119631
|
+
/**
|
|
119632
|
+
* 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.
|
|
119633
|
+
*/
|
|
119144
119634
|
stale: boolean;
|
|
119635
|
+
/**
|
|
119636
|
+
* 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.
|
|
119637
|
+
*/
|
|
119145
119638
|
currency: string;
|
|
119639
|
+
/**
|
|
119640
|
+
* This account's campaigns, each with its ad groups and ads nested underneath.
|
|
119641
|
+
*/
|
|
119146
119642
|
campaigns: TrackingGoogleadsRoasReportOutputItems[];
|
|
119643
|
+
/**
|
|
119644
|
+
* Google Ads account these campaigns belong to, by customer id without dashes.
|
|
119645
|
+
*/
|
|
119147
119646
|
customerId: string;
|
|
119647
|
+
/**
|
|
119648
|
+
* When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
|
|
119649
|
+
*/
|
|
119148
119650
|
costLastSyncedAt: (string | null);
|
|
119149
119651
|
}[];
|
|
119652
|
+
/**
|
|
119653
|
+
* ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
|
|
119654
|
+
*/
|
|
119655
|
+
currency: (string | null);
|
|
119656
|
+
/**
|
|
119657
|
+
* When this report was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
|
|
119658
|
+
*/
|
|
119150
119659
|
computedAt: string;
|
|
119660
|
+
/**
|
|
119661
|
+
* Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
|
|
119662
|
+
*/
|
|
119663
|
+
customerId: (string | null);
|
|
119664
|
+
/**
|
|
119665
|
+
* How far back before a conversion a paid click was allowed to sit and still earn the credit, in days.
|
|
119666
|
+
*/
|
|
119151
119667
|
lookbackDays: number;
|
|
119668
|
+
/**
|
|
119669
|
+
* Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
|
|
119670
|
+
*/
|
|
119671
|
+
costLastSyncedAt: (string | null);
|
|
119672
|
+
/**
|
|
119673
|
+
* 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.
|
|
119674
|
+
*/
|
|
119152
119675
|
unmatchedAttributed: {
|
|
119676
|
+
/**
|
|
119677
|
+
* Revenue that stayed outside every campaign, one row per currency. Never cross-summed.
|
|
119678
|
+
*/
|
|
119153
119679
|
revenue: TrackingGoogleadsRoasReportOutputItems1[];
|
|
119680
|
+
/**
|
|
119681
|
+
* How many distinct customers paid but could not be traced to any Google Ads campaign.
|
|
119682
|
+
*/
|
|
119154
119683
|
conversions: number;
|
|
119684
|
+
/**
|
|
119685
|
+
* 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.
|
|
119686
|
+
*/
|
|
119155
119687
|
utmCampaign: (string | null);
|
|
119156
119688
|
}[];
|
|
119157
119689
|
}
|
|
119158
119690
|
export interface TrackingGoogleadsRoasReportOutputItems {
|
|
119691
|
+
/**
|
|
119692
|
+
* What one attributed customer cost: cost divided by attributed conversions, in minor units of the account currency. null when there were no attributed conversions.
|
|
119693
|
+
*/
|
|
119159
119694
|
cpa: (number | null);
|
|
119695
|
+
/**
|
|
119696
|
+
* Google Ads ad this node is, by its numeric id; null on a campaign or ad group node.
|
|
119697
|
+
*/
|
|
119160
119698
|
adId: (string | null);
|
|
119699
|
+
/**
|
|
119700
|
+
* What Google charged and what Google itself counted for this node over the window.
|
|
119701
|
+
*/
|
|
119161
119702
|
cost: {
|
|
119703
|
+
/**
|
|
119704
|
+
* How many times someone clicked through from Google over the window.
|
|
119705
|
+
*/
|
|
119162
119706
|
clicks: number;
|
|
119707
|
+
/**
|
|
119708
|
+
* ISO-4217 code of the Google Ads account these numbers come from, e.g. USD. Fixed per account.
|
|
119709
|
+
*/
|
|
119163
119710
|
currency: string;
|
|
119711
|
+
/**
|
|
119712
|
+
* What Google charged for this campaign, ad group or ad over the window, in minor units (1250 = 12.50).
|
|
119713
|
+
*/
|
|
119164
119714
|
costMinor: number;
|
|
119715
|
+
/**
|
|
119716
|
+
* How many times Google showed this ad over the window.
|
|
119717
|
+
*/
|
|
119165
119718
|
impressions: number;
|
|
119719
|
+
/**
|
|
119720
|
+
* Conversions GOOGLE counted for this node — its own attribution, not ours. May be fractional, because Google splits credit across touchpoints.
|
|
119721
|
+
*/
|
|
119166
119722
|
platformConversions: number;
|
|
119723
|
+
/**
|
|
119724
|
+
* Conversion value GOOGLE reports for this node, in minor units of the account currency. Compare it with our attributed revenue; the two rarely agree.
|
|
119725
|
+
*/
|
|
119167
119726
|
platformConversionsValueMinor: number;
|
|
119168
119727
|
};
|
|
119728
|
+
/**
|
|
119729
|
+
* What this campaign, ad group or ad is called in Google Ads; null when the name has not been synced.
|
|
119730
|
+
*/
|
|
119169
119731
|
name: (string | null);
|
|
119732
|
+
/**
|
|
119733
|
+
* 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.
|
|
119734
|
+
*/
|
|
119170
119735
|
roas: (number | null);
|
|
119736
|
+
/**
|
|
119737
|
+
* 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.
|
|
119738
|
+
*/
|
|
119171
119739
|
level: ("campaign" | "ad_group" | "ad");
|
|
119740
|
+
/**
|
|
119741
|
+
* Google Ads campaign state, passed through raw: ENABLED, PAUSED, REMOVED. Present on campaign nodes only — the key is absent below.
|
|
119742
|
+
*/
|
|
119172
119743
|
status?: string;
|
|
119744
|
+
/**
|
|
119745
|
+
* The level below this one: ad groups under a campaign, ads under an ad group, empty on an ad.
|
|
119746
|
+
*/
|
|
119173
119747
|
children: TrackingGoogleadsRoasReportOutputItems[];
|
|
119748
|
+
/**
|
|
119749
|
+
* Google Ads ad group this node belongs to, by its numeric id; null on a campaign node.
|
|
119750
|
+
*/
|
|
119174
119751
|
adGroupId: (string | null);
|
|
119752
|
+
/**
|
|
119753
|
+
* What WE traced back to this node from our own tracking. null below campaign level, and null on a campaign nothing was traced to.
|
|
119754
|
+
*/
|
|
119175
119755
|
attributed: ({
|
|
119756
|
+
/**
|
|
119757
|
+
* What WE traced back to this campaign, one row per currency the customers paid in. Never cross-summed — use accountCurrencyNetMinor for a single figure.
|
|
119758
|
+
*/
|
|
119176
119759
|
revenue: TrackingGoogleadsRoasReportOutputItems1[];
|
|
119177
|
-
|
|
119760
|
+
/**
|
|
119761
|
+
* 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.
|
|
119762
|
+
*/
|
|
119763
|
+
matchedBy: (("lt_campaign_id" | "campaign_id" | "campaign_name" | "gclid") | null);
|
|
119764
|
+
/**
|
|
119765
|
+
* 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.
|
|
119766
|
+
*/
|
|
119178
119767
|
conversions: number;
|
|
119768
|
+
/**
|
|
119769
|
+
* 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.
|
|
119770
|
+
*/
|
|
119179
119771
|
accountCurrencyNetMinor: number;
|
|
119180
119772
|
} | null);
|
|
119773
|
+
/**
|
|
119774
|
+
* Google Ads campaign this node belongs to, by its numeric id. Set at every level.
|
|
119775
|
+
*/
|
|
119181
119776
|
campaignId: string;
|
|
119777
|
+
/**
|
|
119778
|
+
* Google Ads account this node belongs to, by customer id without dashes.
|
|
119779
|
+
*/
|
|
119182
119780
|
customerId: string;
|
|
119781
|
+
/**
|
|
119782
|
+
* 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.
|
|
119783
|
+
*/
|
|
119183
119784
|
channelType?: (string | null);
|
|
119184
119785
|
}
|
|
119185
119786
|
export interface TrackingGoogleadsRoasReportOutputItems1 {
|
|
119787
|
+
/**
|
|
119788
|
+
* ISO-4217 code the three amounts on this row are denominated in, e.g. USD. One row per currency; rows are never added together.
|
|
119789
|
+
*/
|
|
119186
119790
|
currency: string;
|
|
119791
|
+
/**
|
|
119792
|
+
* Money kept after refunds (gross minus refunded), in minor units of this row's currency. This is what ROAS is calculated from.
|
|
119793
|
+
*/
|
|
119187
119794
|
netMinor: number;
|
|
119795
|
+
/**
|
|
119796
|
+
* Money taken before refunds, in minor units of this row's currency (1250 = 12.50).
|
|
119797
|
+
*/
|
|
119188
119798
|
grossMinor: number;
|
|
119799
|
+
/**
|
|
119800
|
+
* Money given back within the window, in minor units of this row's currency; already subtracted from netMinor.
|
|
119801
|
+
*/
|
|
119189
119802
|
refundedMinor: number;
|
|
119190
119803
|
}
|
|
119191
119804
|
export interface TrackingGoogleadsSyncNowInput {
|
|
119192
119805
|
}
|
|
119193
119806
|
export interface TrackingGoogleadsSyncNowOutput {
|
|
119807
|
+
/**
|
|
119808
|
+
* 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.
|
|
119809
|
+
*/
|
|
119194
119810
|
rows: {
|
|
119811
|
+
/**
|
|
119812
|
+
* Ads written.
|
|
119813
|
+
*/
|
|
119195
119814
|
ads: number;
|
|
119815
|
+
/**
|
|
119816
|
+
* Day-by-day ad spend and metric rows written.
|
|
119817
|
+
*/
|
|
119196
119818
|
adDaily: number;
|
|
119819
|
+
/**
|
|
119820
|
+
* Ad groups written.
|
|
119821
|
+
*/
|
|
119197
119822
|
adGroups: number;
|
|
119823
|
+
/**
|
|
119824
|
+
* Campaigns written, names and status included.
|
|
119825
|
+
*/
|
|
119198
119826
|
campaigns: number;
|
|
119827
|
+
/**
|
|
119828
|
+
* Day-by-day ad-group spend and metric rows written.
|
|
119829
|
+
*/
|
|
119199
119830
|
adGroupDaily: number;
|
|
119831
|
+
/**
|
|
119832
|
+
* Day-by-day campaign spend and metric rows written.
|
|
119833
|
+
*/
|
|
119200
119834
|
campaignDaily: number;
|
|
119201
119835
|
};
|
|
119836
|
+
/**
|
|
119837
|
+
* 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.
|
|
119838
|
+
*/
|
|
119839
|
+
runId: string;
|
|
119840
|
+
/**
|
|
119841
|
+
* 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.
|
|
119842
|
+
*/
|
|
119202
119843
|
reason?: string;
|
|
119844
|
+
/**
|
|
119845
|
+
* Whether the sweep ran. skipped means the Google Ads account could not be reached and nothing at all was written.
|
|
119846
|
+
*/
|
|
119203
119847
|
status: ("ok" | "skipped");
|
|
119848
|
+
/**
|
|
119849
|
+
* The range of days this sweep read spend and metrics for.
|
|
119850
|
+
*/
|
|
119204
119851
|
window: {
|
|
119852
|
+
/**
|
|
119853
|
+
* Last day covered, inclusive, as YYYY-MM-DD.
|
|
119854
|
+
*/
|
|
119205
119855
|
end: string;
|
|
119856
|
+
/**
|
|
119857
|
+
* First day covered, inclusive, as YYYY-MM-DD.
|
|
119858
|
+
*/
|
|
119206
119859
|
start: string;
|
|
119207
119860
|
};
|
|
119861
|
+
/**
|
|
119862
|
+
* The tenant whose Google Ads account was swept.
|
|
119863
|
+
*/
|
|
119208
119864
|
productId: string;
|
|
119865
|
+
/**
|
|
119866
|
+
* When the sweep finished. Null when nothing was written.
|
|
119867
|
+
*/
|
|
119209
119868
|
lastSyncedAt: (string | null);
|
|
119210
119869
|
}
|
|
119211
119870
|
export interface TrackingGoogleadsTrackingHealthInput {
|
|
@@ -119219,61 +119878,212 @@ export interface TrackingGoogleadsTrackingHealthInput {
|
|
|
119219
119878
|
from?: string;
|
|
119220
119879
|
}
|
|
119221
119880
|
export interface TrackingGoogleadsTrackingHealthOutput {
|
|
119881
|
+
/**
|
|
119882
|
+
* End of the range these figures cover, as an instant.
|
|
119883
|
+
*/
|
|
119222
119884
|
to: string;
|
|
119885
|
+
/**
|
|
119886
|
+
* Start of the range these figures cover, as an instant. Echoes back the range that was asked for.
|
|
119887
|
+
*/
|
|
119223
119888
|
from: string;
|
|
119889
|
+
/**
|
|
119890
|
+
* Whether the tracking template has been seen working live: true once at least one tagged click has arrived.
|
|
119891
|
+
*/
|
|
119224
119892
|
installed: boolean;
|
|
119893
|
+
/**
|
|
119894
|
+
* Whether the sample above was cut short. True means more untagged URLs exist than are listed.
|
|
119895
|
+
*/
|
|
119225
119896
|
truncated: boolean;
|
|
119897
|
+
/**
|
|
119898
|
+
* Google paid clicks that arrived on the site in this range. The denominator for everything below.
|
|
119899
|
+
*/
|
|
119226
119900
|
paidClicks: number;
|
|
119901
|
+
/**
|
|
119902
|
+
* 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.
|
|
119903
|
+
*/
|
|
119227
119904
|
dataQuality: {
|
|
119905
|
+
/**
|
|
119906
|
+
* 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.
|
|
119907
|
+
*/
|
|
119228
119908
|
cookielessPaidClicks: number;
|
|
119229
119909
|
};
|
|
119910
|
+
/**
|
|
119911
|
+
* Share of paid clicks that arrived untagged, between 0 and 1. Anything much above zero means the tracking template needs fixing.
|
|
119912
|
+
*/
|
|
119230
119913
|
breakageRate: number;
|
|
119914
|
+
/**
|
|
119915
|
+
* Of those, the ones that arrived carrying our URL tracking parameters, so the campaign behind them is known.
|
|
119916
|
+
*/
|
|
119231
119917
|
taggedClicks: number;
|
|
119918
|
+
/**
|
|
119919
|
+
* When the most recent untagged click arrived. Close to now means the breakage is still live. Null when none did.
|
|
119920
|
+
*/
|
|
119232
119921
|
lastUntaggedAt: (string | null);
|
|
119922
|
+
/**
|
|
119923
|
+
* 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.
|
|
119924
|
+
*/
|
|
119233
119925
|
untaggedClicks: number;
|
|
119926
|
+
/**
|
|
119927
|
+
* When the first untagged click of the range arrived — roughly when the breakage started. Null when none did.
|
|
119928
|
+
*/
|
|
119234
119929
|
firstUntaggedAt: (string | null);
|
|
119930
|
+
/**
|
|
119931
|
+
* 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.
|
|
119932
|
+
*/
|
|
119235
119933
|
sampleUntaggedUrls: string[];
|
|
119236
119934
|
}
|
|
119237
119935
|
export interface TrackingGoogleadsUsVsPlatformInput {
|
|
119238
|
-
|
|
119239
|
-
|
|
119936
|
+
/**
|
|
119937
|
+
* 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.
|
|
119938
|
+
*/
|
|
119939
|
+
to?: string;
|
|
119940
|
+
/**
|
|
119941
|
+
* 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.
|
|
119942
|
+
*/
|
|
119943
|
+
from?: string;
|
|
119944
|
+
/**
|
|
119945
|
+
* Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
|
|
119946
|
+
*/
|
|
119240
119947
|
model?: ("last_click" | "first_click");
|
|
119948
|
+
/**
|
|
119949
|
+
* Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
|
|
119950
|
+
*/
|
|
119241
119951
|
domain?: string;
|
|
119952
|
+
/**
|
|
119953
|
+
* Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
|
|
119954
|
+
*/
|
|
119242
119955
|
customerId?: string;
|
|
119956
|
+
/**
|
|
119957
|
+
* 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.
|
|
119958
|
+
*/
|
|
119243
119959
|
lookbackDays?: number;
|
|
119244
119960
|
}
|
|
119245
119961
|
export interface TrackingGoogleadsUsVsPlatformOutput {
|
|
119962
|
+
/**
|
|
119963
|
+
* End of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
|
|
119964
|
+
*/
|
|
119246
119965
|
to: string;
|
|
119966
|
+
/**
|
|
119967
|
+
* Start of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
|
|
119968
|
+
*/
|
|
119247
119969
|
from: string;
|
|
119970
|
+
/**
|
|
119971
|
+
* 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.
|
|
119972
|
+
*/
|
|
119248
119973
|
model: ("last_click" | "first_click");
|
|
119974
|
+
/**
|
|
119975
|
+
* 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.
|
|
119976
|
+
*/
|
|
119977
|
+
stale: boolean;
|
|
119978
|
+
/**
|
|
119979
|
+
* The installed site this comparison was restricted to; null when it covers every domain of the product.
|
|
119980
|
+
*/
|
|
119249
119981
|
domain: (string | null);
|
|
119982
|
+
/**
|
|
119983
|
+
* One entry per Google Ads account and currency, each holding its per-campaign comparison rows. Currencies are never added together.
|
|
119984
|
+
*/
|
|
119250
119985
|
accounts: {
|
|
119986
|
+
/**
|
|
119987
|
+
* One row per campaign in this account, ours beside Google's.
|
|
119988
|
+
*/
|
|
119251
119989
|
rows: {
|
|
119990
|
+
/**
|
|
119991
|
+
* What this campaign is called in Google Ads; null when the name has not been synced.
|
|
119992
|
+
*/
|
|
119252
119993
|
name: (string | null);
|
|
119994
|
+
/**
|
|
119995
|
+
* ISO-4217 code both sides of this comparison are expressed in, e.g. USD. Ours and Google's are never converted.
|
|
119996
|
+
*/
|
|
119253
119997
|
currency: string;
|
|
119998
|
+
/**
|
|
119999
|
+
* The Google Ads campaign this row compares, by its numeric id.
|
|
120000
|
+
*/
|
|
119254
120001
|
campaignId: string;
|
|
120002
|
+
/**
|
|
120003
|
+
* Google Ads account this campaign belongs to, by customer id without dashes.
|
|
120004
|
+
*/
|
|
119255
120005
|
customerId: string;
|
|
120006
|
+
/**
|
|
120007
|
+
* How many distinct customers WE traced to this campaign. A whole number: we never split a customer across campaigns.
|
|
120008
|
+
*/
|
|
119256
120009
|
ourConversions: number;
|
|
119257
|
-
|
|
120010
|
+
/**
|
|
120011
|
+
* Net revenue WE traced to this campaign, in minor units of the account currency (1250 = 12.50). 0 when we traced none.
|
|
120012
|
+
*/
|
|
120013
|
+
ourRevenueNetMinor: number;
|
|
120014
|
+
/**
|
|
120015
|
+
* 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.
|
|
120016
|
+
*/
|
|
119258
120017
|
platformConversions: number;
|
|
120018
|
+
/**
|
|
120019
|
+
* Conversion value GOOGLE reports for the same campaign, in minor units of the account currency. The counterpart of ourRevenueNetMinor.
|
|
120020
|
+
*/
|
|
119259
120021
|
platformConversionsValueMinor: number;
|
|
119260
120022
|
}[];
|
|
120023
|
+
/**
|
|
120024
|
+
* 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.
|
|
120025
|
+
*/
|
|
119261
120026
|
stale: boolean;
|
|
120027
|
+
/**
|
|
120028
|
+
* 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.
|
|
120029
|
+
*/
|
|
119262
120030
|
currency: string;
|
|
120031
|
+
/**
|
|
120032
|
+
* Google Ads account these comparison rows belong to, by customer id without dashes.
|
|
120033
|
+
*/
|
|
119263
120034
|
customerId: string;
|
|
120035
|
+
/**
|
|
120036
|
+
* When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
|
|
120037
|
+
*/
|
|
119264
120038
|
costLastSyncedAt: (string | null);
|
|
119265
120039
|
}[];
|
|
120040
|
+
/**
|
|
120041
|
+
* ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
|
|
120042
|
+
*/
|
|
120043
|
+
currency: (string | null);
|
|
120044
|
+
/**
|
|
120045
|
+
* When this comparison was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
|
|
120046
|
+
*/
|
|
119266
120047
|
computedAt: string;
|
|
120048
|
+
/**
|
|
120049
|
+
* Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
|
|
120050
|
+
*/
|
|
120051
|
+
customerId: (string | null);
|
|
120052
|
+
/**
|
|
120053
|
+
* How far back before a conversion a paid click was allowed to sit and still earn the credit on our side, in days.
|
|
120054
|
+
*/
|
|
119267
120055
|
lookbackDays: number;
|
|
120056
|
+
/**
|
|
120057
|
+
* Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
|
|
120058
|
+
*/
|
|
120059
|
+
costLastSyncedAt: (string | null);
|
|
119268
120060
|
}
|
|
119269
120061
|
export interface TrackingIdentityHealthInput {
|
|
119270
120062
|
}
|
|
119271
120063
|
export interface TrackingIdentityHealthOutput {
|
|
120064
|
+
/**
|
|
120065
|
+
* When these numbers were computed, ISO 8601 UTC. They are a live count, so this is effectively the moment of the call.
|
|
120066
|
+
*/
|
|
119272
120067
|
computedAt: string;
|
|
120068
|
+
/**
|
|
120069
|
+
* How many people the product holds in total, anonymous ones included. The denominator of both rates below.
|
|
120070
|
+
*/
|
|
119273
120071
|
totalProfiles: number;
|
|
120072
|
+
/**
|
|
120073
|
+
* 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.
|
|
120074
|
+
*/
|
|
119274
120075
|
identifiedRate: number;
|
|
120076
|
+
/**
|
|
120077
|
+
* 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.
|
|
120078
|
+
*/
|
|
119275
120079
|
adTouchpointRate: number;
|
|
120080
|
+
/**
|
|
120081
|
+
* How many of them an email or phone is known for — the people a message can actually be sent to.
|
|
120082
|
+
*/
|
|
119276
120083
|
identifiedProfiles: number;
|
|
120084
|
+
/**
|
|
120085
|
+
* 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.
|
|
120086
|
+
*/
|
|
119277
120087
|
adTouchpointProfiles: number;
|
|
119278
120088
|
}
|
|
119279
120089
|
export interface TrackingInstallDomainsCreateInput {
|
|
@@ -119283,6 +120093,9 @@ export interface TrackingInstallDomainsCreateInput {
|
|
|
119283
120093
|
domain: string;
|
|
119284
120094
|
}
|
|
119285
120095
|
export interface TrackingInstallDomainsCreateOutput {
|
|
120096
|
+
/**
|
|
120097
|
+
* The domain as stored after normalisation, which may differ from what was submitted
|
|
120098
|
+
*/
|
|
119286
120099
|
domain: string;
|
|
119287
120100
|
}
|
|
119288
120101
|
export interface TrackingInstallDomainsDeleteInput {
|
|
@@ -119292,19 +120105,43 @@ export interface TrackingInstallDomainsDeleteInput {
|
|
|
119292
120105
|
domain: string;
|
|
119293
120106
|
}
|
|
119294
120107
|
export interface TrackingInstallDomainsDeleteOutput {
|
|
120108
|
+
/**
|
|
120109
|
+
* Always true — the domain was removed; a failure arrives as an error, not as false
|
|
120110
|
+
*/
|
|
119295
120111
|
ok: true;
|
|
119296
120112
|
}
|
|
119297
120113
|
export interface TrackingInstallDomainsListInput {
|
|
119298
120114
|
}
|
|
119299
120115
|
export interface TrackingInstallDomainsListOutput {
|
|
120116
|
+
/**
|
|
120117
|
+
* Domains sending events that nobody registered — usually a staging host, a typo, or an install worth adding
|
|
120118
|
+
*/
|
|
119300
120119
|
discovered: TrackingInstallDomainsListOutputItems[];
|
|
120120
|
+
/**
|
|
120121
|
+
* Domains deliberately put on the install checklist, each with whether its script has been seen
|
|
120122
|
+
*/
|
|
119301
120123
|
registered: TrackingInstallDomainsListOutputItems[];
|
|
120124
|
+
/**
|
|
120125
|
+
* Length in days of the lookback window the `seen` and `lastSeen` figures are measured over
|
|
120126
|
+
*/
|
|
119302
120127
|
windowDays: number;
|
|
119303
120128
|
}
|
|
119304
120129
|
export interface TrackingInstallDomainsListOutputItems {
|
|
120130
|
+
/**
|
|
120131
|
+
* Whether the tracking script actually sent an event from this domain inside the lookback window
|
|
120132
|
+
*/
|
|
119305
120133
|
seen: boolean;
|
|
120134
|
+
/**
|
|
120135
|
+
* Normalised domain name the status is reported for
|
|
120136
|
+
*/
|
|
119306
120137
|
domain: string;
|
|
120138
|
+
/**
|
|
120139
|
+
* ISO-8601 timestamp of the most recent event from this domain, or null if none arrived in the window
|
|
120140
|
+
*/
|
|
119307
120141
|
lastSeen: (string | null);
|
|
120142
|
+
/**
|
|
120143
|
+
* Whether the domain is on the install checklist on purpose, as opposed to merely observed sending events
|
|
120144
|
+
*/
|
|
119308
120145
|
registered: boolean;
|
|
119309
120146
|
}
|
|
119310
120147
|
export interface TrackingLinkDomainsCreateInput {
|
|
@@ -119314,6 +120151,9 @@ export interface TrackingLinkDomainsCreateInput {
|
|
|
119314
120151
|
domain: string;
|
|
119315
120152
|
}
|
|
119316
120153
|
export interface TrackingLinkDomainsCreateOutput {
|
|
120154
|
+
/**
|
|
120155
|
+
* The domain as stored after normalisation, which may differ from what was submitted
|
|
120156
|
+
*/
|
|
119317
120157
|
domain: string;
|
|
119318
120158
|
}
|
|
119319
120159
|
export interface TrackingLinkDomainsDeleteInput {
|
|
@@ -119323,11 +120163,17 @@ export interface TrackingLinkDomainsDeleteInput {
|
|
|
119323
120163
|
domain: string;
|
|
119324
120164
|
}
|
|
119325
120165
|
export interface TrackingLinkDomainsDeleteOutput {
|
|
120166
|
+
/**
|
|
120167
|
+
* Always true — the domain left the linking group; a failure arrives as an error, not as false
|
|
120168
|
+
*/
|
|
119326
120169
|
ok: true;
|
|
119327
120170
|
}
|
|
119328
120171
|
export interface TrackingLinkDomainsListInput {
|
|
119329
120172
|
}
|
|
119330
120173
|
export interface TrackingLinkDomainsListOutput {
|
|
120174
|
+
/**
|
|
120175
|
+
* Root domains in the linking group; the tracking script decorates links between any two of them so one visitor stays one visitor
|
|
120176
|
+
*/
|
|
119331
120177
|
domains: string[];
|
|
119332
120178
|
}
|
|
119333
120179
|
export interface TrackingLiveEventsListInput {
|
|
@@ -119345,22 +120191,70 @@ export interface TrackingLiveEventsListInput {
|
|
|
119345
120191
|
domain?: string;
|
|
119346
120192
|
}
|
|
119347
120193
|
export interface TrackingLiveEventsListOutput {
|
|
120194
|
+
/**
|
|
120195
|
+
* Pass back as `since` to fetch what arrived after this page. Null when there is nothing older to page into.
|
|
120196
|
+
*/
|
|
119348
120197
|
cursor: (string | null);
|
|
120198
|
+
/**
|
|
120199
|
+
* The page of events, newest first.
|
|
120200
|
+
*/
|
|
119349
120201
|
events: {
|
|
120202
|
+
/**
|
|
120203
|
+
* Stable identifier of this single event; unique within the product and safe to deduplicate on across polls.
|
|
120204
|
+
*/
|
|
119350
120205
|
id: string;
|
|
120206
|
+
/**
|
|
120207
|
+
* When the event happened, as reported by the tracker (ISO 8601, UTC).
|
|
120208
|
+
*/
|
|
119351
120209
|
ts: string;
|
|
120210
|
+
/**
|
|
120211
|
+
* Page address the event fired on, query string included. Free text from the customer site, so it can carry personal data.
|
|
120212
|
+
*/
|
|
119352
120213
|
url: (string | null);
|
|
120214
|
+
/**
|
|
120215
|
+
* Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
|
|
120216
|
+
*/
|
|
119353
120217
|
name: string;
|
|
120218
|
+
/**
|
|
120219
|
+
* Document title of that page at the time. Free text from the customer site, so it can carry personal data.
|
|
120220
|
+
*/
|
|
119354
120221
|
title: (string | null);
|
|
120222
|
+
/**
|
|
120223
|
+
* Site the event came from; null when the tracker could not determine one.
|
|
120224
|
+
*/
|
|
119355
120225
|
domain: (string | null);
|
|
120226
|
+
/**
|
|
120227
|
+
* Where this visit came from, as read off the landing URL and referrer. Every field is null when the visit carried nothing.
|
|
120228
|
+
*/
|
|
119356
120229
|
source: {
|
|
120230
|
+
/**
|
|
120231
|
+
* Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
|
|
120232
|
+
*/
|
|
119357
120233
|
referrer: (string | null);
|
|
120234
|
+
/**
|
|
120235
|
+
* utm_medium of the landing URL, e.g. cpc; null when absent.
|
|
120236
|
+
*/
|
|
119358
120237
|
utmMedium: (string | null);
|
|
120238
|
+
/**
|
|
120239
|
+
* utm_source of the landing URL, e.g. newsletter; null when absent.
|
|
120240
|
+
*/
|
|
119359
120241
|
utmSource: (string | null);
|
|
120242
|
+
/**
|
|
120243
|
+
* Which ad-network click id was present on the landing URL, e.g. 'gclid'. Null when the visit carried none.
|
|
120244
|
+
*/
|
|
119360
120245
|
clickIdType: (string | null);
|
|
120246
|
+
/**
|
|
120247
|
+
* utm_campaign of the landing URL; null when absent.
|
|
120248
|
+
*/
|
|
119361
120249
|
utmCampaign: (string | null);
|
|
119362
120250
|
};
|
|
120251
|
+
/**
|
|
120252
|
+
* Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
|
|
120253
|
+
*/
|
|
119363
120254
|
country: (string | null);
|
|
120255
|
+
/**
|
|
120256
|
+
* 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.
|
|
120257
|
+
*/
|
|
119364
120258
|
anonymousId: (string | null);
|
|
119365
120259
|
}[];
|
|
119366
120260
|
}
|
|
@@ -119371,18 +120265,52 @@ export interface TrackingProfilesDeleteInput {
|
|
|
119371
120265
|
profileId: string;
|
|
119372
120266
|
}
|
|
119373
120267
|
export interface TrackingProfilesDeleteOutput {
|
|
120268
|
+
/**
|
|
120269
|
+
* Always true: the response only exists when the erasure ran. A failure arrives as an error, not as ok=false.
|
|
120270
|
+
*/
|
|
119374
120271
|
ok: true;
|
|
120272
|
+
/**
|
|
120273
|
+
* What happened to the archived copy of the events. Postgres is erased synchronously; the archive is not, and this says so out loud.
|
|
120274
|
+
*/
|
|
119375
120275
|
archive: {
|
|
120276
|
+
/**
|
|
120277
|
+
* Plain-language reason the archived copy could not be deleted in the same breath — text meant to be quoted into a compliance record.
|
|
120278
|
+
*/
|
|
119376
120279
|
note: string;
|
|
120280
|
+
/**
|
|
120281
|
+
* Always gap_flagged: the archived copy is known to still hold this person and the gap has been recorded rather than silently ignored.
|
|
120282
|
+
*/
|
|
119377
120283
|
status: "gap_flagged";
|
|
119378
120284
|
};
|
|
120285
|
+
/**
|
|
120286
|
+
* How much was actually destroyed, by kind. Worth recording: it is the evidence that the erasure did something.
|
|
120287
|
+
*/
|
|
119379
120288
|
deleted: {
|
|
120289
|
+
/**
|
|
120290
|
+
* Tracked events removed, found through the anonymous ids this person browsed under.
|
|
120291
|
+
*/
|
|
119380
120292
|
events: number;
|
|
120293
|
+
/**
|
|
120294
|
+
* Merge records removed — the history of this person having been joined with another.
|
|
120295
|
+
*/
|
|
119381
120296
|
merges: number;
|
|
120297
|
+
/**
|
|
120298
|
+
* Profile rows removed: 1 in practice, and 0 only if the row vanished between the lookup and the delete.
|
|
120299
|
+
*/
|
|
119382
120300
|
profile: number;
|
|
120301
|
+
/**
|
|
120302
|
+
* Emails, phones, anonymous ids and click ids removed for this person.
|
|
120303
|
+
*/
|
|
119383
120304
|
identifiers: number;
|
|
119384
120305
|
};
|
|
120306
|
+
/**
|
|
120307
|
+
* The person who was erased. Nothing else of them remains, so this is all there is left to name them by.
|
|
120308
|
+
*/
|
|
119385
120309
|
profileId: string;
|
|
120310
|
+
/**
|
|
120311
|
+
* 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.
|
|
120312
|
+
*/
|
|
120313
|
+
requestId: string;
|
|
119386
120314
|
}
|
|
119387
120315
|
export interface TrackingProfilesExportInput {
|
|
119388
120316
|
/**
|
|
@@ -119391,52 +120319,172 @@ export interface TrackingProfilesExportInput {
|
|
|
119391
120319
|
profileId: string;
|
|
119392
120320
|
}
|
|
119393
120321
|
export interface TrackingProfilesExportOutput {
|
|
120322
|
+
/**
|
|
120323
|
+
* The complete history, newest event first, capped at 50000 events — check `truncated` before treating it as complete.
|
|
120324
|
+
*/
|
|
119394
120325
|
journey: {
|
|
120326
|
+
/**
|
|
120327
|
+
* When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
|
|
120328
|
+
*/
|
|
119395
120329
|
ts: string;
|
|
120330
|
+
/**
|
|
120331
|
+
* Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
|
|
120332
|
+
*/
|
|
119396
120333
|
ref: string;
|
|
120334
|
+
/**
|
|
120335
|
+
* Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
|
|
120336
|
+
*/
|
|
119397
120337
|
url: (string | null);
|
|
120338
|
+
/**
|
|
120339
|
+
* What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
|
|
120340
|
+
*/
|
|
119398
120341
|
name: string;
|
|
120342
|
+
/**
|
|
120343
|
+
* Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
|
|
120344
|
+
*/
|
|
119399
120345
|
props: {
|
|
119400
120346
|
[k: string]: unknown;
|
|
119401
120347
|
};
|
|
120348
|
+
/**
|
|
120349
|
+
* Title of the page as the browser reported it. Null off-page.
|
|
120350
|
+
*/
|
|
119402
120351
|
title: (string | null);
|
|
120352
|
+
/**
|
|
120353
|
+
* Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
|
|
120354
|
+
*/
|
|
119403
120355
|
domain: (string | null);
|
|
120356
|
+
/**
|
|
120357
|
+
* Campaign tags and ad click carried by this event, as they were on the URL at the time.
|
|
120358
|
+
*/
|
|
119404
120359
|
source: {
|
|
120360
|
+
/**
|
|
120361
|
+
* The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
|
|
120362
|
+
*/
|
|
119405
120363
|
clickId: (string | null);
|
|
120364
|
+
/**
|
|
120365
|
+
* utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
|
|
120366
|
+
*/
|
|
119406
120367
|
utmTerm: (string | null);
|
|
120368
|
+
/**
|
|
120369
|
+
* utm_medium on the URL of this event.
|
|
120370
|
+
*/
|
|
119407
120371
|
utmMedium: (string | null);
|
|
120372
|
+
/**
|
|
120373
|
+
* utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
|
|
120374
|
+
*/
|
|
119408
120375
|
utmSource: (string | null);
|
|
120376
|
+
/**
|
|
120377
|
+
* utm_content on the URL of this event — which creative or link variant was clicked.
|
|
120378
|
+
*/
|
|
119409
120379
|
utmContent: (string | null);
|
|
120380
|
+
/**
|
|
120381
|
+
* Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
|
|
120382
|
+
*/
|
|
119410
120383
|
clickIdType: (string | null);
|
|
120384
|
+
/**
|
|
120385
|
+
* utm_campaign on the URL of this event.
|
|
120386
|
+
*/
|
|
119411
120387
|
utmCampaign: (string | null);
|
|
119412
120388
|
};
|
|
120389
|
+
/**
|
|
120390
|
+
* Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
|
|
120391
|
+
*/
|
|
119413
120392
|
country: (string | null);
|
|
120393
|
+
/**
|
|
120394
|
+
* Where the person came from immediately before this event. Null on a direct arrival or off-page.
|
|
120395
|
+
*/
|
|
119414
120396
|
referrer: (string | null);
|
|
120397
|
+
/**
|
|
120398
|
+
* Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
|
|
120399
|
+
*/
|
|
119415
120400
|
sessionId: (string | null);
|
|
119416
120401
|
}[];
|
|
120402
|
+
/**
|
|
120403
|
+
* The person themselves: their handle, how far they have come, and when they were seen.
|
|
120404
|
+
*/
|
|
119417
120405
|
profile: {
|
|
120406
|
+
/**
|
|
120407
|
+
* 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.
|
|
120408
|
+
*/
|
|
119418
120409
|
status: ("anonymous" | "identified" | "customer");
|
|
120410
|
+
/**
|
|
120411
|
+
* When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
|
|
120412
|
+
*/
|
|
119419
120413
|
createdAt: string;
|
|
120414
|
+
/**
|
|
120415
|
+
* Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
|
|
120416
|
+
*/
|
|
119420
120417
|
profileId: string;
|
|
120418
|
+
/**
|
|
120419
|
+
* Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
|
|
120420
|
+
*/
|
|
119421
120421
|
lastSeenAt: string;
|
|
120422
|
+
/**
|
|
120423
|
+
* Timestamp of the earliest event on record for this person, ISO 8601 UTC.
|
|
120424
|
+
*/
|
|
119422
120425
|
firstSeenAt: string;
|
|
119423
120426
|
};
|
|
120427
|
+
/**
|
|
120428
|
+
* 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.
|
|
120429
|
+
*/
|
|
119424
120430
|
signals: {
|
|
120431
|
+
/**
|
|
120432
|
+
* 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.
|
|
120433
|
+
*/
|
|
119425
120434
|
emails: string[];
|
|
120435
|
+
/**
|
|
120436
|
+
* Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
|
|
120437
|
+
*/
|
|
119426
120438
|
phones: string[];
|
|
120439
|
+
/**
|
|
120440
|
+
* Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
|
|
120441
|
+
*/
|
|
119427
120442
|
domains: string[];
|
|
120443
|
+
/**
|
|
120444
|
+
* 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.
|
|
120445
|
+
*/
|
|
119428
120446
|
clickIds: {
|
|
120447
|
+
/**
|
|
120448
|
+
* Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
|
|
120449
|
+
*/
|
|
119429
120450
|
type: string;
|
|
120451
|
+
/**
|
|
120452
|
+
* The click identifier itself, raw, as the network stamped it on the landing URL.
|
|
120453
|
+
*/
|
|
119430
120454
|
value: string;
|
|
119431
120455
|
}[];
|
|
119432
120456
|
};
|
|
120457
|
+
/**
|
|
120458
|
+
* True when the history hit the 50000-event cap and older events were left out. False means this export is everything held.
|
|
120459
|
+
*/
|
|
119433
120460
|
truncated: boolean;
|
|
120461
|
+
/**
|
|
120462
|
+
* When this export was produced, ISO 8601 UTC — the as-of date to put on a subject-access response.
|
|
120463
|
+
*/
|
|
119434
120464
|
exportedAt: string;
|
|
120465
|
+
/**
|
|
120466
|
+
* 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.
|
|
120467
|
+
*/
|
|
119435
120468
|
acquisition: ({
|
|
120469
|
+
/**
|
|
120470
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
120471
|
+
*/
|
|
119436
120472
|
utmMedium: (string | null);
|
|
120473
|
+
/**
|
|
120474
|
+
* 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.
|
|
120475
|
+
*/
|
|
119437
120476
|
utmSource: (string | null);
|
|
120477
|
+
/**
|
|
120478
|
+
* 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.
|
|
120479
|
+
*/
|
|
119438
120480
|
clickIdType: (string | null);
|
|
120481
|
+
/**
|
|
120482
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
120483
|
+
*/
|
|
119439
120484
|
firstSeenAt: string;
|
|
120485
|
+
/**
|
|
120486
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
120487
|
+
*/
|
|
119440
120488
|
utmCampaign: (string | null);
|
|
119441
120489
|
} | null);
|
|
119442
120490
|
}
|
|
@@ -119450,76 +120498,226 @@ export interface TrackingProfilesGetInput {
|
|
|
119450
120498
|
*/
|
|
119451
120499
|
journeyLimit?: number;
|
|
119452
120500
|
/**
|
|
119453
|
-
*
|
|
120501
|
+
* Continue paging back through the journey: pass the cursor the previous page returned. Omit to start at the most recent event.
|
|
119454
120502
|
*/
|
|
119455
120503
|
journeyCursor?: string;
|
|
119456
120504
|
}
|
|
119457
120505
|
export interface TrackingProfilesGetOutput {
|
|
120506
|
+
/**
|
|
120507
|
+
* Lifetime value of this person, per currency. Null when revenue tracking is not in use for the product.
|
|
120508
|
+
*/
|
|
119458
120509
|
ltv: ({
|
|
120510
|
+
/**
|
|
120511
|
+
* 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.
|
|
120512
|
+
*/
|
|
119459
120513
|
entries: {
|
|
120514
|
+
/**
|
|
120515
|
+
* ISO 4217 code the amounts beside it are denominated in, e.g. EUR. One entry per code the person ever paid in.
|
|
120516
|
+
*/
|
|
119460
120517
|
currency: string;
|
|
120518
|
+
/**
|
|
120519
|
+
* What the business actually kept: gross minus refunded, in minor units. This is the number to rank customers by.
|
|
120520
|
+
*/
|
|
119461
120521
|
netMinor: number;
|
|
120522
|
+
/**
|
|
120523
|
+
* Everything the person was ever charged, in minor units (1250 = 12.50 EUR). Refunds are not subtracted here.
|
|
120524
|
+
*/
|
|
119462
120525
|
grossMinor: number;
|
|
120526
|
+
/**
|
|
120527
|
+
* Their most recent payment in this currency, ISO 8601 UTC — how live the relationship is.
|
|
120528
|
+
*/
|
|
119463
120529
|
lastPaymentAt: (string | null);
|
|
120530
|
+
/**
|
|
120531
|
+
* How much of the gross went back to them, in minor units. Zero for a person who never had a refund.
|
|
120532
|
+
*/
|
|
119464
120533
|
refundedMinor: number;
|
|
120534
|
+
/**
|
|
120535
|
+
* When this person first paid in this currency, ISO 8601 UTC. Null when the totals were computed without a dated payment.
|
|
120536
|
+
*/
|
|
119465
120537
|
firstPaymentAt: (string | null);
|
|
119466
120538
|
}[];
|
|
120539
|
+
/**
|
|
120540
|
+
* The person these totals belong to — the same handle as profile.profileId.
|
|
120541
|
+
*/
|
|
119467
120542
|
profileId: string;
|
|
120543
|
+
/**
|
|
120544
|
+
* When these totals were last recomputed, ISO 8601 UTC. Null when they have never been computed.
|
|
120545
|
+
*/
|
|
119468
120546
|
computedAt: (string | null);
|
|
119469
120547
|
} | null);
|
|
120548
|
+
/**
|
|
120549
|
+
* 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.
|
|
120550
|
+
*/
|
|
119470
120551
|
journey: {
|
|
120552
|
+
/**
|
|
120553
|
+
* Pass back as `journeyCursor` to page further back in time. Null once the journey is exhausted.
|
|
120554
|
+
*/
|
|
119471
120555
|
cursor: (string | null);
|
|
120556
|
+
/**
|
|
120557
|
+
* This page of the journey, newest event first.
|
|
120558
|
+
*/
|
|
119472
120559
|
events: {
|
|
120560
|
+
/**
|
|
120561
|
+
* When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
|
|
120562
|
+
*/
|
|
119473
120563
|
ts: string;
|
|
120564
|
+
/**
|
|
120565
|
+
* Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
|
|
120566
|
+
*/
|
|
119474
120567
|
ref: string;
|
|
120568
|
+
/**
|
|
120569
|
+
* Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
|
|
120570
|
+
*/
|
|
119475
120571
|
url: (string | null);
|
|
120572
|
+
/**
|
|
120573
|
+
* What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
|
|
120574
|
+
*/
|
|
119476
120575
|
name: string;
|
|
120576
|
+
/**
|
|
120577
|
+
* Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
|
|
120578
|
+
*/
|
|
119477
120579
|
props: {
|
|
119478
120580
|
[k: string]: unknown;
|
|
119479
120581
|
};
|
|
120582
|
+
/**
|
|
120583
|
+
* Title of the page as the browser reported it. Null off-page.
|
|
120584
|
+
*/
|
|
119480
120585
|
title: (string | null);
|
|
120586
|
+
/**
|
|
120587
|
+
* Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
|
|
120588
|
+
*/
|
|
119481
120589
|
domain: (string | null);
|
|
120590
|
+
/**
|
|
120591
|
+
* Campaign tags and ad click carried by this event, as they were on the URL at the time.
|
|
120592
|
+
*/
|
|
119482
120593
|
source: {
|
|
120594
|
+
/**
|
|
120595
|
+
* The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
|
|
120596
|
+
*/
|
|
119483
120597
|
clickId: (string | null);
|
|
120598
|
+
/**
|
|
120599
|
+
* utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
|
|
120600
|
+
*/
|
|
119484
120601
|
utmTerm: (string | null);
|
|
120602
|
+
/**
|
|
120603
|
+
* utm_medium on the URL of this event.
|
|
120604
|
+
*/
|
|
119485
120605
|
utmMedium: (string | null);
|
|
120606
|
+
/**
|
|
120607
|
+
* utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
|
|
120608
|
+
*/
|
|
119486
120609
|
utmSource: (string | null);
|
|
120610
|
+
/**
|
|
120611
|
+
* utm_content on the URL of this event — which creative or link variant was clicked.
|
|
120612
|
+
*/
|
|
119487
120613
|
utmContent: (string | null);
|
|
120614
|
+
/**
|
|
120615
|
+
* Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
|
|
120616
|
+
*/
|
|
119488
120617
|
clickIdType: (string | null);
|
|
120618
|
+
/**
|
|
120619
|
+
* utm_campaign on the URL of this event.
|
|
120620
|
+
*/
|
|
119489
120621
|
utmCampaign: (string | null);
|
|
119490
120622
|
};
|
|
120623
|
+
/**
|
|
120624
|
+
* Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
|
|
120625
|
+
*/
|
|
119491
120626
|
country: (string | null);
|
|
119492
|
-
|
|
120627
|
+
/**
|
|
120628
|
+
* Where the person came from immediately before this event. Null on a direct arrival or off-page.
|
|
120629
|
+
*/
|
|
120630
|
+
referrer: (string | null);
|
|
120631
|
+
/**
|
|
120632
|
+
* Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
|
|
120633
|
+
*/
|
|
119493
120634
|
sessionId: (string | null);
|
|
119494
120635
|
}[];
|
|
119495
120636
|
};
|
|
120637
|
+
/**
|
|
120638
|
+
* The person themselves: their handle, how far they have come, and when they were seen.
|
|
120639
|
+
*/
|
|
119496
120640
|
profile: {
|
|
120641
|
+
/**
|
|
120642
|
+
* 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.
|
|
120643
|
+
*/
|
|
119497
120644
|
status: ("anonymous" | "identified" | "customer");
|
|
120645
|
+
/**
|
|
120646
|
+
* When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
|
|
120647
|
+
*/
|
|
119498
120648
|
createdAt: string;
|
|
120649
|
+
/**
|
|
120650
|
+
* Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
|
|
120651
|
+
*/
|
|
119499
120652
|
profileId: string;
|
|
120653
|
+
/**
|
|
120654
|
+
* Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
|
|
120655
|
+
*/
|
|
119500
120656
|
lastSeenAt: string;
|
|
120657
|
+
/**
|
|
120658
|
+
* Timestamp of the earliest event on record for this person, ISO 8601 UTC.
|
|
120659
|
+
*/
|
|
119501
120660
|
firstSeenAt: string;
|
|
119502
120661
|
};
|
|
120662
|
+
/**
|
|
120663
|
+
* 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.
|
|
120664
|
+
*/
|
|
119503
120665
|
signals: {
|
|
120666
|
+
/**
|
|
120667
|
+
* 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.
|
|
120668
|
+
*/
|
|
119504
120669
|
emails: string[];
|
|
120670
|
+
/**
|
|
120671
|
+
* Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
|
|
120672
|
+
*/
|
|
119505
120673
|
phones: string[];
|
|
120674
|
+
/**
|
|
120675
|
+
* Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
|
|
120676
|
+
*/
|
|
119506
120677
|
domains: string[];
|
|
120678
|
+
/**
|
|
120679
|
+
* 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.
|
|
120680
|
+
*/
|
|
119507
120681
|
clickIds: {
|
|
120682
|
+
/**
|
|
120683
|
+
* Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
|
|
120684
|
+
*/
|
|
119508
120685
|
type: string;
|
|
120686
|
+
/**
|
|
120687
|
+
* The click identifier itself, raw, as the network stamped it on the landing URL.
|
|
120688
|
+
*/
|
|
119509
120689
|
value: string;
|
|
119510
120690
|
}[];
|
|
119511
120691
|
};
|
|
120692
|
+
/**
|
|
120693
|
+
* 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.
|
|
120694
|
+
*/
|
|
119512
120695
|
acquisition: ({
|
|
120696
|
+
/**
|
|
120697
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
120698
|
+
*/
|
|
119513
120699
|
utmMedium: (string | null);
|
|
120700
|
+
/**
|
|
120701
|
+
* 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.
|
|
120702
|
+
*/
|
|
119514
120703
|
utmSource: (string | null);
|
|
120704
|
+
/**
|
|
120705
|
+
* 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.
|
|
120706
|
+
*/
|
|
119515
120707
|
clickIdType: (string | null);
|
|
120708
|
+
/**
|
|
120709
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
120710
|
+
*/
|
|
119516
120711
|
firstSeenAt: string;
|
|
120712
|
+
/**
|
|
120713
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
120714
|
+
*/
|
|
119517
120715
|
utmCampaign: (string | null);
|
|
119518
120716
|
} | null);
|
|
119519
120717
|
}
|
|
119520
120718
|
export interface TrackingProfilesListInput {
|
|
119521
120719
|
/**
|
|
119522
|
-
*
|
|
120720
|
+
* Email to search people by — the whole address by default, or its beginning when emailMatch is prefix. Omit to search across everyone.
|
|
119523
120721
|
*/
|
|
119524
120722
|
email?: string;
|
|
119525
120723
|
/**
|
|
@@ -119527,126 +120725,357 @@ export interface TrackingProfilesListInput {
|
|
|
119527
120725
|
*/
|
|
119528
120726
|
limit?: number;
|
|
119529
120727
|
/**
|
|
119530
|
-
*
|
|
120728
|
+
* Continue a previous page: pass the cursor that page returned. Omit to start from the most recently seen person.
|
|
119531
120729
|
*/
|
|
119532
120730
|
cursor?: string;
|
|
119533
120731
|
/**
|
|
119534
|
-
*
|
|
120732
|
+
* Keep only people at this stage — anonymous, identified or customer. Omit to get all three.
|
|
119535
120733
|
*/
|
|
119536
120734
|
status?: ("anonymous" | "identified" | "customer");
|
|
119537
120735
|
/**
|
|
119538
|
-
* How
|
|
120736
|
+
* How the email filter is matched: exact (default) compares the whole address case-insensitively, prefix matches everyone whose address starts with what you typed.
|
|
119539
120737
|
*/
|
|
119540
120738
|
emailMatch?: ("exact" | "prefix");
|
|
119541
120739
|
}
|
|
119542
120740
|
export interface TrackingProfilesListOutput {
|
|
120741
|
+
/**
|
|
120742
|
+
* Pass this back as `cursor` to fetch the next page. Null on the last page — that null is how a loop knows to stop.
|
|
120743
|
+
*/
|
|
119543
120744
|
cursor: (string | null);
|
|
120745
|
+
/**
|
|
120746
|
+
* The page of people, most recently seen first. Shorter than the requested limit on the last page.
|
|
120747
|
+
*/
|
|
119544
120748
|
profiles: {
|
|
120749
|
+
/**
|
|
120750
|
+
* 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.
|
|
120751
|
+
*/
|
|
119545
120752
|
emails: string[];
|
|
120753
|
+
/**
|
|
120754
|
+
* How far this person has come: anonymous = only a browser, identified = an email or phone is known, customer = they have paid.
|
|
120755
|
+
*/
|
|
119546
120756
|
status: ("anonymous" | "identified" | "customer");
|
|
120757
|
+
/**
|
|
120758
|
+
* Stable handle for this person. Feed it to a get, export or erase step.
|
|
120759
|
+
*/
|
|
119547
120760
|
profileId: string;
|
|
120761
|
+
/**
|
|
120762
|
+
* Timestamp of their most recent event, ISO 8601 UTC. The page is ordered by this, newest first.
|
|
120763
|
+
*/
|
|
119548
120764
|
lastSeenAt: string;
|
|
120765
|
+
/**
|
|
120766
|
+
* 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.
|
|
120767
|
+
*/
|
|
119549
120768
|
acquisition: ({
|
|
120769
|
+
/**
|
|
120770
|
+
* Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
|
|
120771
|
+
*/
|
|
119550
120772
|
utmMedium: (string | null);
|
|
120773
|
+
/**
|
|
120774
|
+
* 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.
|
|
120775
|
+
*/
|
|
119551
120776
|
utmSource: (string | null);
|
|
120777
|
+
/**
|
|
120778
|
+
* 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.
|
|
120779
|
+
*/
|
|
119552
120780
|
clickIdType: (string | null);
|
|
120781
|
+
/**
|
|
120782
|
+
* When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
|
|
120783
|
+
*/
|
|
119553
120784
|
firstSeenAt: string;
|
|
120785
|
+
/**
|
|
120786
|
+
* Campaign of that same first visit (utm_campaign). Null when untagged.
|
|
120787
|
+
*/
|
|
119554
120788
|
utmCampaign: (string | null);
|
|
119555
120789
|
} | null);
|
|
120790
|
+
/**
|
|
120791
|
+
* Timestamp of their earliest event, ISO 8601 UTC.
|
|
120792
|
+
*/
|
|
119556
120793
|
firstSeenAt: string;
|
|
119557
120794
|
}[];
|
|
119558
120795
|
}
|
|
119559
120796
|
export interface TrackingReportsAttributedJourneyInput {
|
|
120797
|
+
/**
|
|
120798
|
+
* Show only journey events at or before this instant (ISO). Omit for the whole history.
|
|
120799
|
+
*/
|
|
119560
120800
|
to?: string;
|
|
120801
|
+
/**
|
|
120802
|
+
* Show only journey events at or after this instant (ISO). Omit for the whole history.
|
|
120803
|
+
*/
|
|
119561
120804
|
from?: string;
|
|
120805
|
+
/**
|
|
120806
|
+
* Attribution model to explain the decision under; re-reads the same history, so switching it is free (default 'last_click').
|
|
120807
|
+
*/
|
|
119562
120808
|
model?: ("last_click" | "first_click");
|
|
119563
120809
|
/**
|
|
119564
120810
|
* The profile id (uuid)
|
|
119565
120811
|
*/
|
|
119566
120812
|
profileId: string;
|
|
120813
|
+
/**
|
|
120814
|
+
* How far back before the conversion a touchpoint may be credited, in days (default 30).
|
|
120815
|
+
*/
|
|
119567
120816
|
lookbackDays?: number;
|
|
119568
120817
|
}
|
|
119569
120818
|
export interface TrackingReportsAttributedJourneyOutput {
|
|
120819
|
+
/**
|
|
120820
|
+
* What this person actually did, in order.
|
|
120821
|
+
*/
|
|
119570
120822
|
journey: {
|
|
120823
|
+
/**
|
|
120824
|
+
* Every tracked event for this person inside the requested window, oldest first.
|
|
120825
|
+
*/
|
|
119571
120826
|
events: {
|
|
120827
|
+
/**
|
|
120828
|
+
* When the event happened (ISO 8601, UTC). Events are ordered oldest first.
|
|
120829
|
+
*/
|
|
119572
120830
|
ts: string;
|
|
120831
|
+
/**
|
|
120832
|
+
* Handle for this event within the journey; `decisions[].winnerRef` points back at one of these to name the winning touchpoint.
|
|
120833
|
+
*/
|
|
119573
120834
|
ref: string;
|
|
120835
|
+
/**
|
|
120836
|
+
* Page address the event fired on. Free text from the customer site, so it can carry personal data.
|
|
120837
|
+
*/
|
|
119574
120838
|
url: (string | null);
|
|
120839
|
+
/**
|
|
120840
|
+
* Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
|
|
120841
|
+
*/
|
|
119575
120842
|
name: string;
|
|
120843
|
+
/**
|
|
120844
|
+
* Custom properties the site attached to this event. Shape is the customer's, so it can carry anything, personal data included.
|
|
120845
|
+
*/
|
|
119576
120846
|
props: {
|
|
119577
120847
|
[k: string]: unknown;
|
|
119578
120848
|
};
|
|
120849
|
+
/**
|
|
120850
|
+
* Document title of that page. Free text from the customer site, so it can carry personal data.
|
|
120851
|
+
*/
|
|
119579
120852
|
title: (string | null);
|
|
120853
|
+
/**
|
|
120854
|
+
* Site the event came from; null when the tracker could not determine one.
|
|
120855
|
+
*/
|
|
119580
120856
|
domain: (string | null);
|
|
120857
|
+
/**
|
|
120858
|
+
* Where this event's visit came from, as read off the landing URL. Every field is null when the visit carried nothing.
|
|
120859
|
+
*/
|
|
119581
120860
|
source: {
|
|
120861
|
+
/**
|
|
120862
|
+
* The click id value itself. Identifies one ad click by this person, so treat it as personal data.
|
|
120863
|
+
*/
|
|
119582
120864
|
clickId: (string | null);
|
|
120865
|
+
/**
|
|
120866
|
+
* utm_term of the landing URL, the paid keyword; null when absent.
|
|
120867
|
+
*/
|
|
119583
120868
|
utmTerm: (string | null);
|
|
120869
|
+
/**
|
|
120870
|
+
* utm_medium of the landing URL; null when absent.
|
|
120871
|
+
*/
|
|
119584
120872
|
utmMedium: (string | null);
|
|
120873
|
+
/**
|
|
120874
|
+
* utm_source of the landing URL; null when absent.
|
|
120875
|
+
*/
|
|
119585
120876
|
utmSource: (string | null);
|
|
120877
|
+
/**
|
|
120878
|
+
* utm_content of the landing URL, the creative variant; null when absent.
|
|
120879
|
+
*/
|
|
119586
120880
|
utmContent: (string | null);
|
|
120881
|
+
/**
|
|
120882
|
+
* Which ad-network click id was present, e.g. 'gclid'; null when the visit carried none.
|
|
120883
|
+
*/
|
|
119587
120884
|
clickIdType: (string | null);
|
|
120885
|
+
/**
|
|
120886
|
+
* utm_campaign of the landing URL; null when absent.
|
|
120887
|
+
*/
|
|
119588
120888
|
utmCampaign: (string | null);
|
|
119589
120889
|
};
|
|
120890
|
+
/**
|
|
120891
|
+
* Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
|
|
120892
|
+
*/
|
|
119590
120893
|
country: (string | null);
|
|
120894
|
+
/**
|
|
120895
|
+
* Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
|
|
120896
|
+
*/
|
|
119591
120897
|
referrer: (string | null);
|
|
120898
|
+
/**
|
|
120899
|
+
* Visit this event belongs to; events sharing one happened in the same sitting. Null when no session could be established.
|
|
120900
|
+
*/
|
|
119592
120901
|
sessionId: (string | null);
|
|
119593
120902
|
}[];
|
|
119594
120903
|
};
|
|
119595
|
-
|
|
119596
|
-
|
|
119597
|
-
|
|
119598
|
-
|
|
119599
|
-
|
|
119600
|
-
|
|
119601
|
-
|
|
119602
|
-
refundedMinor: number;
|
|
119603
|
-
}[];
|
|
119604
|
-
winnerRef: (string | null);
|
|
119605
|
-
conversionTs: string;
|
|
119606
|
-
lookbackDays: number;
|
|
119607
|
-
winningTouchpoint: ({
|
|
119608
|
-
ts: string;
|
|
119609
|
-
channel: ("paid" | "organic" | "direct" | "email");
|
|
119610
|
-
utmMedium: (string | null);
|
|
119611
|
-
utmSource: (string | null);
|
|
119612
|
-
clickIdType: (string | null);
|
|
119613
|
-
utmCampaign: (string | null);
|
|
119614
|
-
} | null);
|
|
119615
|
-
}[];
|
|
120904
|
+
/**
|
|
120905
|
+
* 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.
|
|
120906
|
+
*/
|
|
120907
|
+
decisions: TrackingReportsAttributedJourneyOutputItems[];
|
|
120908
|
+
/**
|
|
120909
|
+
* The person this journey belongs to, echoed back from the request.
|
|
120910
|
+
*/
|
|
119616
120911
|
profileId: string;
|
|
120912
|
+
/**
|
|
120913
|
+
* 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.
|
|
120914
|
+
*/
|
|
120915
|
+
originatingDecision: (TrackingReportsAttributedJourneyOutputItems | null);
|
|
120916
|
+
}
|
|
120917
|
+
export interface TrackingReportsAttributedJourneyOutputItems {
|
|
120918
|
+
/**
|
|
120919
|
+
* Attribution model the winner was picked under, echoed back from the request.
|
|
120920
|
+
*/
|
|
120921
|
+
model: ("last_click" | "first_click");
|
|
120922
|
+
/**
|
|
120923
|
+
* Why this touchpoint won, or why nothing did, in a sentence a person can read.
|
|
120924
|
+
*/
|
|
120925
|
+
reason: string;
|
|
120926
|
+
/**
|
|
120927
|
+
* Revenue of that conversion, one row per currency.
|
|
120928
|
+
*/
|
|
120929
|
+
revenue: {
|
|
120930
|
+
/**
|
|
120931
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
120932
|
+
*/
|
|
120933
|
+
currency: string;
|
|
120934
|
+
/**
|
|
120935
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
120936
|
+
*/
|
|
120937
|
+
netMinor: number;
|
|
120938
|
+
/**
|
|
120939
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
120940
|
+
*/
|
|
120941
|
+
grossMinor: number;
|
|
120942
|
+
/**
|
|
120943
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
120944
|
+
*/
|
|
120945
|
+
refundedMinor: number;
|
|
120946
|
+
}[];
|
|
120947
|
+
/**
|
|
120948
|
+
* `journey.events[].ref` of the touchpoint that won the credit. Null when nothing inside the window qualified.
|
|
120949
|
+
*/
|
|
120950
|
+
winnerRef: (string | null);
|
|
120951
|
+
/**
|
|
120952
|
+
* When the conversion this decision explains happened (ISO 8601, UTC).
|
|
120953
|
+
*/
|
|
120954
|
+
conversionTs: string;
|
|
120955
|
+
/**
|
|
120956
|
+
* How far back before `conversionTs` a touchpoint was allowed to be credited, in days; echoed back.
|
|
120957
|
+
*/
|
|
120958
|
+
lookbackDays: number;
|
|
120959
|
+
/**
|
|
120960
|
+
* The winning touchpoint spelled out, so a reader need not resolve `winnerRef`. Null exactly when `winnerRef` is null.
|
|
120961
|
+
*/
|
|
120962
|
+
winningTouchpoint: ({
|
|
120963
|
+
/**
|
|
120964
|
+
* When the winning touchpoint happened (ISO 8601, UTC).
|
|
120965
|
+
*/
|
|
120966
|
+
ts: string;
|
|
120967
|
+
/**
|
|
120968
|
+
* Channel the winning touchpoint belongs to.
|
|
120969
|
+
*/
|
|
120970
|
+
channel: ("paid" | "organic" | "direct" | "email");
|
|
120971
|
+
/**
|
|
120972
|
+
* utm_medium of the winning touchpoint; null when it carried none.
|
|
120973
|
+
*/
|
|
120974
|
+
utmMedium: (string | null);
|
|
120975
|
+
/**
|
|
120976
|
+
* utm_source of the winning touchpoint; null when it carried none.
|
|
120977
|
+
*/
|
|
120978
|
+
utmSource: (string | null);
|
|
120979
|
+
/**
|
|
120980
|
+
* Campaign id carried by our own `_lt_campaign` landing-URL parameter; null when the visit carried none.
|
|
120981
|
+
*/
|
|
120982
|
+
ltCampaign?: (string | null);
|
|
120983
|
+
/**
|
|
120984
|
+
* Ad-network click id present on the winning touchpoint, e.g. 'gclid'; null when it carried none.
|
|
120985
|
+
*/
|
|
120986
|
+
clickIdType: (string | null);
|
|
120987
|
+
/**
|
|
120988
|
+
* utm_campaign of the winning touchpoint; null when it carried none.
|
|
120989
|
+
*/
|
|
120990
|
+
utmCampaign: (string | null);
|
|
120991
|
+
} | null);
|
|
119617
120992
|
}
|
|
119618
120993
|
export interface TrackingReportsEventVolumeInput {
|
|
119619
|
-
|
|
119620
|
-
|
|
120994
|
+
/**
|
|
120995
|
+
* End of the range to count, inclusive (ISO 8601). Optional — defaults to the moment of the call.
|
|
120996
|
+
*/
|
|
120997
|
+
to?: string;
|
|
120998
|
+
/**
|
|
120999
|
+
* Start of the range to count, inclusive (ISO 8601). Optional — defaults to 30 days back, the start of that UTC day.
|
|
121000
|
+
*/
|
|
121001
|
+
from?: string;
|
|
121002
|
+
/**
|
|
121003
|
+
* Count only this site. Omit to count every site the product sends from.
|
|
121004
|
+
*/
|
|
119621
121005
|
domain?: string;
|
|
119622
121006
|
}
|
|
119623
121007
|
export interface TrackingReportsEventVolumeOutput {
|
|
121008
|
+
/**
|
|
121009
|
+
* End of the range the figures cover, echoed back (ISO 8601, UTC).
|
|
121010
|
+
*/
|
|
119624
121011
|
to: string;
|
|
121012
|
+
/**
|
|
121013
|
+
* Start of the range the figures cover, echoed back (ISO 8601, UTC).
|
|
121014
|
+
*/
|
|
119625
121015
|
from: string;
|
|
121016
|
+
/**
|
|
121017
|
+
* Site the figures were restricted to; null when every site of the product is included.
|
|
121018
|
+
*/
|
|
119626
121019
|
domain: (string | null);
|
|
121020
|
+
/**
|
|
121021
|
+
* When this report was computed (ISO 8601, UTC).
|
|
121022
|
+
*/
|
|
119627
121023
|
computedAt: string;
|
|
121024
|
+
/**
|
|
121025
|
+
* 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.
|
|
121026
|
+
*/
|
|
119628
121027
|
dataQuality: {
|
|
121028
|
+
/**
|
|
121029
|
+
* Fraction of `totalEvents` (0..1) that came from sites running no consent banner, where nobody was ever asked.
|
|
121030
|
+
*/
|
|
119629
121031
|
noBannerShare: number;
|
|
121032
|
+
/**
|
|
121033
|
+
* Events from sites with no consent banner. Kept apart from `cookielessEvents` on purpose: nobody refused here, nobody was asked.
|
|
121034
|
+
*/
|
|
119630
121035
|
noBannerEvents: number;
|
|
121036
|
+
/**
|
|
121037
|
+
* How many UTC days the range spans; each one re-counts a returning declining visitor.
|
|
121038
|
+
*/
|
|
119631
121039
|
utcDaysInRange: number;
|
|
121040
|
+
/**
|
|
121041
|
+
* Fraction of `totalEvents` (0..1) that came from visitors who declined statistics consent.
|
|
121042
|
+
*/
|
|
119632
121043
|
cookielessShare: number;
|
|
121044
|
+
/**
|
|
121045
|
+
* Events from visitors who declined; no cookie was written and no identifier sent.
|
|
121046
|
+
*/
|
|
119633
121047
|
cookielessEvents: number;
|
|
121048
|
+
/**
|
|
121049
|
+
* 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.
|
|
121050
|
+
*/
|
|
119634
121051
|
identifiedEvents: number;
|
|
121052
|
+
/**
|
|
121053
|
+
* True when `visitorsDeduplicatedPerUtcDay` over-counts for this range: the range spans more than one UTC day and there is declining traffic in it.
|
|
121054
|
+
*/
|
|
119635
121055
|
visitorsOverstated: boolean;
|
|
121056
|
+
/**
|
|
121057
|
+
* Events from visitors who granted statistics consent.
|
|
121058
|
+
*/
|
|
119636
121059
|
consentGrantedEvents: number;
|
|
119637
121060
|
};
|
|
121061
|
+
/**
|
|
121062
|
+
* How many events arrived in the range, across every consent state.
|
|
121063
|
+
*/
|
|
119638
121064
|
totalEvents: number;
|
|
121065
|
+
/**
|
|
121066
|
+
* 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.
|
|
121067
|
+
*/
|
|
119639
121068
|
visitorsDeduplicatedPerUtcDay: number;
|
|
119640
121069
|
}
|
|
119641
121070
|
export interface TrackingReportsRevenueBySourceInput {
|
|
119642
121071
|
/**
|
|
119643
|
-
* Cohort window end (ISO)
|
|
121072
|
+
* Cohort window end (ISO). Optional — defaults to the moment of the call.
|
|
119644
121073
|
*/
|
|
119645
|
-
to
|
|
121074
|
+
to?: string;
|
|
119646
121075
|
/**
|
|
119647
|
-
* Cohort window start (ISO); selects conversions by subscription start
|
|
121076
|
+
* Cohort window start (ISO); selects conversions by subscription start. Optional — defaults to 30 days back, the start of that UTC day.
|
|
119648
121077
|
*/
|
|
119649
|
-
from
|
|
121078
|
+
from?: string;
|
|
119650
121079
|
/**
|
|
119651
121080
|
* Attribution model
|
|
119652
121081
|
*/
|
|
@@ -119661,53 +121090,149 @@ export interface TrackingReportsRevenueBySourceInput {
|
|
|
119661
121090
|
lookbackDays?: number;
|
|
119662
121091
|
}
|
|
119663
121092
|
export interface TrackingReportsRevenueBySourceOutput {
|
|
121093
|
+
/**
|
|
121094
|
+
* End of the cohort window the figures cover, echoed back (ISO 8601, UTC).
|
|
121095
|
+
*/
|
|
119664
121096
|
to: string;
|
|
121097
|
+
/**
|
|
121098
|
+
* Start of the cohort window the figures cover, echoed back (ISO 8601, UTC).
|
|
121099
|
+
*/
|
|
119665
121100
|
from: string;
|
|
121101
|
+
/**
|
|
121102
|
+
* Attribution model the credit was assigned under, echoed back. Pass the same value to `tracking_reports_source_people` to drill into a row.
|
|
121103
|
+
*/
|
|
119666
121104
|
model: ("last_click" | "first_click");
|
|
121105
|
+
/**
|
|
121106
|
+
* Site touchpoints were restricted to; null when every site of the product was considered.
|
|
121107
|
+
*/
|
|
119667
121108
|
domain: (string | null);
|
|
121109
|
+
/**
|
|
121110
|
+
* Every channel plus `unattributed`. This is the whole window, not the attributed part of it.
|
|
121111
|
+
*/
|
|
119668
121112
|
totals: {
|
|
121113
|
+
/**
|
|
121114
|
+
* Revenue over every channel plus `unattributed`, one row per currency.
|
|
121115
|
+
*/
|
|
119669
121116
|
revenue: TrackingReportsRevenueBySourceOutputItems[];
|
|
121117
|
+
/**
|
|
121118
|
+
* Distinct paying people over every channel plus `unattributed`.
|
|
121119
|
+
*/
|
|
119670
121120
|
customers: number;
|
|
119671
121121
|
};
|
|
121122
|
+
/**
|
|
121123
|
+
* One row per channel that earned revenue in the window. Channels with none are omitted.
|
|
121124
|
+
*/
|
|
119672
121125
|
channels: {
|
|
121126
|
+
/**
|
|
121127
|
+
* Which acquisition channel this row aggregates.
|
|
121128
|
+
*/
|
|
119673
121129
|
channel: ("paid" | "organic" | "direct" | "email");
|
|
121130
|
+
/**
|
|
121131
|
+
* 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.
|
|
121132
|
+
*/
|
|
119674
121133
|
revenue: TrackingReportsRevenueBySourceOutputItems[];
|
|
121134
|
+
/**
|
|
121135
|
+
* Distinct paying people credited to this channel.
|
|
121136
|
+
*/
|
|
119675
121137
|
customers: number;
|
|
121138
|
+
/**
|
|
121139
|
+
* The channel split by UTM combination. Each row is a drill-down target for `tracking_reports_source_people`.
|
|
121140
|
+
*/
|
|
119676
121141
|
utmBreakdown: {
|
|
121142
|
+
/**
|
|
121143
|
+
* Revenue credited to this UTM combination, one row per currency.
|
|
121144
|
+
*/
|
|
119677
121145
|
revenue: TrackingReportsRevenueBySourceOutputItems[];
|
|
121146
|
+
/**
|
|
121147
|
+
* Distinct paying people credited to this UTM combination.
|
|
121148
|
+
*/
|
|
119678
121149
|
customers: number;
|
|
121150
|
+
/**
|
|
121151
|
+
* utm_medium of this row; null when the visit carried none.
|
|
121152
|
+
*/
|
|
119679
121153
|
utmMedium: (string | null);
|
|
121154
|
+
/**
|
|
121155
|
+
* utm_source of this row; null when the visit carried none.
|
|
121156
|
+
*/
|
|
119680
121157
|
utmSource: (string | null);
|
|
121158
|
+
/**
|
|
121159
|
+
* Ad-network click id present on the visit, e.g. 'gclid'; null when it carried none.
|
|
121160
|
+
*/
|
|
119681
121161
|
clickIdType: (string | null);
|
|
121162
|
+
/**
|
|
121163
|
+
* utm_campaign of this row; null when the visit carried none.
|
|
121164
|
+
*/
|
|
119682
121165
|
utmCampaign: (string | null);
|
|
119683
121166
|
}[];
|
|
119684
121167
|
}[];
|
|
121168
|
+
/**
|
|
121169
|
+
* Fraction of paying people (0..1) a touchpoint could be found for: attributed customers over `totals.customers`. Count-based, never revenue-weighted.
|
|
121170
|
+
*/
|
|
119685
121171
|
matchRate: number;
|
|
121172
|
+
/**
|
|
121173
|
+
* When this report was computed (ISO 8601, UTC).
|
|
121174
|
+
*/
|
|
119686
121175
|
computedAt: string;
|
|
121176
|
+
/**
|
|
121177
|
+
* How far back before a conversion a touchpoint was allowed to be credited, in days; echoed back.
|
|
121178
|
+
*/
|
|
119687
121179
|
lookbackDays: number;
|
|
121180
|
+
/**
|
|
121181
|
+
* Revenue that reached no channel — kept as its own row so the channel rows are never quietly inflated to cover it.
|
|
121182
|
+
*/
|
|
119688
121183
|
unattributed: {
|
|
121184
|
+
/**
|
|
121185
|
+
* Revenue no touchpoint could be credited for, one row per currency.
|
|
121186
|
+
*/
|
|
119689
121187
|
revenue: TrackingReportsRevenueBySourceOutputItems[];
|
|
121188
|
+
/**
|
|
121189
|
+
* Distinct paying people no touchpoint could be credited for.
|
|
121190
|
+
*/
|
|
119690
121191
|
customers: number;
|
|
119691
121192
|
};
|
|
119692
121193
|
}
|
|
119693
121194
|
export interface TrackingReportsRevenueBySourceOutputItems {
|
|
121195
|
+
/**
|
|
121196
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
121197
|
+
*/
|
|
119694
121198
|
currency: string;
|
|
121199
|
+
/**
|
|
121200
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
121201
|
+
*/
|
|
119695
121202
|
netMinor: number;
|
|
121203
|
+
/**
|
|
121204
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
121205
|
+
*/
|
|
119696
121206
|
grossMinor: number;
|
|
121207
|
+
/**
|
|
121208
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
121209
|
+
*/
|
|
119697
121210
|
refundedMinor: number;
|
|
119698
121211
|
}
|
|
119699
121212
|
export interface TrackingReportsSourcePeopleInput {
|
|
119700
|
-
|
|
119701
|
-
|
|
121213
|
+
/**
|
|
121214
|
+
* Cohort window end (ISO); must match the report this row came from. Optional — defaults to the moment of the call.
|
|
121215
|
+
*/
|
|
121216
|
+
to?: string;
|
|
121217
|
+
/**
|
|
121218
|
+
* Cohort window start (ISO); must match the report this row came from. Optional — defaults to 30 days back, the start of that UTC day.
|
|
121219
|
+
*/
|
|
121220
|
+
from?: string;
|
|
119702
121221
|
/**
|
|
119703
121222
|
* People per page (default 50, max 200)
|
|
119704
121223
|
*/
|
|
119705
121224
|
limit?: number;
|
|
121225
|
+
/**
|
|
121226
|
+
* Attribution model to credit the touchpoint under; must match the report this row came from (default 'last_click').
|
|
121227
|
+
*/
|
|
119706
121228
|
model?: ("last_click" | "first_click");
|
|
119707
121229
|
/**
|
|
119708
121230
|
* Opaque keyset cursor from a previous page
|
|
119709
121231
|
*/
|
|
119710
121232
|
cursor?: string;
|
|
121233
|
+
/**
|
|
121234
|
+
* Only consider touchpoints on this domain; must match the report this row came from. Omit for no restriction.
|
|
121235
|
+
*/
|
|
119711
121236
|
domain?: string;
|
|
119712
121237
|
/**
|
|
119713
121238
|
* Channel to drill into
|
|
@@ -119717,26 +121242,71 @@ export interface TrackingReportsSourcePeopleInput {
|
|
|
119717
121242
|
* Comma-separated dimension names (utmSource,utmMedium,utmCampaign,clickIdType) that must be IS NULL
|
|
119718
121243
|
*/
|
|
119719
121244
|
utmNulls?: string;
|
|
121245
|
+
/**
|
|
121246
|
+
* utm_medium of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
121247
|
+
*/
|
|
119720
121248
|
utmMedium?: string;
|
|
121249
|
+
/**
|
|
121250
|
+
* utm_source of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
121251
|
+
*/
|
|
119721
121252
|
utmSource?: string;
|
|
119722
121253
|
/**
|
|
119723
121254
|
* 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.
|
|
119724
121255
|
*/
|
|
119725
121256
|
clickIdType?: string;
|
|
121257
|
+
/**
|
|
121258
|
+
* utm_campaign of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
|
|
121259
|
+
*/
|
|
119726
121260
|
utmCampaign?: string;
|
|
121261
|
+
/**
|
|
121262
|
+
* How far back before a conversion a touchpoint may be credited, in days; must match the report this row came from (default 30).
|
|
121263
|
+
*/
|
|
119727
121264
|
lookbackDays?: number;
|
|
119728
121265
|
}
|
|
119729
121266
|
export interface TrackingReportsSourcePeopleOutput {
|
|
121267
|
+
/**
|
|
121268
|
+
* Pass back as `cursor` for the next page. Null on the last page.
|
|
121269
|
+
*/
|
|
119730
121270
|
cursor: (string | null);
|
|
121271
|
+
/**
|
|
121272
|
+
* The page of people behind the requested row, ordered by the keyset the cursor walks.
|
|
121273
|
+
*/
|
|
119731
121274
|
people: {
|
|
121275
|
+
/**
|
|
121276
|
+
* Where this person stands in their subscription lifecycle, e.g. active or churned.
|
|
121277
|
+
*/
|
|
119732
121278
|
status: string;
|
|
121279
|
+
/**
|
|
121280
|
+
* Identifier of this person; pass it to `tracking_reports_attributed_journey` to see why they were credited here.
|
|
121281
|
+
*/
|
|
119733
121282
|
profileId: string;
|
|
121283
|
+
/**
|
|
121284
|
+
* Most recent tracked activity for this person (ISO 8601, UTC); null when none was recorded.
|
|
121285
|
+
*/
|
|
119734
121286
|
lastSeenAt: (string | null);
|
|
121287
|
+
/**
|
|
121288
|
+
* Earliest tracked activity for this person (ISO 8601, UTC); null when none was recorded.
|
|
121289
|
+
*/
|
|
119735
121290
|
firstSeenAt: (string | null);
|
|
121291
|
+
/**
|
|
121292
|
+
* Lifetime revenue credited to this person under the requested model, one row per currency.
|
|
121293
|
+
*/
|
|
119736
121294
|
attributedRevenue: {
|
|
121295
|
+
/**
|
|
121296
|
+
* ISO 4217 code the amounts below are denominated in, e.g. EUR.
|
|
121297
|
+
*/
|
|
119737
121298
|
currency: string;
|
|
121299
|
+
/**
|
|
121300
|
+
* `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
|
|
121301
|
+
*/
|
|
119738
121302
|
netMinor: number;
|
|
121303
|
+
/**
|
|
121304
|
+
* Billed amount before refunds, in minor units of `currency` (cents for EUR).
|
|
121305
|
+
*/
|
|
119739
121306
|
grossMinor: number;
|
|
121307
|
+
/**
|
|
121308
|
+
* Amount refunded out of `grossMinor`, in minor units of `currency`.
|
|
121309
|
+
*/
|
|
119740
121310
|
refundedMinor: number;
|
|
119741
121311
|
}[];
|
|
119742
121312
|
}[];
|
|
@@ -119744,9 +121314,21 @@ export interface TrackingReportsSourcePeopleOutput {
|
|
|
119744
121314
|
export interface TrackingSnippetsGetInput {
|
|
119745
121315
|
}
|
|
119746
121316
|
export interface TrackingSnippetsGetOutput {
|
|
121317
|
+
/**
|
|
121318
|
+
* Tracking host the snippet sends to — the customer-facing domain events and the bundle are served from.
|
|
121319
|
+
*/
|
|
119747
121320
|
host: string;
|
|
121321
|
+
/**
|
|
121322
|
+
* The tag to paste into every page, verbatim, before </head>. Includes the consent-aware bootstrap; install it unconditionally rather than behind a consent gate.
|
|
121323
|
+
*/
|
|
119748
121324
|
snippet: string;
|
|
121325
|
+
/**
|
|
121326
|
+
* Absolute URL of the tracker bundle the snippet loads; already points at this product's own tracking host.
|
|
121327
|
+
*/
|
|
119749
121328
|
scriptUrl: string;
|
|
121329
|
+
/**
|
|
121330
|
+
* 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.
|
|
121331
|
+
*/
|
|
119750
121332
|
minimalSnippet: string;
|
|
119751
121333
|
}
|
|
119752
121334
|
export interface UsersApikeysCreateInput {
|