Campaign drafts are a way of staging some set of intended changes to a base campaign. Each campaign draft has a base campaign and a draft campaign associated with it.
- The base campaign is a normal campaign in your account, with ads, ad groups, and other resources.
- The draft campaign is a virtual layer where changes are aggregated as you perform operations, but don't affect any real campaigns in your account. Once you are satisfied with the state of the draft campaign, you can apply it to a real campaign in a few different ways.
Creating a draft
CampaignDraft is as simple as any other
entity creation in the Google Ads API. Create a
CampaignDraft and specify its
name, then call
passing in the newly created
CampaignDraft as a
create request behaves
like a typical API call in that a response is returned immediately.
Modifying a draft campaign
Once you create your campaign draft, you will need to look up the resource name
of its associated draft campaign so that you can begin making changes. You can
do this via the following query in
SELECT campaign_draft.draft_campaign FROM campaign_draft WHERE campaign_draft.resource_name = "CAMPAIGN_DRAFT_RESOURCE_NAME_HERE"
Once you have your draft campaign resource name, you can modify that campaign the same way you would any real campaign in your account. The draft campaign cannot serve ads but serves as a staging area for changes that you can apply to a real campaign later.
Promote, Remove, or Create Experiment
After you are done configuring your draft campaign, you have a few options.
- Promote the draft campaign to the base campaign, applying all the
changes you made in the draft campaign to the base campaign. This is an
asynchronous operation. This can be performed by calling
- Remove the campaign draft by setting its
REMOVED. This will throw away the changes if you decided not to proceed. This is a synchronous operation and works like any other API call.
- Create an experiment based off of the draft campaign. This will copy all the settings from the base campaign into a new campaign, with all the changes in the draft campaign applies. This is an asynchronous operation.