@zernio/node 0.2.778 → 0.2.780

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.
@@ -724,9 +724,35 @@ export type AdKeyword = {
724
724
  status?: 'active' | 'paused';
725
725
  negative?: boolean;
726
726
  /**
727
- * Google Quality Score, 1-10. Null when unrated.
727
+ * Deprecated, use `quality.score`. Google Quality Score, 1-10. Null when unrated.
728
728
  */
729
729
  qualityScore?: (number) | null;
730
+ /**
731
+ * Google Quality Score and the three component ratings behind it
732
+ * (`ad_group_criterion.quality_info`). Every field is null until Google has rated the
733
+ * keyword: a keyword with too little traffic is unrated, and negatives are never rated.
734
+ * Google's own UNKNOWN / UNSPECIFIED buckets are reported as null so "unrated" has a
735
+ * single representation.
736
+ *
737
+ */
738
+ quality?: {
739
+ /**
740
+ * Quality Score, 1-10.
741
+ */
742
+ score?: (number) | null;
743
+ /**
744
+ * How the click-through rate compares with other ads in the same position (`search_predicted_ctr`).
745
+ */
746
+ expectedCtr?: ('BELOW_AVERAGE' | 'AVERAGE' | 'ABOVE_AVERAGE') | null;
747
+ /**
748
+ * How closely the ad matches the intent behind the search (`creative_quality_score`).
749
+ */
750
+ adRelevance?: ('BELOW_AVERAGE' | 'AVERAGE' | 'ABOVE_AVERAGE') | null;
751
+ /**
752
+ * How relevant and useful the landing page is to people who click (`post_click_quality_score`).
753
+ */
754
+ landingPageExperience?: ('BELOW_AVERAGE' | 'AVERAGE' | 'ABOVE_AVERAGE') | null;
755
+ };
730
756
  syncedAt?: (string) | null;
731
757
  /**
732
758
  * Trailing 30-day window. Null on rows synced before the metrics columns existed (re-synced on the keyword's next weekly sweep).
@@ -757,6 +783,21 @@ export type matchType = 'exact' | 'phrase' | 'broad' | 'unknown';
757
783
 
758
784
  export type status = 'active' | 'paused';
759
785
 
786
+ /**
787
+ * How the click-through rate compares with other ads in the same position (`search_predicted_ctr`).
788
+ */
789
+ export type expectedCtr = 'BELOW_AVERAGE' | 'AVERAGE' | 'ABOVE_AVERAGE';
790
+
791
+ /**
792
+ * How closely the ad matches the intent behind the search (`creative_quality_score`).
793
+ */
794
+ export type adRelevance = 'BELOW_AVERAGE' | 'AVERAGE' | 'ABOVE_AVERAGE';
795
+
796
+ /**
797
+ * How relevant and useful the landing page is to people who click (`post_click_quality_score`).
798
+ */
799
+ export type landingPageExperience = 'BELOW_AVERAGE' | 'AVERAGE' | 'ABOVE_AVERAGE';
800
+
760
801
  export type AdMetrics = {
761
802
  spend?: number;
762
803
  impressions?: number;
@@ -1048,6 +1089,35 @@ export type AdPromotedObject = {
1048
1089
  */
1049
1090
  export type AdReviewStatus = 'in_review' | 'approved' | 'rejected' | 'with_issues';
1050
1091
 
1092
+ /**
1093
+ * One ad schedule window as Google stores it. Half-open: it is exclusive of the end minute, so 09:00-12:00 and 12:00-17:00 are adjacent, not overlapping.
1094
+ */
1095
+ export type AdScheduleWindow = {
1096
+ /**
1097
+ * Google campaign criterion id. Changes whenever the window is rewritten, because Google cannot edit a schedule in place.
1098
+ */
1099
+ criterionId?: string;
1100
+ resourceName?: string;
1101
+ dayOfWeek?: 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY';
1102
+ startHour?: number;
1103
+ startMinute?: 0 | 15 | 30 | 45;
1104
+ /**
1105
+ * 24 means midnight at the end of the day.
1106
+ */
1107
+ endHour?: number;
1108
+ endMinute?: 0 | 15 | 30 | 45;
1109
+ /**
1110
+ * Bid adjustment for this window, 0.1-10.0. Null when the window runs at the campaign bid.
1111
+ */
1112
+ bidModifier?: (number) | null;
1113
+ };
1114
+
1115
+ export type dayOfWeek = 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY';
1116
+
1117
+ export type startMinute = 0 | 15 | 30 | 45;
1118
+
1119
+ export type endMinute = 0 | 15 | 30 | 45;
1120
+
1051
1121
  export type AdsListResponse = {
1052
1122
  ads?: Array<Ad>;
1053
1123
  pagination?: Pagination;
@@ -33065,6 +33135,134 @@ export type UpdateAdCampaignStatusError = (unknown | {
33065
33135
  error?: string;
33066
33136
  });
33067
33137
 
33138
+ export type GetCampaignAdScheduleData = {
33139
+ path: {
33140
+ /**
33141
+ * Numeric Google platform campaign id.
33142
+ */
33143
+ campaignId: string;
33144
+ };
33145
+ query?: {
33146
+ /**
33147
+ * Start of an explicit performance range (YYYY-MM-DD). Use together with toDate.
33148
+ */
33149
+ fromDate?: string;
33150
+ /**
33151
+ * Also return delivery by day of week and by hour. Costs one extra Google call.
33152
+ */
33153
+ includePerformance?: boolean;
33154
+ /**
33155
+ * Disambiguates the campaign id when the connection spans platforms.
33156
+ */
33157
+ platform?: 'google';
33158
+ /**
33159
+ * End of an explicit performance range (YYYY-MM-DD). Must be on or after fromDate.
33160
+ */
33161
+ toDate?: string;
33162
+ /**
33163
+ * Trailing window for the performance split. Ignored when fromDate and toDate are both given.
33164
+ */
33165
+ windowDays?: number;
33166
+ };
33167
+ };
33168
+
33169
+ export type GetCampaignAdScheduleResponse = ({
33170
+ campaignId?: string;
33171
+ schedule?: Array<AdScheduleWindow>;
33172
+ /**
33173
+ * True when the campaign carries no ad schedule at all, so it can serve at any time.
33174
+ */
33175
+ servesAroundTheClock?: boolean;
33176
+ cachedAt?: (string) | null;
33177
+ /**
33178
+ * True when a quota-exhausted read served the last-good copy.
33179
+ */
33180
+ stale?: boolean;
33181
+ /**
33182
+ * Only present when includePerformance=true.
33183
+ */
33184
+ performance?: {
33185
+ /**
33186
+ * The trailing window used, or null when an explicit fromDate/toDate range was given.
33187
+ */
33188
+ windowDays?: (number) | null;
33189
+ /**
33190
+ * One entry per day that delivered, Monday first.
33191
+ */
33192
+ byDayOfWeek?: Array<{
33193
+ dayOfWeek?: 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY';
33194
+ impressions?: number;
33195
+ clicks?: number;
33196
+ /**
33197
+ * Account currency, not USD-normalized.
33198
+ */
33199
+ cost?: number;
33200
+ conversions?: number;
33201
+ }>;
33202
+ /**
33203
+ * One entry per hour that delivered, 0-23 in the account time zone.
33204
+ */
33205
+ byHour?: Array<{
33206
+ hour?: number;
33207
+ impressions?: number;
33208
+ clicks?: number;
33209
+ /**
33210
+ * Account currency, not USD-normalized.
33211
+ */
33212
+ cost?: number;
33213
+ conversions?: number;
33214
+ }>;
33215
+ };
33216
+ });
33217
+
33218
+ export type GetCampaignAdScheduleError = (ErrorResponse | {
33219
+ error?: string;
33220
+ } | unknown);
33221
+
33222
+ export type UpdateCampaignAdScheduleData = {
33223
+ body: {
33224
+ /**
33225
+ * The complete set of windows. Required, so clearing the schedule is always deliberate rather than an omission.
33226
+ */
33227
+ schedule: Array<{
33228
+ dayOfWeek: 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY';
33229
+ startHour: number;
33230
+ /**
33231
+ * Quarter-hours only.
33232
+ */
33233
+ startMinute?: 0 | 15 | 30 | 45;
33234
+ /**
33235
+ * 24 means midnight at the end of the day.
33236
+ */
33237
+ endHour: number;
33238
+ /**
33239
+ * Quarter-hours only. Must be 0 when endHour is 24.
33240
+ */
33241
+ endMinute?: 0 | 15 | 30 | 45;
33242
+ /**
33243
+ * Bid adjustment for this window. Null runs it at the campaign bid.
33244
+ */
33245
+ bidModifier?: (number) | null;
33246
+ }>;
33247
+ };
33248
+ path: {
33249
+ /**
33250
+ * Numeric Google platform campaign id.
33251
+ */
33252
+ campaignId: string;
33253
+ };
33254
+ };
33255
+
33256
+ export type UpdateCampaignAdScheduleResponse = ({
33257
+ campaignId?: string;
33258
+ schedule?: Array<AdScheduleWindow>;
33259
+ servesAroundTheClock?: boolean;
33260
+ });
33261
+
33262
+ export type UpdateCampaignAdScheduleError = (ErrorResponse | {
33263
+ error?: string;
33264
+ } | unknown);
33265
+
33068
33266
  export type GetCampaignBiddingData = {
33069
33267
  path: {
33070
33268
  /**
@@ -37612,6 +37810,27 @@ export type BoostPostData = {
37612
37810
  *
37613
37811
  */
37614
37812
  sparkAuthCode?: string;
37813
+ /**
37814
+ * TikTok-only on this endpoint. The pixel a Website Conversion ad group
37815
+ * optimizes toward, so a Spark Ad built from an existing organic post can
37816
+ * optimize for a conversion instead of only engagement or traffic. Required
37817
+ * when `goal` is `conversions`; ignored on every other goal, because only a
37818
+ * WEB_CONVERSIONS ad group accepts these fields.
37819
+ *
37820
+ * Combine freely with `platformPostId` + `sparkAuthCode`: the pixel lives on
37821
+ * the ad group and the Spark item on the creative, so they never conflict.
37822
+ *
37823
+ */
37824
+ promotedObject?: {
37825
+ /**
37826
+ * TikTok Pixel. Either the numeric pixel id or the alphanumeric pixel code from Events Manager, which is resolved for you.
37827
+ */
37828
+ pixelId?: string;
37829
+ /**
37830
+ * Optimization event, as a TikTok optimization_event code (e.g. ON_WEB_ORDER, SHOPPING, FORM) or the exact event name shown in Events Manager, which is resolved to its code. Omit to let TikTok optimize for the ad group default.
37831
+ */
37832
+ customEventType?: string;
37833
+ };
37615
37834
  /**
37616
37835
  * Legal entity that benefits from the ad. Required when targeting EU users
37617
37836
  * (EU DSA, Article 26). Optional if the ad account has a default beneficiary: