//native
type Pinterest = {
token: string;
};
/**
* Create ad groups
* Create multiple new ad groups.
*/
export async function main(
auth: Pinterest,
ad_account_id: string,
body: {
name?: string;
status?: "ACTIVE" | "PAUSED" | "ARCHIVED" | "DRAFT" | "DELETED_DRAFT";
budget_in_micro_currency?: number;
bid_in_micro_currency?: number;
optimization_goal_metadata?: {
conversion_tag_v3_goal_metadata?: {
attribution_windows?: {
click_window_days?: number;
engagement_window_days?: number;
view_window_days?: number;
};
conversion_event?:
| "PAGE_VISIT"
| "SIGNUP"
| "CHECKOUT"
| "CUSTOM"
| "VIEW_CATEGORY"
| "SEARCH"
| "ADD_TO_CART"
| "WATCH_VIDEO"
| "LEAD"
| "APP_INSTALL";
conversion_tag_id?: string;
cpa_goal_value_in_micro_currency?: string;
is_roas_optimized?: false | true;
learning_mode_type?: "ACTIVE" | "NOT_ACTIVE";
};
frequency_goal_metadata?: {
frequency?: number;
timerange?:
| "THIRTY_DAY"
| "DAY"
| "SEVEN_DAY"
| "TWENTY_MINUTE"
| "TEN_MINUTE"
| "TWENTY_FOUR_HOUR";
};
scrollup_goal_metadata?: {
scrollup_goal_value_in_micro_currency?: string;
};
};
budget_type?: "DAILY" | "LIFETIME" | "CBO_ADGROUP";
start_time?: number;
end_time?: number;
targeting_spec?: {
AGE_BUCKET?:
| "18-24"
| "21+"
| "25-34"
| "35-44"
| "45-49"
| "50-54"
| "55-64"
| "65+"[];
APPTYPE?:
| "android_mobile"
| "android_tablet"
| "ipad"
| "iphone"
| "web"
| "web_mobile"[];
AUDIENCE_EXCLUDE?: string[];
AUDIENCE_INCLUDE?: string[];
GENDER?: "unknown" | "male" | "female"[];
GEO?: string[];
INTEREST?: string[];
LOCALE?: string[];
LOCATION?: string[];
SHOPPING_RETARGETING?: {
lookback_window?: number;
tag_types?: number[];
exclusion_window?: number;
}[];
TARGETING_STRATEGY?:
| "CHOOSE_YOUR_OWN"
| "FIND_NEW_CUSTOMERS"
| "RECONNECT_WITH_USERS"[];
};
lifetime_frequency_cap?: number;
tracking_urls?: {
impression?: string[];
click?: string[];
engagement?: string[];
buyable_button?: string[];
audience_verification?: string[];
};
auto_targeting_enabled?: false | true;
placement_group?: "SEARCH" | "ALL" | "BROWSE" | "OTHER";
pacing_delivery_type?: "STANDARD" | "ACCELERATED";
campaign_id?: string;
billable_event?: "CLICKTHROUGH" | "IMPRESSION" | "VIDEO_V_50_MRC";
bid_strategy_type?: "AUTOMATIC_BID" | "MAX_BID" | "TARGET_AVG";
targeting_template_ids?: string[];
} & {
pacing_delivery_type?: "STANDARD" | "ACCELERATED";
auto_targeting_enabled?: false | true;
budget_type?: "DAILY" | "LIFETIME" | "CBO_ADGROUP";
}[],
) {
const url = new URL(
`https://api.pinterest.com/v5/ad_accounts/${ad_account_id}/ad_groups`,
);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 536 days ago