@graph8/sdk 0.251.0 → 0.262.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/README.md +9 -2
- package/dist/cli.js +216 -0
- package/dist/index.d.mts +105 -7
- package/dist/index.d.ts +105 -7
- package/dist/index.js +44 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -3
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +103 -7
- package/dist/react.d.ts +103 -7
- package/dist/react.js +62 -11
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +53 -12
- package/dist/react.mjs.map +1 -1
- package/dist/types/README.md +7 -0
- package/dist/types/agency.d.ts +20 -0
- package/dist/types/agentSetup.d.ts +57 -0
- package/dist/types/api.d.ts +127 -0
- package/dist/types/appClient.d.ts +99 -0
- package/dist/types/appPlatform.d.ts +269 -0
- package/dist/types/appTokens.d.ts +125 -0
- package/dist/types/apps.d.ts +130 -0
- package/dist/types/audiences.d.ts +88 -0
- package/dist/types/calendar.d.ts +55 -0
- package/dist/types/campaigns.d.ts +61 -0
- package/dist/types/chat.d.ts +35 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/companies.d.ts +123 -0
- package/dist/types/contacts.d.ts +200 -0
- package/dist/types/copilot.d.ts +31 -0
- package/dist/types/core.d.ts +1052 -0
- package/dist/types/deals.d.ts +215 -0
- package/dist/types/enrich.d.ts +51 -0
- package/dist/types/fields.d.ts +84 -0
- package/dist/types/forms.d.ts +16 -0
- package/dist/types/http.d.ts +141 -0
- package/dist/types/inbox.d.ts +123 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/intent.d.ts +196 -0
- package/dist/types/lists.d.ts +44 -0
- package/dist/types/mailboxes.d.ts +240 -0
- package/dist/types/marketplace.d.ts +62 -0
- package/dist/types/meetings.d.ts +70 -0
- package/dist/types/newsletter.d.ts +212 -0
- package/dist/types/notes.d.ts +57 -0
- package/dist/types/objects.d.ts +281 -0
- package/dist/types/pipelines.d.ts +135 -0
- package/dist/types/quotes.d.ts +143 -0
- package/dist/types/react.d.ts +978 -0
- package/dist/types/search.d.ts +99 -0
- package/dist/types/sequences.d.ts +255 -0
- package/dist/types/signals.d.ts +28 -0
- package/dist/types/skills.d.ts +176 -0
- package/dist/types/snippet.d.ts +24 -0
- package/dist/types/studio.d.ts +161 -0
- package/dist/types/tasks.d.ts +101 -0
- package/dist/types/types.d.ts +45 -0
- package/dist/types/utils.d.ts +21 -0
- package/dist/types/version.d.ts +10 -0
- package/dist/types/visitors.d.ts +29 -0
- package/dist/types/voice.d.ts +304 -0
- package/dist/types/webhooks.d.ts +71 -0
- package/dist/types/workflows.d.ts +229 -0
- package/docs/agents.md +748 -0
- package/docs/api/README.md +165 -0
- package/docs/api/accounts.d.ts +396 -0
- package/docs/api/accounts.md +644 -0
- package/docs/api/adCampaigns.d.ts +707 -0
- package/docs/api/adCampaigns.md +1091 -0
- package/docs/api/adCreatives.d.ts +996 -0
- package/docs/api/adCreatives.md +1708 -0
- package/docs/api/agency.d.ts +556 -0
- package/docs/api/agency.md +845 -0
- package/docs/api/agent.d.ts +330 -0
- package/docs/api/agent.md +514 -0
- package/docs/api/agents.d.ts +1622 -0
- package/docs/api/agents.md +2860 -0
- package/docs/api/aiInbox.d.ts +1984 -0
- package/docs/api/aiInbox.md +3490 -0
- package/docs/api/analytics.d.ts +1273 -0
- package/docs/api/analytics.md +2095 -0
- package/docs/api/apiKeys.d.ts +252 -0
- package/docs/api/apiKeys.md +318 -0
- package/docs/api/appDeployments.d.ts +236 -0
- package/docs/api/appDeployments.md +471 -0
- package/docs/api/appDomains.d.ts +171 -0
- package/docs/api/appDomains.md +281 -0
- package/docs/api/appLogs.d.ts +120 -0
- package/docs/api/appLogs.md +159 -0
- package/docs/api/appObjects.d.ts +415 -0
- package/docs/api/appObjects.md +568 -0
- package/docs/api/appPages.d.ts +557 -0
- package/docs/api/appPages.md +796 -0
- package/docs/api/appPlatformTokens.d.ts +123 -0
- package/docs/api/appPlatformTokens.md +172 -0
- package/docs/api/appointments.d.ts +2361 -0
- package/docs/api/appointments.md +3917 -0
- package/docs/api/apps.d.ts +822 -0
- package/docs/api/apps.md +1342 -0
- package/docs/api/assertUpsert.d.ts +286 -0
- package/docs/api/assertUpsert.md +370 -0
- package/docs/api/audienceSyncs.d.ts +259 -0
- package/docs/api/audienceSyncs.md +395 -0
- package/docs/api/brandKit.d.ts +686 -0
- package/docs/api/brandKit.md +1133 -0
- package/docs/api/bugReports.d.ts +181 -0
- package/docs/api/bugReports.md +268 -0
- package/docs/api/by-path.md +3260 -0
- package/docs/api/calendarInvites.d.ts +117 -0
- package/docs/api/calendarInvites.md +148 -0
- package/docs/api/campaignWorkflows.d.ts +152 -0
- package/docs/api/campaignWorkflows.md +200 -0
- package/docs/api/campaigns.d.ts +721 -0
- package/docs/api/campaigns.md +1236 -0
- package/docs/api/channels.d.ts +171 -0
- package/docs/api/channels.md +235 -0
- package/docs/api/cliCampaigns.d.ts +205 -0
- package/docs/api/cliCampaigns.md +256 -0
- package/docs/api/cliPipelines.d.ts +324 -0
- package/docs/api/cliPipelines.md +562 -0
- package/docs/api/clickHouse.d.ts +115 -0
- package/docs/api/clickHouse.md +138 -0
- package/docs/api/companies.d.ts +1636 -0
- package/docs/api/companies.md +2211 -0
- package/docs/api/companyIntelligence.d.ts +299 -0
- package/docs/api/companyIntelligence.md +488 -0
- package/docs/api/contacts.d.ts +2173 -0
- package/docs/api/contacts.md +3143 -0
- package/docs/api/content.d.ts +968 -0
- package/docs/api/content.md +1667 -0
- package/docs/api/contentGridSkills.d.ts +177 -0
- package/docs/api/contentGridSkills.md +271 -0
- package/docs/api/copilot.d.ts +1017 -0
- package/docs/api/copilot.md +1765 -0
- package/docs/api/crmSyncs.d.ts +215 -0
- package/docs/api/crmSyncs.md +301 -0
- package/docs/api/customerSuccess.d.ts +491 -0
- package/docs/api/customerSuccess.md +776 -0
- package/docs/api/deals.d.ts +1697 -0
- package/docs/api/deals.md +2436 -0
- package/docs/api/deliverability.d.ts +418 -0
- package/docs/api/deliverability.md +677 -0
- package/docs/api/desk.d.ts +1765 -0
- package/docs/api/desk.md +3007 -0
- package/docs/api/dialer.d.ts +1185 -0
- package/docs/api/dialer.md +2166 -0
- package/docs/api/dialerAnalytics.d.ts +187 -0
- package/docs/api/dialerAnalytics.md +257 -0
- package/docs/api/documents.d.ts +895 -0
- package/docs/api/documents.md +1440 -0
- package/docs/api/duplicates.d.ts +195 -0
- package/docs/api/duplicates.md +315 -0
- package/docs/api/eSign.d.ts +38 -0
- package/docs/api/eSign.md +54 -0
- package/docs/api/eSignature.d.ts +242 -0
- package/docs/api/eSignature.md +341 -0
- package/docs/api/enrichment.d.ts +3207 -0
- package/docs/api/enrichment.md +5225 -0
- package/docs/api/events.d.ts +115 -0
- package/docs/api/events.md +105 -0
- package/docs/api/fields.d.ts +482 -0
- package/docs/api/fields.md +566 -0
- package/docs/api/forms.d.ts +1012 -0
- package/docs/api/forms.md +1542 -0
- package/docs/api/gtmCampaigns.d.ts +662 -0
- package/docs/api/gtmCampaigns.md +1044 -0
- package/docs/api/gtmContext.d.ts +1187 -0
- package/docs/api/gtmContext.md +2112 -0
- package/docs/api/gtmDeliverability.d.ts +60 -0
- package/docs/api/gtmDeliverability.md +63 -0
- package/docs/api/gtmKnowledgeBase.d.ts +76 -0
- package/docs/api/gtmKnowledgeBase.md +91 -0
- package/docs/api/gtmLaunchHelpers.d.ts +123 -0
- package/docs/api/gtmLaunchHelpers.md +148 -0
- package/docs/api/gtmLibrary.d.ts +448 -0
- package/docs/api/gtmLibrary.md +780 -0
- package/docs/api/health.d.ts +39 -0
- package/docs/api/health.md +58 -0
- package/docs/api/imageLibrary.d.ts +341 -0
- package/docs/api/imageLibrary.md +569 -0
- package/docs/api/imports.d.ts +157 -0
- package/docs/api/imports.md +174 -0
- package/docs/api/inbox.d.ts +709 -0
- package/docs/api/inbox.md +1067 -0
- package/docs/api/install.d.ts +213 -0
- package/docs/api/install.md +317 -0
- package/docs/api/installedApps.d.ts +131 -0
- package/docs/api/installedApps.md +241 -0
- package/docs/api/integrationStatus.d.ts +142 -0
- package/docs/api/integrationStatus.md +205 -0
- package/docs/api/integrations.d.ts +2327 -0
- package/docs/api/integrations.md +3791 -0
- package/docs/api/intent.d.ts +482 -0
- package/docs/api/intent.md +858 -0
- package/docs/api/knowledge.d.ts +501 -0
- package/docs/api/knowledge.md +843 -0
- package/docs/api/knowledgeBase.d.ts +84 -0
- package/docs/api/knowledgeBase.md +96 -0
- package/docs/api/landingPages.d.ts +1411 -0
- package/docs/api/landingPages.md +2488 -0
- package/docs/api/leads.d.ts +133 -0
- package/docs/api/leads.md +180 -0
- package/docs/api/library.d.ts +217 -0
- package/docs/api/library.md +338 -0
- package/docs/api/linkedIn.d.ts +227 -0
- package/docs/api/linkedIn.md +289 -0
- package/docs/api/linkedInOutreach.d.ts +727 -0
- package/docs/api/linkedInOutreach.md +990 -0
- package/docs/api/lists.d.ts +1106 -0
- package/docs/api/lists.md +1609 -0
- package/docs/api/logs.d.ts +71 -0
- package/docs/api/logs.md +70 -0
- package/docs/api/mailboxes.d.ts +1050 -0
- package/docs/api/mailboxes.md +1690 -0
- package/docs/api/marketingIntelligence.d.ts +256 -0
- package/docs/api/marketingIntelligence.md +454 -0
- package/docs/api/marketplace.d.ts +3173 -0
- package/docs/api/marketplace.md +5953 -0
- package/docs/api/mcp.d.ts +69 -0
- package/docs/api/mcp.md +69 -0
- package/docs/api/me.d.ts +54 -0
- package/docs/api/me.md +56 -0
- package/docs/api/meetings.d.ts +539 -0
- package/docs/api/meetings.md +747 -0
- package/docs/api/newsletter.d.ts +1613 -0
- package/docs/api/newsletter.md +2746 -0
- package/docs/api/notes.d.ts +517 -0
- package/docs/api/notes.md +888 -0
- package/docs/api/notifications.d.ts +94 -0
- package/docs/api/notifications.md +105 -0
- package/docs/api/objects.d.ts +621 -0
- package/docs/api/objects.md +1098 -0
- package/docs/api/openSearch.d.ts +234 -0
- package/docs/api/openSearch.md +297 -0
- package/docs/api/ops.d.ts +299 -0
- package/docs/api/ops.md +339 -0
- package/docs/api/orgGovernance.d.ts +393 -0
- package/docs/api/orgGovernance.md +623 -0
- package/docs/api/orgVideos.d.ts +184 -0
- package/docs/api/orgVideos.md +252 -0
- package/docs/api/organizationSettings.d.ts +626 -0
- package/docs/api/organizationSettings.md +911 -0
- package/docs/api/phoneNumbers.d.ts +484 -0
- package/docs/api/phoneNumbers.md +777 -0
- package/docs/api/profile.d.ts +329 -0
- package/docs/api/profile.md +540 -0
- package/docs/api/programmaticPages.d.ts +400 -0
- package/docs/api/programmaticPages.md +626 -0
- package/docs/api/providerDomains.d.ts +866 -0
- package/docs/api/providerDomains.md +1446 -0
- package/docs/api/providerUsage.d.ts +129 -0
- package/docs/api/providerUsage.md +186 -0
- package/docs/api/public.d.ts +69 -0
- package/docs/api/public.md +78 -0
- package/docs/api/publicCopilot.d.ts +67 -0
- package/docs/api/publicCopilot.md +80 -0
- package/docs/api/publicSignals.d.ts +66 -0
- package/docs/api/publicSignals.md +71 -0
- package/docs/api/publicVisitors.d.ts +97 -0
- package/docs/api/publicVisitors.md +118 -0
- package/docs/api/quotes.d.ts +1564 -0
- package/docs/api/quotes.md +2553 -0
- package/docs/api/radar.d.ts +808 -0
- package/docs/api/radar.md +1431 -0
- package/docs/api/radarReports.d.ts +208 -0
- package/docs/api/radarReports.md +306 -0
- package/docs/api/recordRoles.d.ts +143 -0
- package/docs/api/recordRoles.md +175 -0
- package/docs/api/repos.d.ts +146 -0
- package/docs/api/repos.md +211 -0
- package/docs/api/research.d.ts +295 -0
- package/docs/api/research.md +534 -0
- package/docs/api/revenue.d.ts +402 -0
- package/docs/api/revenue.md +608 -0
- package/docs/api/revenueAnalytics.d.ts +147 -0
- package/docs/api/revenueAnalytics.md +212 -0
- package/docs/api/revenueLifecycle.d.ts +207 -0
- package/docs/api/revenueLifecycle.md +274 -0
- package/docs/api/revenueRecords.d.ts +372 -0
- package/docs/api/revenueRecords.md +563 -0
- package/docs/api/roles.d.ts +431 -0
- package/docs/api/roles.md +812 -0
- package/docs/api/salesCoach.d.ts +877 -0
- package/docs/api/salesCoach.md +1540 -0
- package/docs/api/sandbox.d.ts +210 -0
- package/docs/api/sandbox.md +380 -0
- package/docs/api/scans.d.ts +104 -0
- package/docs/api/scans.md +136 -0
- package/docs/api/scheduleBuy.d.ts +293 -0
- package/docs/api/scheduleBuy.md +431 -0
- package/docs/api/scraping.d.ts +266 -0
- package/docs/api/scraping.md +383 -0
- package/docs/api/sdrAnalytics.d.ts +138 -0
- package/docs/api/sdrAnalytics.md +246 -0
- package/docs/api/search.d.ts +598 -0
- package/docs/api/search.md +866 -0
- package/docs/api/seo.d.ts +447 -0
- package/docs/api/seo.md +660 -0
- package/docs/api/sequenceLifecycle.d.ts +439 -0
- package/docs/api/sequenceLifecycle.md +513 -0
- package/docs/api/sequences.d.ts +1936 -0
- package/docs/api/sequences.md +3232 -0
- package/docs/api/settings.d.ts +448 -0
- package/docs/api/settings.md +731 -0
- package/docs/api/signals.d.ts +1441 -0
- package/docs/api/signals.md +2526 -0
- package/docs/api/signatures.d.ts +719 -0
- package/docs/api/signatures.md +1247 -0
- package/docs/api/skills.d.ts +230 -0
- package/docs/api/skills.md +466 -0
- package/docs/api/snippet.d.ts +85 -0
- package/docs/api/snippet.md +106 -0
- package/docs/api/socialPublishing.d.ts +824 -0
- package/docs/api/socialPublishing.md +1245 -0
- package/docs/api/studioDocuments.d.ts +244 -0
- package/docs/api/studioDocuments.md +348 -0
- package/docs/api/support.d.ts +90 -0
- package/docs/api/support.md +76 -0
- package/docs/api/suppressions.d.ts +241 -0
- package/docs/api/suppressions.md +343 -0
- package/docs/api/surveys.d.ts +847 -0
- package/docs/api/surveys.md +1223 -0
- package/docs/api/tasks.d.ts +813 -0
- package/docs/api/tasks.md +1344 -0
- package/docs/api/teamMembers.d.ts +668 -0
- package/docs/api/teamMembers.md +1040 -0
- package/docs/api/teams.d.ts +784 -0
- package/docs/api/teams.md +1395 -0
- package/docs/api/usage.d.ts +277 -0
- package/docs/api/usage.md +389 -0
- package/docs/api/visitors.d.ts +690 -0
- package/docs/api/visitors.md +1075 -0
- package/docs/api/voice.d.ts +4661 -0
- package/docs/api/voice.md +7905 -0
- package/docs/api/webAnalytics.d.ts +964 -0
- package/docs/api/webAnalytics.md +1452 -0
- package/docs/api/webChat.d.ts +1704 -0
- package/docs/api/webChat.md +2048 -0
- package/docs/api/webhooks.d.ts +251 -0
- package/docs/api/webhooks.md +386 -0
- package/docs/api/websiteEditor.d.ts +324 -0
- package/docs/api/websiteEditor.md +517 -0
- package/docs/api/work.d.ts +2298 -0
- package/docs/api/work.md +3096 -0
- package/docs/api/workbench.d.ts +2962 -0
- package/docs/api/workbench.md +4884 -0
- package/docs/api/workflows.d.ts +1218 -0
- package/docs/api/workflows.md +2302 -0
- package/docs/sdk-clients.md +4339 -0
- package/package.json +10 -3
|
@@ -0,0 +1,707 @@
|
|
|
1
|
+
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Types for `g8.api.adCampaigns` (Ad Campaigns): 19 operations.
|
|
5
|
+
*
|
|
6
|
+
* For reading. In code, import from the package instead:
|
|
7
|
+
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
8
|
+
* type In = ApiInput<"archive_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__delete">;
|
|
9
|
+
*
|
|
10
|
+
* Reference with examples: adCampaigns.md
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
/** `g8.api.adCampaigns.<member>` -> the operationId it calls. */
|
|
15
|
+
export interface AdCampaignsMembers {
|
|
16
|
+
archiveCampaignAd: "archive_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__delete";
|
|
17
|
+
createCampaignAd: "create_campaign_ad_ad_campaigns__campaign_id__ads_post";
|
|
18
|
+
createCampaignAdsBatch: "create_campaign_ads_batch_ad_campaigns__campaign_id__ads_batch_post";
|
|
19
|
+
deleteAdCampaign: "delete_ad_campaign_ad_campaigns__campaign_id__delete";
|
|
20
|
+
getAdCampaign: "get_ad_campaign_ad_campaigns__campaign_id__get";
|
|
21
|
+
getCampaignAd: "get_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__get";
|
|
22
|
+
getCampaignEditableFields: "get_campaign_editable_fields_ad_campaigns__campaign_id__editable_get";
|
|
23
|
+
getPerCampaignMetrics: "get_per_campaign_metrics_ad_campaigns_metrics_get";
|
|
24
|
+
launchAdCampaign: "launch_ad_campaign_audience_syncs__config_id__launch_post";
|
|
25
|
+
listAdCampaigns: "list_ad_campaigns_ad_campaigns_get";
|
|
26
|
+
listCampaignAds: "list_campaign_ads_ad_campaigns__campaign_id__ads_get";
|
|
27
|
+
previewAdCampaignEdit: "preview_ad_campaign_edit_ad_campaigns__campaign_id__edit_preview_post";
|
|
28
|
+
refreshAllCampaignStatuses: "refresh_all_campaign_statuses_ad_campaigns_status_refresh_post";
|
|
29
|
+
refreshCampaignStatus: "refresh_campaign_status_ad_campaigns__campaign_id__status_refresh_post";
|
|
30
|
+
retryCampaignLaunch: "retry_campaign_launch_ad_campaigns__campaign_id__retry_post";
|
|
31
|
+
setCampaignAdStatus: "set_campaign_ad_status_ad_campaigns__campaign_id__ads__ad_id__status_post";
|
|
32
|
+
updateAdCampaign: "update_ad_campaign_ad_campaigns__campaign_id__put";
|
|
33
|
+
updateCampaignAd: "update_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__patch";
|
|
34
|
+
uploadAdImage: "upload_ad_image_ad_campaigns_images_post";
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Input and output of every `g8.api.adCampaigns` operation, keyed by operationId. */
|
|
38
|
+
export interface AdCampaignsOperations {
|
|
39
|
+
/**
|
|
40
|
+
* DELETE /ad-campaigns/{campaign_id}/ads/{ad_id}
|
|
41
|
+
* Archive Campaign Ad
|
|
42
|
+
* tier: destructive · scope: ads:delete
|
|
43
|
+
*/
|
|
44
|
+
archive_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__delete: {
|
|
45
|
+
input: {
|
|
46
|
+
path: {
|
|
47
|
+
/** Ad campaign ID */
|
|
48
|
+
campaign_id: number;
|
|
49
|
+
/** graph8 ad ID */
|
|
50
|
+
ad_id: number;
|
|
51
|
+
};
|
|
52
|
+
headers?: {
|
|
53
|
+
"X-Target-Org-Id"?: string | null;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
output: ApiResponse_AdResponse_;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* POST /ad-campaigns/{campaign_id}/ads
|
|
60
|
+
* Create Campaign Ad
|
|
61
|
+
* tier: external · scope: ads:run
|
|
62
|
+
*/
|
|
63
|
+
create_campaign_ad_ad_campaigns__campaign_id__ads_post: {
|
|
64
|
+
input: {
|
|
65
|
+
path: {
|
|
66
|
+
/** Ad campaign ID */
|
|
67
|
+
campaign_id: number;
|
|
68
|
+
};
|
|
69
|
+
headers?: {
|
|
70
|
+
"X-Target-Org-Id"?: string | null;
|
|
71
|
+
};
|
|
72
|
+
body: AdCreateRequest;
|
|
73
|
+
};
|
|
74
|
+
output: ApiResponse_AdResponse_;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* POST /ad-campaigns/{campaign_id}/ads/batch
|
|
78
|
+
* Create Campaign Ads Batch
|
|
79
|
+
* tier: external · scope: ads:run
|
|
80
|
+
*/
|
|
81
|
+
create_campaign_ads_batch_ad_campaigns__campaign_id__ads_batch_post: {
|
|
82
|
+
input: {
|
|
83
|
+
path: {
|
|
84
|
+
/** Ad campaign ID */
|
|
85
|
+
campaign_id: number;
|
|
86
|
+
};
|
|
87
|
+
headers?: {
|
|
88
|
+
"X-Target-Org-Id"?: string | null;
|
|
89
|
+
};
|
|
90
|
+
body: AdBatchCreateRequest;
|
|
91
|
+
};
|
|
92
|
+
output: ApiResponse_AdBatchCreateResponse_;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* DELETE /ad-campaigns/{campaign_id}
|
|
96
|
+
* Delete Ad Campaign
|
|
97
|
+
* tier: destructive · scope: ads:delete
|
|
98
|
+
*/
|
|
99
|
+
delete_ad_campaign_ad_campaigns__campaign_id__delete: {
|
|
100
|
+
input: {
|
|
101
|
+
path: {
|
|
102
|
+
/** The ad campaign's id. */
|
|
103
|
+
campaign_id: number;
|
|
104
|
+
};
|
|
105
|
+
headers?: {
|
|
106
|
+
"X-Target-Org-Id"?: string | null;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
output: ApiResponse_AdPayload_;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* GET /ad-campaigns/{campaign_id}
|
|
113
|
+
* Get Ad Campaign
|
|
114
|
+
* tier: read · scope: ads:read
|
|
115
|
+
*/
|
|
116
|
+
get_ad_campaign_ad_campaigns__campaign_id__get: {
|
|
117
|
+
input: {
|
|
118
|
+
path: {
|
|
119
|
+
/** Ad campaign ID */
|
|
120
|
+
campaign_id: number;
|
|
121
|
+
};
|
|
122
|
+
headers?: {
|
|
123
|
+
"X-Target-Org-Id"?: string | null;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
output: ApiResponse_AdCampaignResponse_;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* GET /ad-campaigns/{campaign_id}/ads/{ad_id}
|
|
130
|
+
* Get Campaign Ad
|
|
131
|
+
* tier: read · scope: ads:read
|
|
132
|
+
*/
|
|
133
|
+
get_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__get: {
|
|
134
|
+
input: {
|
|
135
|
+
path: {
|
|
136
|
+
/** Ad campaign ID */
|
|
137
|
+
campaign_id: number;
|
|
138
|
+
/** graph8 ad ID */
|
|
139
|
+
ad_id: number;
|
|
140
|
+
};
|
|
141
|
+
headers?: {
|
|
142
|
+
"X-Target-Org-Id"?: string | null;
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
output: ApiResponse_AdResponse_;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* GET /ad-campaigns/{campaign_id}/editable
|
|
149
|
+
* Get Campaign Editable Fields
|
|
150
|
+
* tier: read · scope: ads:read
|
|
151
|
+
*/
|
|
152
|
+
get_campaign_editable_fields_ad_campaigns__campaign_id__editable_get: {
|
|
153
|
+
input: {
|
|
154
|
+
path: {
|
|
155
|
+
/** The ad campaign's id. */
|
|
156
|
+
campaign_id: number;
|
|
157
|
+
};
|
|
158
|
+
headers?: {
|
|
159
|
+
"X-Target-Org-Id"?: string | null;
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
output: ApiResponse_AdPayload_;
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* GET /ad-campaigns/metrics
|
|
166
|
+
* Get Per Campaign Metrics
|
|
167
|
+
* tier: read · scope: ads:read
|
|
168
|
+
*/
|
|
169
|
+
get_per_campaign_metrics_ad_campaigns_metrics_get: {
|
|
170
|
+
input: {
|
|
171
|
+
query?: {
|
|
172
|
+
/** Days to look back. */
|
|
173
|
+
days?: number;
|
|
174
|
+
/** One platform. Omit for all. */
|
|
175
|
+
platform?: ("meta" | "linkedin" | "google" | "x") | null;
|
|
176
|
+
ad_account_id?: string | null;
|
|
177
|
+
};
|
|
178
|
+
headers?: {
|
|
179
|
+
"X-Target-Org-Id"?: string | null;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
output: ApiResponse_AdPayload_;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* POST /audience-syncs/{config_id}/launch
|
|
186
|
+
* Launch Ad Campaign
|
|
187
|
+
* tier: external · scope: ads:run
|
|
188
|
+
*/
|
|
189
|
+
launch_ad_campaign_audience_syncs__config_id__launch_post: {
|
|
190
|
+
input: {
|
|
191
|
+
path: {
|
|
192
|
+
/** The sync config whose audience the campaign targets. */
|
|
193
|
+
config_id: number;
|
|
194
|
+
};
|
|
195
|
+
headers?: {
|
|
196
|
+
"X-Target-Org-Id"?: string | null;
|
|
197
|
+
};
|
|
198
|
+
body: LaunchAdCampaignRequest;
|
|
199
|
+
};
|
|
200
|
+
output: ApiResponse_AdPayload_;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* GET /ad-campaigns
|
|
204
|
+
* List Ad Campaigns
|
|
205
|
+
* tier: read · scope: ads:read
|
|
206
|
+
*/
|
|
207
|
+
list_ad_campaigns_ad_campaigns_get: {
|
|
208
|
+
input: {
|
|
209
|
+
query?: {
|
|
210
|
+
/** Filter by platform: google | linkedin */
|
|
211
|
+
platform?: string | null;
|
|
212
|
+
};
|
|
213
|
+
headers?: {
|
|
214
|
+
"X-Target-Org-Id"?: string | null;
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
output: ApiResponse_list_AdCampaignResponse__;
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* GET /ad-campaigns/{campaign_id}/ads
|
|
221
|
+
* List Campaign Ads
|
|
222
|
+
* tier: read · scope: ads:read
|
|
223
|
+
*/
|
|
224
|
+
list_campaign_ads_ad_campaigns__campaign_id__ads_get: {
|
|
225
|
+
input: {
|
|
226
|
+
path: {
|
|
227
|
+
/** Ad campaign ID */
|
|
228
|
+
campaign_id: number;
|
|
229
|
+
};
|
|
230
|
+
query?: {
|
|
231
|
+
include_archived?: boolean;
|
|
232
|
+
};
|
|
233
|
+
headers?: {
|
|
234
|
+
"X-Target-Org-Id"?: string | null;
|
|
235
|
+
};
|
|
236
|
+
};
|
|
237
|
+
output: ApiResponse_AdListResponse_;
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* POST /ad-campaigns/{campaign_id}/edit-preview
|
|
241
|
+
* Preview Ad Campaign Edit
|
|
242
|
+
* tier: external · scope: ads:run
|
|
243
|
+
*/
|
|
244
|
+
preview_ad_campaign_edit_ad_campaigns__campaign_id__edit_preview_post: {
|
|
245
|
+
input: {
|
|
246
|
+
path: {
|
|
247
|
+
/** The ad campaign's id. */
|
|
248
|
+
campaign_id: number;
|
|
249
|
+
};
|
|
250
|
+
headers?: {
|
|
251
|
+
"X-Target-Org-Id"?: string | null;
|
|
252
|
+
};
|
|
253
|
+
body: UpdateAdCampaignRequest;
|
|
254
|
+
};
|
|
255
|
+
output: ApiResponse_AdPayload_;
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* POST /ad-campaigns/status-refresh
|
|
259
|
+
* Refresh All Campaign Statuses
|
|
260
|
+
* tier: external · scope: ads:run
|
|
261
|
+
*/
|
|
262
|
+
refresh_all_campaign_statuses_ad_campaigns_status_refresh_post: {
|
|
263
|
+
input: {
|
|
264
|
+
headers?: {
|
|
265
|
+
"X-Target-Org-Id"?: string | null;
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
output: ApiResponse_AdPayload_;
|
|
269
|
+
};
|
|
270
|
+
/**
|
|
271
|
+
* POST /ad-campaigns/{campaign_id}/status-refresh
|
|
272
|
+
* Refresh Campaign Status
|
|
273
|
+
* tier: external · scope: ads:run
|
|
274
|
+
*/
|
|
275
|
+
refresh_campaign_status_ad_campaigns__campaign_id__status_refresh_post: {
|
|
276
|
+
input: {
|
|
277
|
+
path: {
|
|
278
|
+
/** The ad campaign's id. */
|
|
279
|
+
campaign_id: number;
|
|
280
|
+
};
|
|
281
|
+
headers?: {
|
|
282
|
+
"X-Target-Org-Id"?: string | null;
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
output: ApiResponse_AdPayload_;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* POST /ad-campaigns/{campaign_id}/retry
|
|
289
|
+
* Retry Campaign Launch
|
|
290
|
+
* tier: external · scope: ads:run
|
|
291
|
+
*/
|
|
292
|
+
retry_campaign_launch_ad_campaigns__campaign_id__retry_post: {
|
|
293
|
+
input: {
|
|
294
|
+
path: {
|
|
295
|
+
/** The ad campaign's id. */
|
|
296
|
+
campaign_id: number;
|
|
297
|
+
};
|
|
298
|
+
headers?: {
|
|
299
|
+
"X-Target-Org-Id"?: string | null;
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
output: ApiResponse_AdPayload_;
|
|
303
|
+
};
|
|
304
|
+
/**
|
|
305
|
+
* POST /ad-campaigns/{campaign_id}/ads/{ad_id}/status
|
|
306
|
+
* Set Campaign Ad Status
|
|
307
|
+
* tier: external · scope: ads:run
|
|
308
|
+
*/
|
|
309
|
+
set_campaign_ad_status_ad_campaigns__campaign_id__ads__ad_id__status_post: {
|
|
310
|
+
input: {
|
|
311
|
+
path: {
|
|
312
|
+
/** Ad campaign ID */
|
|
313
|
+
campaign_id: number;
|
|
314
|
+
/** graph8 ad ID */
|
|
315
|
+
ad_id: number;
|
|
316
|
+
};
|
|
317
|
+
headers?: {
|
|
318
|
+
"X-Target-Org-Id"?: string | null;
|
|
319
|
+
};
|
|
320
|
+
body: AdStatusRequest;
|
|
321
|
+
};
|
|
322
|
+
output: ApiResponse_AdResponse_;
|
|
323
|
+
};
|
|
324
|
+
/**
|
|
325
|
+
* PUT /ad-campaigns/{campaign_id}
|
|
326
|
+
* Update Ad Campaign
|
|
327
|
+
* tier: external · scope: ads:run
|
|
328
|
+
*/
|
|
329
|
+
update_ad_campaign_ad_campaigns__campaign_id__put: {
|
|
330
|
+
input: {
|
|
331
|
+
path: {
|
|
332
|
+
/** The ad campaign's id. */
|
|
333
|
+
campaign_id: number;
|
|
334
|
+
};
|
|
335
|
+
headers?: {
|
|
336
|
+
"X-Target-Org-Id"?: string | null;
|
|
337
|
+
};
|
|
338
|
+
body: UpdateAdCampaignRequest;
|
|
339
|
+
};
|
|
340
|
+
output: ApiResponse_AdPayload_;
|
|
341
|
+
};
|
|
342
|
+
/**
|
|
343
|
+
* PATCH /ad-campaigns/{campaign_id}/ads/{ad_id}
|
|
344
|
+
* Update Campaign Ad
|
|
345
|
+
* tier: external · scope: ads:run
|
|
346
|
+
*/
|
|
347
|
+
update_campaign_ad_ad_campaigns__campaign_id__ads__ad_id__patch: {
|
|
348
|
+
input: {
|
|
349
|
+
path: {
|
|
350
|
+
/** Ad campaign ID */
|
|
351
|
+
campaign_id: number;
|
|
352
|
+
/** graph8 ad ID */
|
|
353
|
+
ad_id: number;
|
|
354
|
+
};
|
|
355
|
+
headers?: {
|
|
356
|
+
"X-Target-Org-Id"?: string | null;
|
|
357
|
+
};
|
|
358
|
+
body: AdUpdateRequest;
|
|
359
|
+
};
|
|
360
|
+
output: ApiResponse_AdUpdateResponse_;
|
|
361
|
+
};
|
|
362
|
+
/**
|
|
363
|
+
* POST /ad-campaigns/images
|
|
364
|
+
* Upload Ad Image
|
|
365
|
+
* tier: external · scope: ads:run
|
|
366
|
+
*/
|
|
367
|
+
upload_ad_image_ad_campaigns_images_post: {
|
|
368
|
+
input: {
|
|
369
|
+
headers?: {
|
|
370
|
+
"X-Target-Org-Id"?: string | null;
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
output: ApiResponse_AdPayload_;
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// 21 schemas referenced above (the same as G8Contract.<Name>).
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Add several ads at once — "launch these four creatives as four ads".
|
|
381
|
+
*
|
|
382
|
+
* Partial success is expected: one creative rejected on policy does not stop
|
|
383
|
+
* the others, and the response reports each outcome separately.
|
|
384
|
+
*/
|
|
385
|
+
export interface AdBatchCreateRequest {
|
|
386
|
+
ads: Array<AdCreateRequest>;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
export interface AdBatchCreateResponse {
|
|
390
|
+
campaign_id: number;
|
|
391
|
+
failed: number;
|
|
392
|
+
platform?: string | null;
|
|
393
|
+
requested: number;
|
|
394
|
+
results: Array<AdBatchResultItem>;
|
|
395
|
+
/** ok | partial — never render success off a 200 alone */
|
|
396
|
+
status: string;
|
|
397
|
+
succeeded: number;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export interface AdBatchResultItem {
|
|
401
|
+
ad?: AdResponse | null;
|
|
402
|
+
error?: string | null;
|
|
403
|
+
index: number;
|
|
404
|
+
status: string;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* A launched paid-ad campaign.
|
|
409
|
+
*
|
|
410
|
+
* Creative fields are NOT published here even though they still exist on the
|
|
411
|
+
* underlying row for backwards compatibility. They are attributes of an ad,
|
|
412
|
+
* not of a campaign, and publishing them at campaign level would force either
|
|
413
|
+
* a breaking change or a permanent duplicate representation once a campaign
|
|
414
|
+
* holds more than one ad. Read them from ``/ad-campaigns/{id}/ads``.
|
|
415
|
+
*/
|
|
416
|
+
export interface AdCampaignResponse {
|
|
417
|
+
/** Number of live (non-archived) ads in this campaign */
|
|
418
|
+
ad_count?: number;
|
|
419
|
+
created_at?: string | null;
|
|
420
|
+
currency?: string | null;
|
|
421
|
+
daily_budget?: number | null;
|
|
422
|
+
end_date?: string | null;
|
|
423
|
+
google_campaign_subtype?: string | null;
|
|
424
|
+
id: number;
|
|
425
|
+
launched_at?: string | null;
|
|
426
|
+
name: string;
|
|
427
|
+
objective?: string | null;
|
|
428
|
+
platform: string;
|
|
429
|
+
platform_campaign_id?: string | null;
|
|
430
|
+
start_date?: string | null;
|
|
431
|
+
status: string;
|
|
432
|
+
sync_config_id: number;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Add one ad to a campaign.
|
|
437
|
+
*
|
|
438
|
+
* Valid before launch (created with its siblings when the campaign launches)
|
|
439
|
+
* and after (pushed to the live campaign immediately). ``extra="forbid"`` so a
|
|
440
|
+
* field we never wired is a 422 rather than a silent success.
|
|
441
|
+
*/
|
|
442
|
+
export interface AdCreateRequest {
|
|
443
|
+
copy_assets?: Record<string, unknown> | null;
|
|
444
|
+
creative_image_url?: string | null;
|
|
445
|
+
creative_image_url_portrait?: string | null;
|
|
446
|
+
creative_image_url_square?: string | null;
|
|
447
|
+
cta?: string | null;
|
|
448
|
+
description?: string | null;
|
|
449
|
+
destination_url?: string | null;
|
|
450
|
+
headline?: string | null;
|
|
451
|
+
logo_image_url?: string | null;
|
|
452
|
+
name?: string | null;
|
|
453
|
+
primary_text?: string | null;
|
|
454
|
+
source_ad_creative_id?: string | null;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
export interface AdListResponse {
|
|
458
|
+
ads: Array<AdResponse>;
|
|
459
|
+
campaign_id: number;
|
|
460
|
+
count: number;
|
|
461
|
+
platform?: string | null;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
/** One ad-platform object, or one handler response. */
|
|
465
|
+
export type AdPayload = Record<string, unknown>;
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* One ad inside a campaign — a creative slot.
|
|
469
|
+
*
|
|
470
|
+
* ``id`` is graph8's, and it is stable: editing an ad almost always mints a new
|
|
471
|
+
* platform ad (LinkedIn creatives are immutable, and on Google only Search/RSA
|
|
472
|
+
* is mutable in place), but the slot and its measurement history survive that.
|
|
473
|
+
* Address an ad by this id, never by ``platform_ad_id``.
|
|
474
|
+
*/
|
|
475
|
+
export interface AdResponse {
|
|
476
|
+
approval_nuance?: string | null;
|
|
477
|
+
campaign_id: number;
|
|
478
|
+
/** Multi-asset copy, e.g. {rsa_headlines: [...], rsa_descriptions: [...]} */
|
|
479
|
+
copy_assets?: Record<string, unknown> | null;
|
|
480
|
+
created_at?: string | null;
|
|
481
|
+
creative_image_url?: string | null;
|
|
482
|
+
creative_image_url_portrait?: string | null;
|
|
483
|
+
creative_image_url_square?: string | null;
|
|
484
|
+
cta?: string | null;
|
|
485
|
+
description?: string | null;
|
|
486
|
+
destination_url?: string | null;
|
|
487
|
+
error_message?: string | null;
|
|
488
|
+
headline?: string | null;
|
|
489
|
+
/** graph8 ad id, stable across creative replacements. Null only for a campaign launched before per-ad control, until its first read. */
|
|
490
|
+
id?: number | null;
|
|
491
|
+
launched_at?: string | null;
|
|
492
|
+
logo_image_url?: string | null;
|
|
493
|
+
name?: string | null;
|
|
494
|
+
/** Current platform handle. Changes when the creative is replaced. */
|
|
495
|
+
platform_ad_id?: string | null;
|
|
496
|
+
policy_topics?: Array<Record<string, unknown>> | null;
|
|
497
|
+
primary_text?: string | null;
|
|
498
|
+
slot_index: number;
|
|
499
|
+
/** The Studio creative this ad was built from, when it came from Studio */
|
|
500
|
+
source_ad_creative_id?: string | null;
|
|
501
|
+
/** draft | launching | active | paused | archived | failed */
|
|
502
|
+
status: string;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/** Pause or resume one ad without touching its siblings or the campaign. */
|
|
506
|
+
export interface AdStatusRequest {
|
|
507
|
+
status: "active" | "paused";
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* Edit one ad. Omitted fields are unchanged.
|
|
512
|
+
*
|
|
513
|
+
* On a live campaign a creative change is applied as a REPLACE, because that
|
|
514
|
+
* is what the platforms permit. The response reports whether the platform ad
|
|
515
|
+
* was replaced so a caller knows review and learning restarted.
|
|
516
|
+
*/
|
|
517
|
+
export interface AdUpdateRequest {
|
|
518
|
+
copy_assets?: Record<string, unknown> | null;
|
|
519
|
+
creative_image_url?: string | null;
|
|
520
|
+
creative_image_url_portrait?: string | null;
|
|
521
|
+
creative_image_url_square?: string | null;
|
|
522
|
+
cta?: string | null;
|
|
523
|
+
description?: string | null;
|
|
524
|
+
destination_url?: string | null;
|
|
525
|
+
headline?: string | null;
|
|
526
|
+
logo_image_url?: string | null;
|
|
527
|
+
name?: string | null;
|
|
528
|
+
primary_text?: string | null;
|
|
529
|
+
source_ad_creative_id?: string | null;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
export interface AdUpdateResponse {
|
|
533
|
+
ad: AdResponse;
|
|
534
|
+
changed: Array<string>;
|
|
535
|
+
/** policy_review | learning_reset */
|
|
536
|
+
consequences?: Array<string>;
|
|
537
|
+
/** True when the platform ad was recreated; review and learning restart */
|
|
538
|
+
replaced_platform_ad: boolean;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
export interface ApiResponse_AdBatchCreateResponse_ {
|
|
542
|
+
data: AdBatchCreateResponse;
|
|
543
|
+
pagination?: PaginationMeta | null;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export interface ApiResponse_AdCampaignResponse_ {
|
|
547
|
+
data: AdCampaignResponse;
|
|
548
|
+
pagination?: PaginationMeta | null;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
export interface ApiResponse_AdListResponse_ {
|
|
552
|
+
data: AdListResponse;
|
|
553
|
+
pagination?: PaginationMeta | null;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
export interface ApiResponse_AdPayload_ {
|
|
557
|
+
data: AdPayload;
|
|
558
|
+
pagination?: PaginationMeta | null;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
export interface ApiResponse_AdResponse_ {
|
|
562
|
+
data: AdResponse;
|
|
563
|
+
pagination?: PaginationMeta | null;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
export interface ApiResponse_AdUpdateResponse_ {
|
|
567
|
+
data: AdUpdateResponse;
|
|
568
|
+
pagination?: PaginationMeta | null;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
export interface ApiResponse_list_AdCampaignResponse__ {
|
|
572
|
+
data: Array<AdCampaignResponse>;
|
|
573
|
+
pagination?: PaginationMeta | null;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
export interface LaunchAdCampaignRequest {
|
|
577
|
+
ad_copy_variant_index?: number | null;
|
|
578
|
+
ad_image_document_id?: number | null;
|
|
579
|
+
/** Absolute UTC instant to auto-pause at (ISO-8601 with offset) */
|
|
580
|
+
auto_pause_at?: string | null;
|
|
581
|
+
/** IANA zone the user picked in (display/intent only) */
|
|
582
|
+
auto_pause_tz?: string | null;
|
|
583
|
+
creative_image_url?: string | null;
|
|
584
|
+
creative_image_url_portrait?: string | null;
|
|
585
|
+
creative_image_url_square?: string | null;
|
|
586
|
+
cta?: string | null;
|
|
587
|
+
currency?: string;
|
|
588
|
+
/** Demand Gen only: intent keywords for a custom segment (people who search these) */
|
|
589
|
+
custom_segment_keywords?: Array<string> | null;
|
|
590
|
+
/** Demand Gen only: competitor/relevant URLs for a custom segment (people who browse these) */
|
|
591
|
+
custom_segment_urls?: Array<string> | null;
|
|
592
|
+
/** Google Customer Match mode: observation (default) | targeting | exclusion */
|
|
593
|
+
customer_match_mode?: string | null;
|
|
594
|
+
daily_budget?: number;
|
|
595
|
+
destination_url?: string | null;
|
|
596
|
+
end_date?: string | null;
|
|
597
|
+
/** ISO 3166-1 alpha-2 country code for the location criterion (Google observation/exclusion modes) */
|
|
598
|
+
geo_target_country?: string | null;
|
|
599
|
+
/** Google campaign subtype: display (default) | demand_gen | search */
|
|
600
|
+
google_campaign_subtype?: string | null;
|
|
601
|
+
headline?: string | null;
|
|
602
|
+
/** Demand Gen only: attach the lookalike segment derived from the Customer Match list */
|
|
603
|
+
include_lookalike_audiences?: boolean | null;
|
|
604
|
+
logo_image_url?: string | null;
|
|
605
|
+
/** User-provided campaign name; auto-generated if empty */
|
|
606
|
+
name?: string | null;
|
|
607
|
+
objective?: string;
|
|
608
|
+
primary_text?: string | null;
|
|
609
|
+
/** Google Search only: 2-4 Responsive Search Ad descriptions (≤90 chars each) */
|
|
610
|
+
rsa_descriptions?: Array<string> | null;
|
|
611
|
+
/** Google Search only: 3-15 Responsive Search Ad headlines (≤30 chars each) */
|
|
612
|
+
rsa_headlines?: Array<string> | null;
|
|
613
|
+
/** Google Search only: [{text, match_type: broad|phrase|exact, negative: bool}] */
|
|
614
|
+
search_keywords?: Array<Record<string, unknown>> | null;
|
|
615
|
+
/** Google Video only: placement switches — youtube_in_stream | youtube_in_feed | youtube_shorts | discover | gmail | display | maps (true/false) */
|
|
616
|
+
selected_channels?: Record<string, boolean> | null;
|
|
617
|
+
/** Meta special ad categories: HOUSING | EMPLOYMENT | CREDIT | FINANCIAL_PRODUCTS_SERVICES | ISSUES_ELECTIONS_POLITICS | ONLINE_GAMBLING_AND_GAMING | NONE */
|
|
618
|
+
special_ad_categories?: Array<string> | null;
|
|
619
|
+
/** Auto-pause once lifetime SERVED spend reaches this (account currency) */
|
|
620
|
+
spend_cap?: number | null;
|
|
621
|
+
start_date?: string;
|
|
622
|
+
/** Google Video only: 1-5 ids of the org's ad_video_assets rows to advertise */
|
|
623
|
+
video_asset_ids?: Array<number> | null;
|
|
624
|
+
/** Google Video only: advertiser/brand name shown on the ad (≤25 chars) */
|
|
625
|
+
video_business_name?: string | null;
|
|
626
|
+
/** Google Video only: CallToActionType enum value (e.g. LEARN_MORE, SIGN_UP) */
|
|
627
|
+
video_cta?: string | null;
|
|
628
|
+
/** Google Video only: 3-5 descriptions (≤90 chars each) */
|
|
629
|
+
video_descriptions?: Array<string> | null;
|
|
630
|
+
/** Google Video only: 3-5 headlines (≤40 chars each) */
|
|
631
|
+
video_headlines?: Array<string> | null;
|
|
632
|
+
/** Google Video only: 3-5 long headlines (≤90 chars each) */
|
|
633
|
+
video_long_headlines?: Array<string> | null;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
export interface PaginationMeta {
|
|
637
|
+
/** Whether there are more pages */
|
|
638
|
+
has_next: boolean;
|
|
639
|
+
/** Items per page */
|
|
640
|
+
limit: number;
|
|
641
|
+
/** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
|
|
642
|
+
next_cursor?: string | null;
|
|
643
|
+
/** Current page number (1-indexed) */
|
|
644
|
+
page: number;
|
|
645
|
+
/** Total number of items */
|
|
646
|
+
total: number;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* Body for ``PUT /campaigns/{id}`` and ``POST /campaigns/{id}/edit-preview``.
|
|
651
|
+
*
|
|
652
|
+
* ``extra="forbid"`` is load-bearing (PRD hazard H8): the model used to inherit
|
|
653
|
+
* Pydantic's default ``extra="ignore"``, so the wizard could POST a field the
|
|
654
|
+
* backend had never wired, get a 200, and render a green "Campaign updated"
|
|
655
|
+
* toast for an edit that reached nothing. An unknown field is now a 422 —
|
|
656
|
+
* a phantom control is structurally impossible to ship.
|
|
657
|
+
*
|
|
658
|
+
* List-shaped fields (``keywords``, ``rsa_headlines``, ``rsa_descriptions``,
|
|
659
|
+
* ``geo_targets``) are COMPLETE desired lists, never deltas. Google replaces
|
|
660
|
+
* repeated fields wholesale, so a partial list silently deletes the omitted
|
|
661
|
+
* entries; the handler read-modify-writes against the platform's current state.
|
|
662
|
+
* ``None`` means "not provided / unchanged" — an empty list is a real request
|
|
663
|
+
* to clear, and is rejected where clearing would break the ad.
|
|
664
|
+
*/
|
|
665
|
+
export interface UpdateAdCampaignRequest {
|
|
666
|
+
action?: string | null;
|
|
667
|
+
/** Absolute UTC instant to auto-pause at (ISO-8601 with offset) */
|
|
668
|
+
auto_pause_at?: string | null;
|
|
669
|
+
auto_pause_tz?: string | null;
|
|
670
|
+
/** Google only: COMPLETE desired campaign-level negative keywords [{text, match_type}] */
|
|
671
|
+
campaign_negative_keywords?: Array<Record<string, unknown>> | null;
|
|
672
|
+
clear_auto_stop?: boolean;
|
|
673
|
+
creative_image_url?: string | null;
|
|
674
|
+
creative_image_url_portrait?: string | null;
|
|
675
|
+
creative_image_url_square?: string | null;
|
|
676
|
+
cta?: string | null;
|
|
677
|
+
daily_budget?: number | null;
|
|
678
|
+
destination_url?: string | null;
|
|
679
|
+
end_date?: string | null;
|
|
680
|
+
/** Google only: COMPLETE list of geo target constant ids, e.g. ["2840"] */
|
|
681
|
+
geo_targets?: Array<string> | null;
|
|
682
|
+
headline?: string | null;
|
|
683
|
+
/** Google Search only: COMPLETE desired keyword list [{text, match_type, negative, paused, cpc_bid}] */
|
|
684
|
+
keywords?: Array<Record<string, unknown>> | null;
|
|
685
|
+
logo_image_url?: string | null;
|
|
686
|
+
name?: string | null;
|
|
687
|
+
primary_text?: string | null;
|
|
688
|
+
/** Google Search only: COMPLETE list of 2-4 RSA descriptions (<=90 chars each) */
|
|
689
|
+
rsa_descriptions?: Array<string> | null;
|
|
690
|
+
/** Google Search only: COMPLETE list of 3-15 RSA headlines (<=30 chars each) */
|
|
691
|
+
rsa_headlines?: Array<string> | null;
|
|
692
|
+
/** Google Video only: COMPLETE placement map (7 DemandGenSelectedChannels keys) */
|
|
693
|
+
selected_channels?: Record<string, boolean> | null;
|
|
694
|
+
spend_cap?: number | null;
|
|
695
|
+
/** Google Video only: COMPLETE list of 1-5 ad_video_assets ids (None = unchanged) */
|
|
696
|
+
video_asset_ids?: Array<number> | null;
|
|
697
|
+
/** Google Video only: ≤25 chars */
|
|
698
|
+
video_business_name?: string | null;
|
|
699
|
+
/** Google Video only: CallToActionType value */
|
|
700
|
+
video_cta?: string | null;
|
|
701
|
+
/** Google Video only: COMPLETE list, 3-5 × ≤90 */
|
|
702
|
+
video_descriptions?: Array<string> | null;
|
|
703
|
+
/** Google Video only: COMPLETE list, 3-5 × ≤40 */
|
|
704
|
+
video_headlines?: Array<string> | null;
|
|
705
|
+
/** Google Video only: COMPLETE list, 3-5 × ≤90 */
|
|
706
|
+
video_long_headlines?: Array<string> | null;
|
|
707
|
+
}
|