@getlatedev/node 0.2.1113 → 0.2.1115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.mts +88 -25
- package/dist/index.d.ts +88 -25
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/generated/sdk.gen.ts +45 -16
- package/src/generated/types.gen.ts +88 -25
package/README.md
CHANGED
|
@@ -515,7 +515,7 @@ try {
|
|
|
515
515
|
| `adCampaigns.getCampaignAdSchedule()` | Read a campaign's ad schedule (dayparting) |
|
|
516
516
|
| `adCampaigns.getCampaignBidding()` | Read a campaign's current bidding |
|
|
517
517
|
| `adCampaigns.getCampaignConversionGoals()` | Get campaign conversion goals |
|
|
518
|
-
| `adCampaigns.getCampaignTargeting()` | Read a Google campaign's device, location, and language targeting |
|
|
518
|
+
| `adCampaigns.getCampaignTargeting()` | Read a Google campaign's device, location, excluded location, and language targeting |
|
|
519
519
|
| `adCampaigns.getGoogleAssetGroup()` | Get a Performance Max asset group |
|
|
520
520
|
| `adCampaigns.updateAd()` | Update ad |
|
|
521
521
|
| `adCampaigns.updateAdCampaign()` | Update a campaign |
|
|
@@ -529,7 +529,7 @@ try {
|
|
|
529
529
|
| `adCampaigns.updateCampaignAdSchedule()` | Replace a campaign's ad schedule (dayparting) |
|
|
530
530
|
| `adCampaigns.updateCampaignAssets()` | Update campaign assets |
|
|
531
531
|
| `adCampaigns.updateCampaignConversionGoals()` | Update campaign conversion goals |
|
|
532
|
-
| `adCampaigns.updateCampaignTargeting()` | Edit a Google campaign's device, location, or language targeting |
|
|
532
|
+
| `adCampaigns.updateCampaignTargeting()` | Edit a Google campaign's device, location, excluded location, or language targeting |
|
|
533
533
|
| `adCampaigns.updateGoogleAssetGroup()` | Update a Performance Max asset group |
|
|
534
534
|
| `adCampaigns.deleteAd()` | Cancel an ad |
|
|
535
535
|
| `adCampaigns.deleteAdCampaign()` | Delete a campaign |
|
package/dist/index.d.mts
CHANGED
|
@@ -12138,7 +12138,7 @@ type TargetingSpec = {
|
|
|
12138
12138
|
address?: string;
|
|
12139
12139
|
}>;
|
|
12140
12140
|
/**
|
|
12141
|
-
* Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations).
|
|
12141
|
+
* Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations). Google (Search, Display, Performance Max) excludes countries, regions, cities and zips as negative location criteria; countryGroups, places, neighborhoods, customLocations and a city radius return 400 there, and Demand Gen returns 400 for any exclusion.
|
|
12142
12142
|
*/
|
|
12143
12143
|
excludedLocations?: {
|
|
12144
12144
|
countries?: Array<(string)>;
|
|
@@ -40452,6 +40452,27 @@ type GetCampaignTargetingResponse = ({
|
|
|
40452
40452
|
*/
|
|
40453
40453
|
countryCode?: (string) | null;
|
|
40454
40454
|
}>;
|
|
40455
|
+
/**
|
|
40456
|
+
* The negative (excluded) location criteria, same item shape as `locations` with `negative: true`.
|
|
40457
|
+
*/
|
|
40458
|
+
excludedLocations?: Array<{
|
|
40459
|
+
/**
|
|
40460
|
+
* Numeric id from Google's geoTargetConstants/{id}.
|
|
40461
|
+
*/
|
|
40462
|
+
geoTargetId?: string;
|
|
40463
|
+
/**
|
|
40464
|
+
* Always true here.
|
|
40465
|
+
*/
|
|
40466
|
+
negative?: boolean;
|
|
40467
|
+
name?: (string) | null;
|
|
40468
|
+
canonicalName?: (string) | null;
|
|
40469
|
+
type?: (string) | null;
|
|
40470
|
+
countryCode?: (string) | null;
|
|
40471
|
+
}>;
|
|
40472
|
+
/**
|
|
40473
|
+
* Whether PUT accepts `excludedLocations` for this campaign. False on Demand Gen, which returns 400 for any exclusion.
|
|
40474
|
+
*/
|
|
40475
|
+
excludedLocationsEditable?: boolean;
|
|
40455
40476
|
languages?: Array<{
|
|
40456
40477
|
/**
|
|
40457
40478
|
* Google's language code (ISO 639-1, plus variants such as `zh_CN`). Empty when the campaign's language_constant id is not in Zernio's checked-in table.
|
|
@@ -40517,6 +40538,28 @@ type UpdateCampaignTargetingData = {
|
|
|
40517
40538
|
* Google's language codes (ISO 639-1, plus variants such as `zh_CN`), e.g. ["en", "de"].
|
|
40518
40539
|
*/
|
|
40519
40540
|
languages?: Array<(string)>;
|
|
40541
|
+
/**
|
|
40542
|
+
* Locations the campaign never serves in, as a bare country-code array or the nested countries/regions/cities/zips/metros shape. Replaces the excluded set; [] removes every exclusion.
|
|
40543
|
+
*/
|
|
40544
|
+
excludedLocations?: (Array<(string)> | {
|
|
40545
|
+
countries?: Array<(string)>;
|
|
40546
|
+
regions?: Array<(string | {
|
|
40547
|
+
key: string;
|
|
40548
|
+
name?: string;
|
|
40549
|
+
})>;
|
|
40550
|
+
cities?: Array<(string | {
|
|
40551
|
+
key: string;
|
|
40552
|
+
name?: string;
|
|
40553
|
+
})>;
|
|
40554
|
+
zips?: Array<(string | {
|
|
40555
|
+
key: string;
|
|
40556
|
+
name?: string;
|
|
40557
|
+
})>;
|
|
40558
|
+
metros?: Array<(string | {
|
|
40559
|
+
key: string;
|
|
40560
|
+
name?: string;
|
|
40561
|
+
})>;
|
|
40562
|
+
});
|
|
40520
40563
|
locationTargetingType?: GoogleLocationTargetingType;
|
|
40521
40564
|
};
|
|
40522
40565
|
};
|
|
@@ -40536,7 +40579,7 @@ type UpdateCampaignTargetingResponse = ({
|
|
|
40536
40579
|
/**
|
|
40537
40580
|
* Which targeting fields were applied.
|
|
40538
40581
|
*/
|
|
40539
|
-
updated?: Array<('devices' | 'locations' | 'languages' | 'locationTargetingType')>;
|
|
40582
|
+
updated?: Array<('devices' | 'locations' | 'excludedLocations' | 'languages' | 'locationTargetingType')>;
|
|
40540
40583
|
/**
|
|
40541
40584
|
* The value read back from Google after the edit.
|
|
40542
40585
|
*/
|
|
@@ -40575,6 +40618,17 @@ type UpdateCampaignTargetingResponse = ({
|
|
|
40575
40618
|
*/
|
|
40576
40619
|
countryCode?: (string) | null;
|
|
40577
40620
|
}>;
|
|
40621
|
+
/**
|
|
40622
|
+
* The negative (excluded) location criteria read back after the edit, same item shape as `locations`.
|
|
40623
|
+
*/
|
|
40624
|
+
excludedLocations?: Array<{
|
|
40625
|
+
geoTargetId?: string;
|
|
40626
|
+
negative?: boolean;
|
|
40627
|
+
name?: (string) | null;
|
|
40628
|
+
canonicalName?: (string) | null;
|
|
40629
|
+
type?: (string) | null;
|
|
40630
|
+
countryCode?: (string) | null;
|
|
40631
|
+
}>;
|
|
40578
40632
|
languages?: Array<{
|
|
40579
40633
|
code?: string;
|
|
40580
40634
|
id?: string;
|
|
@@ -44810,15 +44864,15 @@ type GetAdAccountFinanceError = (unknown | ErrorResponse);
|
|
|
44810
44864
|
type GetAdAccountLiveEntitiesData = {
|
|
44811
44865
|
query: {
|
|
44812
44866
|
/**
|
|
44813
|
-
* Zernio SocialAccount id (posting or ads variant) used to resolve the
|
|
44867
|
+
* Zernio SocialAccount id (posting or ads variant) used to resolve the platform token.
|
|
44814
44868
|
*/
|
|
44815
44869
|
accountId: string;
|
|
44816
44870
|
/**
|
|
44817
|
-
* Meta ad account id (act_<n>).
|
|
44871
|
+
* Meta ad account id (act_<n>) or TikTok advertiser id (digits).
|
|
44818
44872
|
*/
|
|
44819
44873
|
adAccountId: string;
|
|
44820
44874
|
/**
|
|
44821
|
-
* Cursor from `paging.campaigns.after` or `paging.adSets.after` of a previous response. Requires `level
|
|
44875
|
+
* Cursor from `paging.campaigns.after` or `paging.adSets.after` of a previous response. Requires `level` (and on TikTok the same `limit`).
|
|
44822
44876
|
*/
|
|
44823
44877
|
after?: string;
|
|
44824
44878
|
/**
|
|
@@ -44833,6 +44887,7 @@ type GetAdAccountLiveEntitiesData = {
|
|
|
44833
44887
|
* Comma-separated Meta `effective_status` values to keep: ACTIVE, PAUSED, IN_PROCESS,
|
|
44834
44888
|
* WITH_ISSUES, DELETED, ARCHIVED, and CAMPAIGN_PAUSED (ad sets only; the campaigns level
|
|
44835
44889
|
* ignores it). Defaults to every status except DELETED and ARCHIVED. An unknown value is a 400.
|
|
44890
|
+
* TikTok takes a single value: ACTIVE, PAUSED or DELETED (see the description).
|
|
44836
44891
|
*/
|
|
44837
44892
|
status?: string;
|
|
44838
44893
|
};
|
|
@@ -44840,13 +44895,13 @@ type GetAdAccountLiveEntitiesData = {
|
|
|
44840
44895
|
type GetAdAccountLiveEntitiesResponse = ({
|
|
44841
44896
|
accountId?: string;
|
|
44842
44897
|
adAccountId?: string;
|
|
44843
|
-
platform?: 'facebook';
|
|
44898
|
+
platform?: 'facebook' | 'tiktok';
|
|
44844
44899
|
/**
|
|
44845
44900
|
* ISO 4217 code every budget and bid amount is expressed in.
|
|
44846
44901
|
*/
|
|
44847
44902
|
currency?: string;
|
|
44848
44903
|
/**
|
|
44849
|
-
* When
|
|
44904
|
+
* When the platform was read.
|
|
44850
44905
|
*/
|
|
44851
44906
|
readAt?: string;
|
|
44852
44907
|
/**
|
|
@@ -44856,11 +44911,11 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44856
44911
|
platformCampaignId?: string;
|
|
44857
44912
|
campaignName?: (string) | null;
|
|
44858
44913
|
/**
|
|
44859
|
-
* Meta `effective_status
|
|
44914
|
+
* Meta `effective_status` (ACTIVE, PAUSED, WITH_ISSUES...) or TikTok `secondary_status` (CAMPAIGN_STATUS_ENABLE...).
|
|
44860
44915
|
*/
|
|
44861
44916
|
platformCampaignStatus?: (string) | null;
|
|
44862
44917
|
/**
|
|
44863
|
-
*
|
|
44918
|
+
* The campaign's own switch: Meta `status` (ACTIVE, PAUSED, DELETED, ARCHIVED), or TikTok `operation_status` as ACTIVE (ENABLE) / PAUSED (DISABLE).
|
|
44864
44919
|
*/
|
|
44865
44920
|
configuredStatus?: (string) | null;
|
|
44866
44921
|
/**
|
|
@@ -44875,23 +44930,27 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44875
44930
|
type?: 'daily' | 'lifetime';
|
|
44876
44931
|
} | null;
|
|
44877
44932
|
/**
|
|
44878
|
-
*
|
|
44933
|
+
* Daily budget in whole units of `currency` (Meta `daily_budget`; TikTok `budget` under a daily budget mode).
|
|
44879
44934
|
*/
|
|
44880
44935
|
dailyBudget?: (number) | null;
|
|
44881
44936
|
/**
|
|
44882
|
-
*
|
|
44937
|
+
* Lifetime budget in whole units of `currency` (Meta `lifetime_budget`; TikTok `budget` under BUDGET_MODE_TOTAL).
|
|
44883
44938
|
*/
|
|
44884
44939
|
lifetimeBudget?: (number) | null;
|
|
44885
44940
|
/**
|
|
44886
|
-
*
|
|
44941
|
+
* TikTok only: `budget_mode` as TikTok reports it (BUDGET_MODE_DAY, BUDGET_MODE_DYNAMIC_DAILY_BUDGET, BUDGET_MODE_TOTAL, BUDGET_MODE_INFINITE).
|
|
44942
|
+
*/
|
|
44943
|
+
budgetMode?: (string) | null;
|
|
44944
|
+
/**
|
|
44945
|
+
* Meta `budget_remaining` in whole units of `currency`. Null when the campaign has no budget of its own, and always on TikTok.
|
|
44887
44946
|
*/
|
|
44888
44947
|
budgetRemaining?: (number) | null;
|
|
44889
44948
|
/**
|
|
44890
|
-
* Campaign spending limit (Meta `spend_cap`) in whole units of `currency`. Null when none is set.
|
|
44949
|
+
* Campaign spending limit (Meta `spend_cap`) in whole units of `currency`. Null when none is set, and always on TikTok.
|
|
44891
44950
|
*/
|
|
44892
44951
|
spendCap?: (number) | null;
|
|
44893
44952
|
/**
|
|
44894
|
-
* Meta `bid_strategy`, set on campaigns with a campaign budget.
|
|
44953
|
+
* Meta `bid_strategy`, set on campaigns with a campaign budget. Null on TikTok.
|
|
44895
44954
|
*/
|
|
44896
44955
|
bidStrategy?: (string) | null;
|
|
44897
44956
|
}>;
|
|
@@ -44903,11 +44962,11 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44903
44962
|
adSetName?: (string) | null;
|
|
44904
44963
|
platformCampaignId?: (string) | null;
|
|
44905
44964
|
/**
|
|
44906
|
-
* Meta `effective_status
|
|
44965
|
+
* Meta `effective_status` (ACTIVE, PAUSED, CAMPAIGN_PAUSED...) or TikTok `secondary_status` (ADGROUP_STATUS_DELIVERY_OK, ADGROUP_STATUS_AUDIT...).
|
|
44907
44966
|
*/
|
|
44908
44967
|
platformAdSetStatus?: (string) | null;
|
|
44909
44968
|
/**
|
|
44910
|
-
*
|
|
44969
|
+
* The ad set's own switch: Meta `status`, or TikTok `operation_status` as ACTIVE / PAUSED.
|
|
44911
44970
|
*/
|
|
44912
44971
|
configuredStatus?: (string) | null;
|
|
44913
44972
|
/**
|
|
@@ -44922,41 +44981,45 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44922
44981
|
type?: 'daily' | 'lifetime';
|
|
44923
44982
|
} | null;
|
|
44924
44983
|
/**
|
|
44925
|
-
*
|
|
44984
|
+
* Daily budget in whole units of `currency`.
|
|
44926
44985
|
*/
|
|
44927
44986
|
dailyBudget?: (number) | null;
|
|
44928
44987
|
/**
|
|
44929
|
-
*
|
|
44988
|
+
* Lifetime budget in whole units of `currency`.
|
|
44930
44989
|
*/
|
|
44931
44990
|
lifetimeBudget?: (number) | null;
|
|
44932
44991
|
/**
|
|
44933
|
-
*
|
|
44992
|
+
* TikTok only: `budget_mode` as TikTok reports it.
|
|
44993
|
+
*/
|
|
44994
|
+
budgetMode?: (string) | null;
|
|
44995
|
+
/**
|
|
44996
|
+
* Meta `budget_remaining` in whole units of `currency`. Null when the ad set has no budget of its own, and always on TikTok.
|
|
44934
44997
|
*/
|
|
44935
44998
|
budgetRemaining?: (number) | null;
|
|
44936
44999
|
/**
|
|
44937
|
-
* Meta `bid_strategy`.
|
|
45000
|
+
* Meta `bid_strategy`. On TikTok the ad group's `bid_type` normalized to the same vocabulary (LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, LOWEST_COST_WITH_MIN_ROAS).
|
|
44938
45001
|
*/
|
|
44939
45002
|
bidStrategy?: (string) | null;
|
|
44940
45003
|
/**
|
|
44941
|
-
*
|
|
45004
|
+
* Bid cap or cost target in whole units of `currency` (Meta `bid_amount`; TikTok `bid_price`, else `conversion_bid_price`, else `deep_cpa_bid`). Null when the strategy has none.
|
|
44942
45005
|
*/
|
|
44943
45006
|
bidAmount?: (number) | null;
|
|
44944
45007
|
/**
|
|
44945
|
-
* Meta `optimization_goal`.
|
|
45008
|
+
* Meta or TikTok `optimization_goal`.
|
|
44946
45009
|
*/
|
|
44947
45010
|
optimizationGoal?: (string) | null;
|
|
44948
45011
|
/**
|
|
44949
|
-
* Meta `billing_event`.
|
|
45012
|
+
* Meta or TikTok `billing_event`.
|
|
44950
45013
|
*/
|
|
44951
45014
|
billingEvent?: (string) | null;
|
|
44952
45015
|
/**
|
|
44953
|
-
* Meta `promoted_object` verbatim (snake_case).
|
|
45016
|
+
* Meta `promoted_object` verbatim (snake_case). On TikTok `{ pixelId, customEventType, applicationId, customConversionId }` from `pixel_id`, `optimization_event`, `app_id` and `custom_conversion_id`, only the keys TikTok has set; null when none is.
|
|
44954
45017
|
*/
|
|
44955
45018
|
promotedObject?: {
|
|
44956
45019
|
[key: string]: unknown;
|
|
44957
45020
|
} | null;
|
|
44958
45021
|
/**
|
|
44959
|
-
*
|
|
45022
|
+
* The platform's targeting verbatim (snake_case), as it reports it now: Meta `targeting`, or TikTok's ad group targeting fields (location_ids, age_groups, gender, languages, interest_category_ids, audience_ids, placements...).
|
|
44960
45023
|
*/
|
|
44961
45024
|
targeting?: {
|
|
44962
45025
|
[key: string]: unknown;
|
package/dist/index.d.ts
CHANGED
|
@@ -12138,7 +12138,7 @@ type TargetingSpec = {
|
|
|
12138
12138
|
address?: string;
|
|
12139
12139
|
}>;
|
|
12140
12140
|
/**
|
|
12141
|
-
* Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations).
|
|
12141
|
+
* Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations). Google (Search, Display, Performance Max) excludes countries, regions, cities and zips as negative location criteria; countryGroups, places, neighborhoods, customLocations and a city radius return 400 there, and Demand Gen returns 400 for any exclusion.
|
|
12142
12142
|
*/
|
|
12143
12143
|
excludedLocations?: {
|
|
12144
12144
|
countries?: Array<(string)>;
|
|
@@ -40452,6 +40452,27 @@ type GetCampaignTargetingResponse = ({
|
|
|
40452
40452
|
*/
|
|
40453
40453
|
countryCode?: (string) | null;
|
|
40454
40454
|
}>;
|
|
40455
|
+
/**
|
|
40456
|
+
* The negative (excluded) location criteria, same item shape as `locations` with `negative: true`.
|
|
40457
|
+
*/
|
|
40458
|
+
excludedLocations?: Array<{
|
|
40459
|
+
/**
|
|
40460
|
+
* Numeric id from Google's geoTargetConstants/{id}.
|
|
40461
|
+
*/
|
|
40462
|
+
geoTargetId?: string;
|
|
40463
|
+
/**
|
|
40464
|
+
* Always true here.
|
|
40465
|
+
*/
|
|
40466
|
+
negative?: boolean;
|
|
40467
|
+
name?: (string) | null;
|
|
40468
|
+
canonicalName?: (string) | null;
|
|
40469
|
+
type?: (string) | null;
|
|
40470
|
+
countryCode?: (string) | null;
|
|
40471
|
+
}>;
|
|
40472
|
+
/**
|
|
40473
|
+
* Whether PUT accepts `excludedLocations` for this campaign. False on Demand Gen, which returns 400 for any exclusion.
|
|
40474
|
+
*/
|
|
40475
|
+
excludedLocationsEditable?: boolean;
|
|
40455
40476
|
languages?: Array<{
|
|
40456
40477
|
/**
|
|
40457
40478
|
* Google's language code (ISO 639-1, plus variants such as `zh_CN`). Empty when the campaign's language_constant id is not in Zernio's checked-in table.
|
|
@@ -40517,6 +40538,28 @@ type UpdateCampaignTargetingData = {
|
|
|
40517
40538
|
* Google's language codes (ISO 639-1, plus variants such as `zh_CN`), e.g. ["en", "de"].
|
|
40518
40539
|
*/
|
|
40519
40540
|
languages?: Array<(string)>;
|
|
40541
|
+
/**
|
|
40542
|
+
* Locations the campaign never serves in, as a bare country-code array or the nested countries/regions/cities/zips/metros shape. Replaces the excluded set; [] removes every exclusion.
|
|
40543
|
+
*/
|
|
40544
|
+
excludedLocations?: (Array<(string)> | {
|
|
40545
|
+
countries?: Array<(string)>;
|
|
40546
|
+
regions?: Array<(string | {
|
|
40547
|
+
key: string;
|
|
40548
|
+
name?: string;
|
|
40549
|
+
})>;
|
|
40550
|
+
cities?: Array<(string | {
|
|
40551
|
+
key: string;
|
|
40552
|
+
name?: string;
|
|
40553
|
+
})>;
|
|
40554
|
+
zips?: Array<(string | {
|
|
40555
|
+
key: string;
|
|
40556
|
+
name?: string;
|
|
40557
|
+
})>;
|
|
40558
|
+
metros?: Array<(string | {
|
|
40559
|
+
key: string;
|
|
40560
|
+
name?: string;
|
|
40561
|
+
})>;
|
|
40562
|
+
});
|
|
40520
40563
|
locationTargetingType?: GoogleLocationTargetingType;
|
|
40521
40564
|
};
|
|
40522
40565
|
};
|
|
@@ -40536,7 +40579,7 @@ type UpdateCampaignTargetingResponse = ({
|
|
|
40536
40579
|
/**
|
|
40537
40580
|
* Which targeting fields were applied.
|
|
40538
40581
|
*/
|
|
40539
|
-
updated?: Array<('devices' | 'locations' | 'languages' | 'locationTargetingType')>;
|
|
40582
|
+
updated?: Array<('devices' | 'locations' | 'excludedLocations' | 'languages' | 'locationTargetingType')>;
|
|
40540
40583
|
/**
|
|
40541
40584
|
* The value read back from Google after the edit.
|
|
40542
40585
|
*/
|
|
@@ -40575,6 +40618,17 @@ type UpdateCampaignTargetingResponse = ({
|
|
|
40575
40618
|
*/
|
|
40576
40619
|
countryCode?: (string) | null;
|
|
40577
40620
|
}>;
|
|
40621
|
+
/**
|
|
40622
|
+
* The negative (excluded) location criteria read back after the edit, same item shape as `locations`.
|
|
40623
|
+
*/
|
|
40624
|
+
excludedLocations?: Array<{
|
|
40625
|
+
geoTargetId?: string;
|
|
40626
|
+
negative?: boolean;
|
|
40627
|
+
name?: (string) | null;
|
|
40628
|
+
canonicalName?: (string) | null;
|
|
40629
|
+
type?: (string) | null;
|
|
40630
|
+
countryCode?: (string) | null;
|
|
40631
|
+
}>;
|
|
40578
40632
|
languages?: Array<{
|
|
40579
40633
|
code?: string;
|
|
40580
40634
|
id?: string;
|
|
@@ -44810,15 +44864,15 @@ type GetAdAccountFinanceError = (unknown | ErrorResponse);
|
|
|
44810
44864
|
type GetAdAccountLiveEntitiesData = {
|
|
44811
44865
|
query: {
|
|
44812
44866
|
/**
|
|
44813
|
-
* Zernio SocialAccount id (posting or ads variant) used to resolve the
|
|
44867
|
+
* Zernio SocialAccount id (posting or ads variant) used to resolve the platform token.
|
|
44814
44868
|
*/
|
|
44815
44869
|
accountId: string;
|
|
44816
44870
|
/**
|
|
44817
|
-
* Meta ad account id (act_<n>).
|
|
44871
|
+
* Meta ad account id (act_<n>) or TikTok advertiser id (digits).
|
|
44818
44872
|
*/
|
|
44819
44873
|
adAccountId: string;
|
|
44820
44874
|
/**
|
|
44821
|
-
* Cursor from `paging.campaigns.after` or `paging.adSets.after` of a previous response. Requires `level
|
|
44875
|
+
* Cursor from `paging.campaigns.after` or `paging.adSets.after` of a previous response. Requires `level` (and on TikTok the same `limit`).
|
|
44822
44876
|
*/
|
|
44823
44877
|
after?: string;
|
|
44824
44878
|
/**
|
|
@@ -44833,6 +44887,7 @@ type GetAdAccountLiveEntitiesData = {
|
|
|
44833
44887
|
* Comma-separated Meta `effective_status` values to keep: ACTIVE, PAUSED, IN_PROCESS,
|
|
44834
44888
|
* WITH_ISSUES, DELETED, ARCHIVED, and CAMPAIGN_PAUSED (ad sets only; the campaigns level
|
|
44835
44889
|
* ignores it). Defaults to every status except DELETED and ARCHIVED. An unknown value is a 400.
|
|
44890
|
+
* TikTok takes a single value: ACTIVE, PAUSED or DELETED (see the description).
|
|
44836
44891
|
*/
|
|
44837
44892
|
status?: string;
|
|
44838
44893
|
};
|
|
@@ -44840,13 +44895,13 @@ type GetAdAccountLiveEntitiesData = {
|
|
|
44840
44895
|
type GetAdAccountLiveEntitiesResponse = ({
|
|
44841
44896
|
accountId?: string;
|
|
44842
44897
|
adAccountId?: string;
|
|
44843
|
-
platform?: 'facebook';
|
|
44898
|
+
platform?: 'facebook' | 'tiktok';
|
|
44844
44899
|
/**
|
|
44845
44900
|
* ISO 4217 code every budget and bid amount is expressed in.
|
|
44846
44901
|
*/
|
|
44847
44902
|
currency?: string;
|
|
44848
44903
|
/**
|
|
44849
|
-
* When
|
|
44904
|
+
* When the platform was read.
|
|
44850
44905
|
*/
|
|
44851
44906
|
readAt?: string;
|
|
44852
44907
|
/**
|
|
@@ -44856,11 +44911,11 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44856
44911
|
platformCampaignId?: string;
|
|
44857
44912
|
campaignName?: (string) | null;
|
|
44858
44913
|
/**
|
|
44859
|
-
* Meta `effective_status
|
|
44914
|
+
* Meta `effective_status` (ACTIVE, PAUSED, WITH_ISSUES...) or TikTok `secondary_status` (CAMPAIGN_STATUS_ENABLE...).
|
|
44860
44915
|
*/
|
|
44861
44916
|
platformCampaignStatus?: (string) | null;
|
|
44862
44917
|
/**
|
|
44863
|
-
*
|
|
44918
|
+
* The campaign's own switch: Meta `status` (ACTIVE, PAUSED, DELETED, ARCHIVED), or TikTok `operation_status` as ACTIVE (ENABLE) / PAUSED (DISABLE).
|
|
44864
44919
|
*/
|
|
44865
44920
|
configuredStatus?: (string) | null;
|
|
44866
44921
|
/**
|
|
@@ -44875,23 +44930,27 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44875
44930
|
type?: 'daily' | 'lifetime';
|
|
44876
44931
|
} | null;
|
|
44877
44932
|
/**
|
|
44878
|
-
*
|
|
44933
|
+
* Daily budget in whole units of `currency` (Meta `daily_budget`; TikTok `budget` under a daily budget mode).
|
|
44879
44934
|
*/
|
|
44880
44935
|
dailyBudget?: (number) | null;
|
|
44881
44936
|
/**
|
|
44882
|
-
*
|
|
44937
|
+
* Lifetime budget in whole units of `currency` (Meta `lifetime_budget`; TikTok `budget` under BUDGET_MODE_TOTAL).
|
|
44883
44938
|
*/
|
|
44884
44939
|
lifetimeBudget?: (number) | null;
|
|
44885
44940
|
/**
|
|
44886
|
-
*
|
|
44941
|
+
* TikTok only: `budget_mode` as TikTok reports it (BUDGET_MODE_DAY, BUDGET_MODE_DYNAMIC_DAILY_BUDGET, BUDGET_MODE_TOTAL, BUDGET_MODE_INFINITE).
|
|
44942
|
+
*/
|
|
44943
|
+
budgetMode?: (string) | null;
|
|
44944
|
+
/**
|
|
44945
|
+
* Meta `budget_remaining` in whole units of `currency`. Null when the campaign has no budget of its own, and always on TikTok.
|
|
44887
44946
|
*/
|
|
44888
44947
|
budgetRemaining?: (number) | null;
|
|
44889
44948
|
/**
|
|
44890
|
-
* Campaign spending limit (Meta `spend_cap`) in whole units of `currency`. Null when none is set.
|
|
44949
|
+
* Campaign spending limit (Meta `spend_cap`) in whole units of `currency`. Null when none is set, and always on TikTok.
|
|
44891
44950
|
*/
|
|
44892
44951
|
spendCap?: (number) | null;
|
|
44893
44952
|
/**
|
|
44894
|
-
* Meta `bid_strategy`, set on campaigns with a campaign budget.
|
|
44953
|
+
* Meta `bid_strategy`, set on campaigns with a campaign budget. Null on TikTok.
|
|
44895
44954
|
*/
|
|
44896
44955
|
bidStrategy?: (string) | null;
|
|
44897
44956
|
}>;
|
|
@@ -44903,11 +44962,11 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44903
44962
|
adSetName?: (string) | null;
|
|
44904
44963
|
platformCampaignId?: (string) | null;
|
|
44905
44964
|
/**
|
|
44906
|
-
* Meta `effective_status
|
|
44965
|
+
* Meta `effective_status` (ACTIVE, PAUSED, CAMPAIGN_PAUSED...) or TikTok `secondary_status` (ADGROUP_STATUS_DELIVERY_OK, ADGROUP_STATUS_AUDIT...).
|
|
44907
44966
|
*/
|
|
44908
44967
|
platformAdSetStatus?: (string) | null;
|
|
44909
44968
|
/**
|
|
44910
|
-
*
|
|
44969
|
+
* The ad set's own switch: Meta `status`, or TikTok `operation_status` as ACTIVE / PAUSED.
|
|
44911
44970
|
*/
|
|
44912
44971
|
configuredStatus?: (string) | null;
|
|
44913
44972
|
/**
|
|
@@ -44922,41 +44981,45 @@ type GetAdAccountLiveEntitiesResponse = ({
|
|
|
44922
44981
|
type?: 'daily' | 'lifetime';
|
|
44923
44982
|
} | null;
|
|
44924
44983
|
/**
|
|
44925
|
-
*
|
|
44984
|
+
* Daily budget in whole units of `currency`.
|
|
44926
44985
|
*/
|
|
44927
44986
|
dailyBudget?: (number) | null;
|
|
44928
44987
|
/**
|
|
44929
|
-
*
|
|
44988
|
+
* Lifetime budget in whole units of `currency`.
|
|
44930
44989
|
*/
|
|
44931
44990
|
lifetimeBudget?: (number) | null;
|
|
44932
44991
|
/**
|
|
44933
|
-
*
|
|
44992
|
+
* TikTok only: `budget_mode` as TikTok reports it.
|
|
44993
|
+
*/
|
|
44994
|
+
budgetMode?: (string) | null;
|
|
44995
|
+
/**
|
|
44996
|
+
* Meta `budget_remaining` in whole units of `currency`. Null when the ad set has no budget of its own, and always on TikTok.
|
|
44934
44997
|
*/
|
|
44935
44998
|
budgetRemaining?: (number) | null;
|
|
44936
44999
|
/**
|
|
44937
|
-
* Meta `bid_strategy`.
|
|
45000
|
+
* Meta `bid_strategy`. On TikTok the ad group's `bid_type` normalized to the same vocabulary (LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, LOWEST_COST_WITH_MIN_ROAS).
|
|
44938
45001
|
*/
|
|
44939
45002
|
bidStrategy?: (string) | null;
|
|
44940
45003
|
/**
|
|
44941
|
-
*
|
|
45004
|
+
* Bid cap or cost target in whole units of `currency` (Meta `bid_amount`; TikTok `bid_price`, else `conversion_bid_price`, else `deep_cpa_bid`). Null when the strategy has none.
|
|
44942
45005
|
*/
|
|
44943
45006
|
bidAmount?: (number) | null;
|
|
44944
45007
|
/**
|
|
44945
|
-
* Meta `optimization_goal`.
|
|
45008
|
+
* Meta or TikTok `optimization_goal`.
|
|
44946
45009
|
*/
|
|
44947
45010
|
optimizationGoal?: (string) | null;
|
|
44948
45011
|
/**
|
|
44949
|
-
* Meta `billing_event`.
|
|
45012
|
+
* Meta or TikTok `billing_event`.
|
|
44950
45013
|
*/
|
|
44951
45014
|
billingEvent?: (string) | null;
|
|
44952
45015
|
/**
|
|
44953
|
-
* Meta `promoted_object` verbatim (snake_case).
|
|
45016
|
+
* Meta `promoted_object` verbatim (snake_case). On TikTok `{ pixelId, customEventType, applicationId, customConversionId }` from `pixel_id`, `optimization_event`, `app_id` and `custom_conversion_id`, only the keys TikTok has set; null when none is.
|
|
44954
45017
|
*/
|
|
44955
45018
|
promotedObject?: {
|
|
44956
45019
|
[key: string]: unknown;
|
|
44957
45020
|
} | null;
|
|
44958
45021
|
/**
|
|
44959
|
-
*
|
|
45022
|
+
* The platform's targeting verbatim (snake_case), as it reports it now: Meta `targeting`, or TikTok's ad group targeting fields (location_ids, age_groups, gender, languages, interest_category_ids, audience_ids, placements...).
|
|
44960
45023
|
*/
|
|
44961
45024
|
targeting?: {
|
|
44962
45025
|
[key: string]: unknown;
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
36
36
|
// package.json
|
|
37
37
|
var package_default = {
|
|
38
38
|
name: "@getlatedev/node",
|
|
39
|
-
version: "0.2.
|
|
39
|
+
version: "0.2.1115",
|
|
40
40
|
description: "The official Node.js library for the Zernio API",
|
|
41
41
|
main: "dist/index.js",
|
|
42
42
|
module: "dist/index.mjs",
|
package/dist/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
5
5
|
// package.json
|
|
6
6
|
var package_default = {
|
|
7
7
|
name: "@getlatedev/node",
|
|
8
|
-
version: "0.2.
|
|
8
|
+
version: "0.2.1115",
|
|
9
9
|
description: "The official Node.js library for the Zernio API",
|
|
10
10
|
main: "dist/index.js",
|
|
11
11
|
module: "dist/index.mjs",
|
package/package.json
CHANGED
package/src/generated/sdk.gen.ts
CHANGED
|
@@ -9941,7 +9941,7 @@ export const duplicateAdCampaign = <ThrowOnError extends boolean = false>(option
|
|
|
9941
9941
|
};
|
|
9942
9942
|
|
|
9943
9943
|
/**
|
|
9944
|
-
* Read a Google campaign's device, location, and language targeting
|
|
9944
|
+
* Read a Google campaign's device, location, excluded location, and language targeting
|
|
9945
9945
|
* Google Ads compliance requires geo, language, budget, and bidding targeting
|
|
9946
9946
|
* set at creation to stay editable afterwards; this reads the campaign state
|
|
9947
9947
|
* so an integrator can build an editor around it. Cached for the quota window
|
|
@@ -9954,6 +9954,11 @@ export const duplicateAdCampaign = <ThrowOnError extends boolean = false>(option
|
|
|
9954
9954
|
* for that device, `null` when it has none, and `0` when the device is
|
|
9955
9955
|
* switched off; `included` is false for exactly that case.
|
|
9956
9956
|
*
|
|
9957
|
+
* `excludedLocations` lists the campaign's negative location criteria (the
|
|
9958
|
+
* places it never serves in). `locations` still lists every location criterion,
|
|
9959
|
+
* each flagged with `negative`, so a client reading the targeted set filters
|
|
9960
|
+
* `negative: false`.
|
|
9961
|
+
*
|
|
9957
9962
|
*/
|
|
9958
9963
|
export const getCampaignTargeting = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetCampaignTargetingData, ThrowOnError>) => {
|
|
9959
9964
|
return (options?.client ?? client).get<GetCampaignTargetingResponse, GetCampaignTargetingError, ThrowOnError>({
|
|
@@ -9963,10 +9968,10 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
|
|
|
9963
9968
|
};
|
|
9964
9969
|
|
|
9965
9970
|
/**
|
|
9966
|
-
* Edit a Google campaign's device, location, or language targeting
|
|
9971
|
+
* Edit a Google campaign's device, location, excluded location, or language targeting
|
|
9967
9972
|
* Google Ads compliance row M.10: geo and language targeting set at
|
|
9968
9973
|
* creation must stay editable afterwards. Send at least one of `devices`,
|
|
9969
|
-
* `locations`, `languages`, `locationTargetingType`; each provided field REPLACES that field's
|
|
9974
|
+
* `locations`, `excludedLocations`, `languages`, `locationTargetingType`; each provided field REPLACES that field's
|
|
9970
9975
|
* existing criteria on the campaign (a full set, not a delta). Fields left
|
|
9971
9976
|
* out of the body are untouched. Google only; every other platform returns
|
|
9972
9977
|
* 501.
|
|
@@ -9978,11 +9983,19 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
|
|
|
9978
9983
|
*
|
|
9979
9984
|
* `locations` accepts the same shapes as campaign creation: a bare array of
|
|
9980
9985
|
* ISO country codes, or an object with `countries`/`regions`/`cities`/`zips`/`metros`
|
|
9981
|
-
* key lists (`key` from GET /v1/ads/targeting/search?dimension=geo).
|
|
9982
|
-
*
|
|
9986
|
+
* key lists (`key` from GET /v1/ads/targeting/search?dimension=geo). Excluded
|
|
9987
|
+
* locations are left untouched by `locations`. An empty location list
|
|
9983
9988
|
* returns 400 instead of removing every criterion: a Google campaign with no location
|
|
9984
9989
|
* criteria targets every country, so omit `locations` to leave targeting alone.
|
|
9985
9990
|
*
|
|
9991
|
+
* `excludedLocations` takes the same two shapes and replaces the campaign's negative
|
|
9992
|
+
* location criteria (the places it never serves in), leaving the targeted `locations`
|
|
9993
|
+
* untouched. An empty list (or `{}`) removes every exclusion. Radius exclusions are
|
|
9994
|
+
* not supported. A place cannot be both targeted and excluded: a request whose result
|
|
9995
|
+
* would leave one on both sides returns 400 before anything is written, and moving a
|
|
9996
|
+
* place from one side to the other in the same request is applied atomically. Example:
|
|
9997
|
+
* `{ "platform": "google", "targeting": { "excludedLocations": { "countries": ["CA"], "regions": ["21137"] } } }`.
|
|
9998
|
+
*
|
|
9986
9999
|
* The removes and the creates go out in ONE Google `googleAds:mutate`, so a failed
|
|
9987
10000
|
* edit leaves the campaign's previous set intact rather than a half-applied one.
|
|
9988
10001
|
*
|
|
@@ -9994,7 +10007,7 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
|
|
|
9994
10007
|
* (also people searching for or interested in them). Example:
|
|
9995
10008
|
* `{ "platform": "google", "targeting": { "locationTargetingType": "presence" } }`.
|
|
9996
10009
|
*
|
|
9997
|
-
* The response includes the refreshed `devices`/`locations`/`languages` state
|
|
10010
|
+
* The response includes the refreshed `devices`/`locations`/`excludedLocations`/`languages` state
|
|
9998
10011
|
* read back from Google after the edit, and invalidates the cached copy
|
|
9999
10012
|
* `GET` on this campaign would otherwise keep serving.
|
|
10000
10013
|
*
|
|
@@ -10005,6 +10018,7 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
|
|
|
10005
10018
|
* returns 400 naming them: edit each one with PUT /v1/ads/{adId} `targeting` on an ad of
|
|
10006
10019
|
* that ad group. Campaigns migrated from Discovery that still target on the campaign keep
|
|
10007
10020
|
* being written there. `devices` and `locationTargetingType` stay campaign-level.
|
|
10021
|
+
* `excludedLocations` is not available on Demand Gen yet and returns 400.
|
|
10008
10022
|
*
|
|
10009
10023
|
*/
|
|
10010
10024
|
export const updateCampaignTargeting = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCampaignTargetingData, ThrowOnError>) => {
|
|
@@ -11811,25 +11825,40 @@ export const getAdAccountFinance = <ThrowOnError extends boolean = false>(option
|
|
|
11811
11825
|
|
|
11812
11826
|
/**
|
|
11813
11827
|
* Read an ad account's campaigns and ad sets live
|
|
11814
|
-
* Reads the campaigns and ad sets of one Meta ad account **live from
|
|
11815
|
-
*
|
|
11816
|
-
*
|
|
11817
|
-
*
|
|
11818
|
-
*
|
|
11828
|
+
* Reads the campaigns and ad sets of one Meta ad account or TikTok advertiser **live from
|
|
11829
|
+
* the platform**, so it is cheap enough to run before every write: for example a
|
|
11830
|
+
* per-ad-account spend ceiling that must see the current daily / lifetime budget rather
|
|
11831
|
+
* than the synced copy. On Meta it is a single Graph call per request (the account's
|
|
11832
|
+
* `/campaigns` and `/adsets` edges, filtered by `effective_status`); on TikTok one
|
|
11833
|
+
* `campaign/get` and one `adgroup/get` page (TikTok ad groups are returned as `adSets`).
|
|
11819
11834
|
*
|
|
11820
11835
|
* **Live vs synced.** GET /v1/ads/campaigns and GET /v1/ads/ad-sets serve Zernio's synced
|
|
11821
11836
|
* store, refreshed by background sync (typically 15 to 60 minutes behind Meta), and their
|
|
11822
11837
|
* `live=true` re-reads only the on/off switches of at most 20 objects. This endpoint returns
|
|
11823
11838
|
* what Meta reports at `readAt`, for every matching campaign and ad set, and stores nothing.
|
|
11824
11839
|
*
|
|
11825
|
-
* Budgets and bid amounts are
|
|
11826
|
-
*
|
|
11827
|
-
*
|
|
11828
|
-
* otherwise each ad set carries its own.
|
|
11840
|
+
* Budgets and bid amounts are in whole units of `currency`, the same units as the synced
|
|
11841
|
+
* rows (Meta's minor units are converted; TikTok already reports whole units). A campaign
|
|
11842
|
+
* with a campaign budget (Meta Advantage+ campaign budget, TikTok campaign budget
|
|
11843
|
+
* optimization) carries `budget`; otherwise each ad set carries its own.
|
|
11829
11844
|
*
|
|
11830
11845
|
* Each level returns at most `limit` rows. When more match, `paging.<level>.after` is a
|
|
11831
11846
|
* cursor: pass it back as `after` together with `level` to read the next page of that
|
|
11832
|
-
* level only.
|
|
11847
|
+
* level only. TikTok pages by number, so a TikTok cursor must be sent with the same
|
|
11848
|
+
* `limit` that produced it (another `limit` is a 400). Other platforms answer 501 rather
|
|
11849
|
+
* than serving synced data.
|
|
11850
|
+
*
|
|
11851
|
+
* **TikTok specifics.** `status` maps to TikTok's `primary_status` filter, which takes one
|
|
11852
|
+
* value: ACTIVE = delivering (`STATUS_DELIVERY_OK`), PAUSED = switched off
|
|
11853
|
+
* (`STATUS_DISABLE`), DELETED = `STATUS_DELETE`; omitted = every status except deleted
|
|
11854
|
+
* (`STATUS_NOT_DELETE`, which includes enabled entities that are not delivering, such as
|
|
11855
|
+
* an ad group in review). Several values, or IN_PROCESS, WITH_ISSUES, CAMPAIGN_PAUSED and
|
|
11856
|
+
* ARCHIVED, are a 400. `budgetRemaining` and `spendCap` are always null (TikTok reports
|
|
11857
|
+
* neither), campaign `bidStrategy` is null (TikTok bids per ad group), ad set `bidStrategy`
|
|
11858
|
+
* is normalized to the Meta vocabulary like GET /v1/ads, `promotedObject` is
|
|
11859
|
+
* `{ pixelId, customEventType, applicationId, customConversionId }` (the keys TikTok has
|
|
11860
|
+
* set, as POST /v1/ads/create takes them), and `targeting` holds TikTok's targeting
|
|
11861
|
+
* fields verbatim.
|
|
11833
11862
|
*/
|
|
11834
11863
|
export const getAdAccountLiveEntities = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdAccountLiveEntitiesData, ThrowOnError>) => {
|
|
11835
11864
|
return (options?.client ?? client).get<GetAdAccountLiveEntitiesResponse, GetAdAccountLiveEntitiesError, ThrowOnError>({
|
|
@@ -10612,7 +10612,7 @@ export type TargetingSpec = {
|
|
|
10612
10612
|
address?: string;
|
|
10613
10613
|
}>;
|
|
10614
10614
|
/**
|
|
10615
|
-
* Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations).
|
|
10615
|
+
* Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations). Google (Search, Display, Performance Max) excludes countries, regions, cities and zips as negative location criteria; countryGroups, places, neighborhoods, customLocations and a city radius return 400 there, and Demand Gen returns 400 for any exclusion.
|
|
10616
10616
|
*/
|
|
10617
10617
|
excludedLocations?: {
|
|
10618
10618
|
countries?: Array<(string)>;
|
|
@@ -40898,6 +40898,27 @@ export type GetCampaignTargetingResponse = ({
|
|
|
40898
40898
|
*/
|
|
40899
40899
|
countryCode?: (string) | null;
|
|
40900
40900
|
}>;
|
|
40901
|
+
/**
|
|
40902
|
+
* The negative (excluded) location criteria, same item shape as `locations` with `negative: true`.
|
|
40903
|
+
*/
|
|
40904
|
+
excludedLocations?: Array<{
|
|
40905
|
+
/**
|
|
40906
|
+
* Numeric id from Google's geoTargetConstants/{id}.
|
|
40907
|
+
*/
|
|
40908
|
+
geoTargetId?: string;
|
|
40909
|
+
/**
|
|
40910
|
+
* Always true here.
|
|
40911
|
+
*/
|
|
40912
|
+
negative?: boolean;
|
|
40913
|
+
name?: (string) | null;
|
|
40914
|
+
canonicalName?: (string) | null;
|
|
40915
|
+
type?: (string) | null;
|
|
40916
|
+
countryCode?: (string) | null;
|
|
40917
|
+
}>;
|
|
40918
|
+
/**
|
|
40919
|
+
* Whether PUT accepts `excludedLocations` for this campaign. False on Demand Gen, which returns 400 for any exclusion.
|
|
40920
|
+
*/
|
|
40921
|
+
excludedLocationsEditable?: boolean;
|
|
40901
40922
|
languages?: Array<{
|
|
40902
40923
|
/**
|
|
40903
40924
|
* Google's language code (ISO 639-1, plus variants such as `zh_CN`). Empty when the campaign's language_constant id is not in Zernio's checked-in table.
|
|
@@ -40965,6 +40986,28 @@ export type UpdateCampaignTargetingData = {
|
|
|
40965
40986
|
* Google's language codes (ISO 639-1, plus variants such as `zh_CN`), e.g. ["en", "de"].
|
|
40966
40987
|
*/
|
|
40967
40988
|
languages?: Array<(string)>;
|
|
40989
|
+
/**
|
|
40990
|
+
* Locations the campaign never serves in, as a bare country-code array or the nested countries/regions/cities/zips/metros shape. Replaces the excluded set; [] removes every exclusion.
|
|
40991
|
+
*/
|
|
40992
|
+
excludedLocations?: (Array<(string)> | {
|
|
40993
|
+
countries?: Array<(string)>;
|
|
40994
|
+
regions?: Array<(string | {
|
|
40995
|
+
key: string;
|
|
40996
|
+
name?: string;
|
|
40997
|
+
})>;
|
|
40998
|
+
cities?: Array<(string | {
|
|
40999
|
+
key: string;
|
|
41000
|
+
name?: string;
|
|
41001
|
+
})>;
|
|
41002
|
+
zips?: Array<(string | {
|
|
41003
|
+
key: string;
|
|
41004
|
+
name?: string;
|
|
41005
|
+
})>;
|
|
41006
|
+
metros?: Array<(string | {
|
|
41007
|
+
key: string;
|
|
41008
|
+
name?: string;
|
|
41009
|
+
})>;
|
|
41010
|
+
});
|
|
40968
41011
|
locationTargetingType?: GoogleLocationTargetingType;
|
|
40969
41012
|
};
|
|
40970
41013
|
};
|
|
@@ -40985,7 +41028,7 @@ export type UpdateCampaignTargetingResponse = ({
|
|
|
40985
41028
|
/**
|
|
40986
41029
|
* Which targeting fields were applied.
|
|
40987
41030
|
*/
|
|
40988
|
-
updated?: Array<('devices' | 'locations' | 'languages' | 'locationTargetingType')>;
|
|
41031
|
+
updated?: Array<('devices' | 'locations' | 'excludedLocations' | 'languages' | 'locationTargetingType')>;
|
|
40989
41032
|
/**
|
|
40990
41033
|
* The value read back from Google after the edit.
|
|
40991
41034
|
*/
|
|
@@ -41024,6 +41067,17 @@ export type UpdateCampaignTargetingResponse = ({
|
|
|
41024
41067
|
*/
|
|
41025
41068
|
countryCode?: (string) | null;
|
|
41026
41069
|
}>;
|
|
41070
|
+
/**
|
|
41071
|
+
* The negative (excluded) location criteria read back after the edit, same item shape as `locations`.
|
|
41072
|
+
*/
|
|
41073
|
+
excludedLocations?: Array<{
|
|
41074
|
+
geoTargetId?: string;
|
|
41075
|
+
negative?: boolean;
|
|
41076
|
+
name?: (string) | null;
|
|
41077
|
+
canonicalName?: (string) | null;
|
|
41078
|
+
type?: (string) | null;
|
|
41079
|
+
countryCode?: (string) | null;
|
|
41080
|
+
}>;
|
|
41027
41081
|
languages?: Array<{
|
|
41028
41082
|
code?: string;
|
|
41029
41083
|
id?: string;
|
|
@@ -45567,15 +45621,15 @@ export type GetAdAccountFinanceError = (unknown | ErrorResponse);
|
|
|
45567
45621
|
export type GetAdAccountLiveEntitiesData = {
|
|
45568
45622
|
query: {
|
|
45569
45623
|
/**
|
|
45570
|
-
* Zernio SocialAccount id (posting or ads variant) used to resolve the
|
|
45624
|
+
* Zernio SocialAccount id (posting or ads variant) used to resolve the platform token.
|
|
45571
45625
|
*/
|
|
45572
45626
|
accountId: string;
|
|
45573
45627
|
/**
|
|
45574
|
-
* Meta ad account id (act_<n>).
|
|
45628
|
+
* Meta ad account id (act_<n>) or TikTok advertiser id (digits).
|
|
45575
45629
|
*/
|
|
45576
45630
|
adAccountId: string;
|
|
45577
45631
|
/**
|
|
45578
|
-
* Cursor from `paging.campaigns.after` or `paging.adSets.after` of a previous response. Requires `level
|
|
45632
|
+
* Cursor from `paging.campaigns.after` or `paging.adSets.after` of a previous response. Requires `level` (and on TikTok the same `limit`).
|
|
45579
45633
|
*/
|
|
45580
45634
|
after?: string;
|
|
45581
45635
|
/**
|
|
@@ -45590,6 +45644,7 @@ export type GetAdAccountLiveEntitiesData = {
|
|
|
45590
45644
|
* Comma-separated Meta `effective_status` values to keep: ACTIVE, PAUSED, IN_PROCESS,
|
|
45591
45645
|
* WITH_ISSUES, DELETED, ARCHIVED, and CAMPAIGN_PAUSED (ad sets only; the campaigns level
|
|
45592
45646
|
* ignores it). Defaults to every status except DELETED and ARCHIVED. An unknown value is a 400.
|
|
45647
|
+
* TikTok takes a single value: ACTIVE, PAUSED or DELETED (see the description).
|
|
45593
45648
|
*/
|
|
45594
45649
|
status?: string;
|
|
45595
45650
|
};
|
|
@@ -45598,13 +45653,13 @@ export type GetAdAccountLiveEntitiesData = {
|
|
|
45598
45653
|
export type GetAdAccountLiveEntitiesResponse = ({
|
|
45599
45654
|
accountId?: string;
|
|
45600
45655
|
adAccountId?: string;
|
|
45601
|
-
platform?: 'facebook';
|
|
45656
|
+
platform?: 'facebook' | 'tiktok';
|
|
45602
45657
|
/**
|
|
45603
45658
|
* ISO 4217 code every budget and bid amount is expressed in.
|
|
45604
45659
|
*/
|
|
45605
45660
|
currency?: string;
|
|
45606
45661
|
/**
|
|
45607
|
-
* When
|
|
45662
|
+
* When the platform was read.
|
|
45608
45663
|
*/
|
|
45609
45664
|
readAt?: string;
|
|
45610
45665
|
/**
|
|
@@ -45614,11 +45669,11 @@ export type GetAdAccountLiveEntitiesResponse = ({
|
|
|
45614
45669
|
platformCampaignId?: string;
|
|
45615
45670
|
campaignName?: (string) | null;
|
|
45616
45671
|
/**
|
|
45617
|
-
* Meta `effective_status
|
|
45672
|
+
* Meta `effective_status` (ACTIVE, PAUSED, WITH_ISSUES...) or TikTok `secondary_status` (CAMPAIGN_STATUS_ENABLE...).
|
|
45618
45673
|
*/
|
|
45619
45674
|
platformCampaignStatus?: (string) | null;
|
|
45620
45675
|
/**
|
|
45621
|
-
*
|
|
45676
|
+
* The campaign's own switch: Meta `status` (ACTIVE, PAUSED, DELETED, ARCHIVED), or TikTok `operation_status` as ACTIVE (ENABLE) / PAUSED (DISABLE).
|
|
45622
45677
|
*/
|
|
45623
45678
|
configuredStatus?: (string) | null;
|
|
45624
45679
|
/**
|
|
@@ -45633,23 +45688,27 @@ export type GetAdAccountLiveEntitiesResponse = ({
|
|
|
45633
45688
|
type?: 'daily' | 'lifetime';
|
|
45634
45689
|
} | null;
|
|
45635
45690
|
/**
|
|
45636
|
-
*
|
|
45691
|
+
* Daily budget in whole units of `currency` (Meta `daily_budget`; TikTok `budget` under a daily budget mode).
|
|
45637
45692
|
*/
|
|
45638
45693
|
dailyBudget?: (number) | null;
|
|
45639
45694
|
/**
|
|
45640
|
-
*
|
|
45695
|
+
* Lifetime budget in whole units of `currency` (Meta `lifetime_budget`; TikTok `budget` under BUDGET_MODE_TOTAL).
|
|
45641
45696
|
*/
|
|
45642
45697
|
lifetimeBudget?: (number) | null;
|
|
45643
45698
|
/**
|
|
45644
|
-
*
|
|
45699
|
+
* TikTok only: `budget_mode` as TikTok reports it (BUDGET_MODE_DAY, BUDGET_MODE_DYNAMIC_DAILY_BUDGET, BUDGET_MODE_TOTAL, BUDGET_MODE_INFINITE).
|
|
45700
|
+
*/
|
|
45701
|
+
budgetMode?: (string) | null;
|
|
45702
|
+
/**
|
|
45703
|
+
* Meta `budget_remaining` in whole units of `currency`. Null when the campaign has no budget of its own, and always on TikTok.
|
|
45645
45704
|
*/
|
|
45646
45705
|
budgetRemaining?: (number) | null;
|
|
45647
45706
|
/**
|
|
45648
|
-
* Campaign spending limit (Meta `spend_cap`) in whole units of `currency`. Null when none is set.
|
|
45707
|
+
* Campaign spending limit (Meta `spend_cap`) in whole units of `currency`. Null when none is set, and always on TikTok.
|
|
45649
45708
|
*/
|
|
45650
45709
|
spendCap?: (number) | null;
|
|
45651
45710
|
/**
|
|
45652
|
-
* Meta `bid_strategy`, set on campaigns with a campaign budget.
|
|
45711
|
+
* Meta `bid_strategy`, set on campaigns with a campaign budget. Null on TikTok.
|
|
45653
45712
|
*/
|
|
45654
45713
|
bidStrategy?: (string) | null;
|
|
45655
45714
|
}>;
|
|
@@ -45661,11 +45720,11 @@ export type GetAdAccountLiveEntitiesResponse = ({
|
|
|
45661
45720
|
adSetName?: (string) | null;
|
|
45662
45721
|
platformCampaignId?: (string) | null;
|
|
45663
45722
|
/**
|
|
45664
|
-
* Meta `effective_status
|
|
45723
|
+
* Meta `effective_status` (ACTIVE, PAUSED, CAMPAIGN_PAUSED...) or TikTok `secondary_status` (ADGROUP_STATUS_DELIVERY_OK, ADGROUP_STATUS_AUDIT...).
|
|
45665
45724
|
*/
|
|
45666
45725
|
platformAdSetStatus?: (string) | null;
|
|
45667
45726
|
/**
|
|
45668
|
-
*
|
|
45727
|
+
* The ad set's own switch: Meta `status`, or TikTok `operation_status` as ACTIVE / PAUSED.
|
|
45669
45728
|
*/
|
|
45670
45729
|
configuredStatus?: (string) | null;
|
|
45671
45730
|
/**
|
|
@@ -45680,41 +45739,45 @@ export type GetAdAccountLiveEntitiesResponse = ({
|
|
|
45680
45739
|
type?: 'daily' | 'lifetime';
|
|
45681
45740
|
} | null;
|
|
45682
45741
|
/**
|
|
45683
|
-
*
|
|
45742
|
+
* Daily budget in whole units of `currency`.
|
|
45684
45743
|
*/
|
|
45685
45744
|
dailyBudget?: (number) | null;
|
|
45686
45745
|
/**
|
|
45687
|
-
*
|
|
45746
|
+
* Lifetime budget in whole units of `currency`.
|
|
45688
45747
|
*/
|
|
45689
45748
|
lifetimeBudget?: (number) | null;
|
|
45690
45749
|
/**
|
|
45691
|
-
*
|
|
45750
|
+
* TikTok only: `budget_mode` as TikTok reports it.
|
|
45751
|
+
*/
|
|
45752
|
+
budgetMode?: (string) | null;
|
|
45753
|
+
/**
|
|
45754
|
+
* Meta `budget_remaining` in whole units of `currency`. Null when the ad set has no budget of its own, and always on TikTok.
|
|
45692
45755
|
*/
|
|
45693
45756
|
budgetRemaining?: (number) | null;
|
|
45694
45757
|
/**
|
|
45695
|
-
* Meta `bid_strategy`.
|
|
45758
|
+
* Meta `bid_strategy`. On TikTok the ad group's `bid_type` normalized to the same vocabulary (LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, LOWEST_COST_WITH_MIN_ROAS).
|
|
45696
45759
|
*/
|
|
45697
45760
|
bidStrategy?: (string) | null;
|
|
45698
45761
|
/**
|
|
45699
|
-
*
|
|
45762
|
+
* Bid cap or cost target in whole units of `currency` (Meta `bid_amount`; TikTok `bid_price`, else `conversion_bid_price`, else `deep_cpa_bid`). Null when the strategy has none.
|
|
45700
45763
|
*/
|
|
45701
45764
|
bidAmount?: (number) | null;
|
|
45702
45765
|
/**
|
|
45703
|
-
* Meta `optimization_goal`.
|
|
45766
|
+
* Meta or TikTok `optimization_goal`.
|
|
45704
45767
|
*/
|
|
45705
45768
|
optimizationGoal?: (string) | null;
|
|
45706
45769
|
/**
|
|
45707
|
-
* Meta `billing_event`.
|
|
45770
|
+
* Meta or TikTok `billing_event`.
|
|
45708
45771
|
*/
|
|
45709
45772
|
billingEvent?: (string) | null;
|
|
45710
45773
|
/**
|
|
45711
|
-
* Meta `promoted_object` verbatim (snake_case).
|
|
45774
|
+
* Meta `promoted_object` verbatim (snake_case). On TikTok `{ pixelId, customEventType, applicationId, customConversionId }` from `pixel_id`, `optimization_event`, `app_id` and `custom_conversion_id`, only the keys TikTok has set; null when none is.
|
|
45712
45775
|
*/
|
|
45713
45776
|
promotedObject?: {
|
|
45714
45777
|
[key: string]: unknown;
|
|
45715
45778
|
} | null;
|
|
45716
45779
|
/**
|
|
45717
|
-
*
|
|
45780
|
+
* The platform's targeting verbatim (snake_case), as it reports it now: Meta `targeting`, or TikTok's ad group targeting fields (location_ids, age_groups, gender, languages, interest_category_ids, audience_ids, placements...).
|
|
45718
45781
|
*/
|
|
45719
45782
|
targeting?: {
|
|
45720
45783
|
[key: string]: unknown;
|