Para analizar nuestros productos y brindar comentarios sobre ellos, únete al canal oficial de Discord de Google Ads en el servidor de la Comunidad de Publicidad y Medición de Google.
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Los borradores de campañas son una forma de organizar un conjunto de cambios previstos en una campaña base. Cada borrador de campaña tiene una campaña base y una campaña de borrador asociadas.
La campaña básica es una campaña normal de tu cuenta, con anuncios, grupos de anuncios y otros recursos.
La campaña en borrador es una capa virtual en la que se agregan los cambios a medida que realizas operaciones, pero no afecta a ninguna campaña real de tu cuenta. Una vez que esté conforme con el estado de la campaña en borrador, puede aplicarla a una campaña real de diferentes maneras.
La solicitud create se comporta como una llamada a la API típica, ya que se devuelve una respuesta de inmediato.
Cómo modificar un borrador de campaña
Una vez que crees el borrador de tu campaña, deberás buscar el nombre del recurso de la campaña asociada para poder comenzar a realizar cambios. Puedes hacerlo con la siguiente consulta en GoogleAdsService.SearchStream:
Una vez que tengas el nombre del recurso de la campaña en borrador, podrás modificarla de la misma manera que cualquier campaña real de tu cuenta. La campaña de borrador no puede publicar anuncios, pero sirve como área de pruebas para los cambios que puedes aplicar a una campaña real más adelante.
Cómo promover o quitar un borrador de campaña
Una vez que termines de configurar tu campaña en borrador, tendrás algunas opciones.
Promociona la campaña de borrador a la campaña de base y aplica todos los cambios que realizaste en la campaña de borrador a la campaña de base. Esta es una operación asíncrona. Para ello, llama a CampaignDraftService.PromoteCampaignDraft.
Quita el borrador de la campaña estableciendo su status en REMOVED. Esto descartará los cambios si decides no continuar. Esta es una operación síncrona y funciona como cualquier otra llamada a la API.
[null,null,["Última actualización: 2025-08-27 (UTC)"],[[["\u003cp\u003eCampaign drafts provide a virtual environment (draft campaign) to stage changes to an existing campaign (base campaign) without affecting live ads.\u003c/p\u003e\n"],["\u003cp\u003eCreating a campaign draft is a simple process involving specifying the base campaign and draft name, while draft campaign modifications follow standard campaign editing procedures.\u003c/p\u003e\n"],["\u003cp\u003eYou can promote the draft campaign, applying the changes to the base campaign asynchronously, or remove the draft campaign discarding changes entirely.\u003c/p\u003e\n"],["\u003cp\u003ePromoting a draft campaign is an asynchronous operation, providing a mechanism to track its progress without repeated API calls.\u003c/p\u003e\n"]]],[],null,["# Campaign Drafts\n\nCampaign drafts are a way of staging some set of intended changes to a base\ncampaign. Each campaign draft has a base campaign and a draft campaign\nassociated with it.\n\n- The base campaign is a normal campaign in your account, with ads, ad groups, and other resources.\n- 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.\n\n| **Key Term:** The **campaign draft** is a resource you use to create new drafts from a base campaign and to determine associations between base campaigns and draft campaigns. The **draft campaign** is a virtual campaign that acts as a campaign but cannot serve ads.\n\nCreating a draft\n----------------\n\nCreating a [`CampaignDraft`](/google-ads/api/reference/rpc/v21/CampaignDraft) is as simple as any\nother entity creation in the Google Ads API. Create a `CampaignDraft` and specify its\n[`base_campaign`](/google-ads/api/reference/rpc/v21/CampaignDraft#base_campaign) and\n[`name`](/google-ads/api/reference/rpc/v21/CampaignDraft#name), then call\n[`CampaignDraftService.MutateCampaignDrafts`](/google-ads/api/reference/rpc/v21/CampaignDraftService),\npassing in the newly created `CampaignDraft` as a\n[`create`](/google-ads/api/reference/rpc/v21/CampaignDraftOperation/Create) operation.\n\nThe [`create`](/google-ads/api/reference/rpc/v21/CampaignDraftOperation/Create) request behaves\nlike a typical API call in that a response is returned immediately.\n\nModifying a draft campaign\n--------------------------\n\nOnce you create your campaign draft, you will need to look up the resource name\nof its associated draft campaign so that you can begin making changes. You can\ndo this using the following query in\n[`GoogleAdsService.SearchStream`](/google-ads/api/reference/rpc/v21/GoogleAdsService/SearchStream): \n\n SELECT campaign_draft.draft_campaign\n FROM campaign_draft\n WHERE campaign_draft.resource_name = \"CAMPAIGN_DRAFT_RESOURCE_NAME_HERE\"\n\nOnce you have your draft campaign resource name, you can modify that campaign\nthe same way you would any real campaign in your account. The draft campaign\ncannot serve ads but serves as a staging area for changes that you can apply to\na real campaign later.\n\nPromote or remove a draft campaign\n----------------------------------\n\n| **Key Term:** Asynchronous operations in the Google Ads API return what's called a **longrunning operation**. Longrunning operations serve as a convenient way to poll for operation completion without needing to make a full API call.\n\nAfter you are done configuring your draft campaign, you have a few options.\n\n1. **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 [`CampaignDraftService.PromoteCampaignDraft`](/google-ads/api/reference/rpc/v21/CampaignDraftService/PromoteCampaignDraft).\n2. **Remove the campaign draft** by setting its [`status`](/google-ads/api/reference/rpc/v21/CampaignDraft#status) to `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."]]