@zernio/node 0.2.777 → 0.2.779

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;
@@ -7317,7 +7387,7 @@ export type TikTokPlatformData = {
7317
7387
  */
7318
7388
  musicSoundInfo?: {
7319
7389
  /**
7320
- * The commercial_music_id of the track.
7390
+ * The id field of a track from GET /v1/accounts/{accountId}/tiktok/commercial-music (a song clip id). TikTok fails the publish with a generic 51065 when given the commercial music id instead.
7321
7391
  */
7322
7392
  musicSoundId: string;
7323
7393
  /**
@@ -14445,9 +14515,13 @@ export type ListTikTokCommercialMusicData = {
14445
14515
  export type ListTikTokCommercialMusicResponse = ({
14446
14516
  tracks?: Array<{
14447
14517
  /**
14448
- * The commercial_music_id to send as musicSoundId
14518
+ * The id to send as musicSoundId (the full track's song clip id). TikTok rejects the commercial music id itself at publish time.
14449
14519
  */
14450
14520
  id?: string;
14521
+ /**
14522
+ * TikTok's commercial_music_id, for reference only
14523
+ */
14524
+ commercialMusicId?: string;
14451
14525
  name?: string;
14452
14526
  artist?: string;
14453
14527
  durationSec?: number;
@@ -14462,9 +14536,10 @@ export type ListTikTokCommercialMusicResponse = ({
14462
14536
  */
14463
14537
  rank?: number;
14464
14538
  /**
14465
- * The trending excerpt of the track, when TikTok provides one
14539
+ * The trending excerpt of the track, when TikTok provides one. Its id is also accepted as musicSoundId.
14466
14540
  */
14467
14541
  clip?: {
14542
+ id?: string;
14468
14543
  durationSec?: number;
14469
14544
  previewUrl?: string;
14470
14545
  };
@@ -33060,6 +33135,134 @@ export type UpdateAdCampaignStatusError = (unknown | {
33060
33135
  error?: string;
33061
33136
  });
33062
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
+
33063
33266
  export type GetCampaignBiddingData = {
33064
33267
  path: {
33065
33268
  /**