تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح مسودات الحملات إعداد مجموعة من التغييرات المقصودة على حملة أساسية. يحتوي كل مسودة حملة على حملة أساسية ومسودة حملة مرتبطتين بها.
الحملة الأساسية هي حملة عادية في حسابك، تتضمّن إعلانات ومجموعات إعلانية وموارد أخرى.
الحملة المسودّة هي طبقة افتراضية يتم فيها تجميع التغييرات أثناء تنفيذ العمليات، ولكنّها لا تؤثّر في أي حملات فعلية في حسابك. بعد أن تصبح راضيًا عن حالة الحملة المسودّة، يمكنك تطبيقها على حملة حقيقية بعدة طرق مختلفة.
يتصرف طلب create مثل طلب عادي لواجهة برمجة التطبيقات، إذ يتم عرض الردّ على الفور.
تعديل مسودة حملة
بعد إنشاء مسودة حملتك، عليك البحث عن اسم المورد الخاص بمسودة الحملة المرتبطة بها حتى تتمكّن من البدء في إجراء التغييرات. يمكنك إجراء ذلك باستخدام الاستعلام التالي في GoogleAdsService.SearchStream:
بعد الحصول على اسم مصدر الحملة المسودّة، يمكنك تعديل هذه الحملة بالطريقة نفسها التي تعدّل بها أي حملة حقيقية في حسابك. لا يمكن عرض الإعلانات في الحملة المسودّة، ولكنّها تعمل كمساحة تنظيمية للتغييرات التي يمكنك تطبيقها على حملة حقيقية لاحقًا.
الترويج لحملة مسودّة أو إزالتها
بعد الانتهاء من إعداد مسودة حملتك، تتوفّر لك بعض الخيارات.
ترقية الحملة المسودّة إلى الحملة الأساسية، ما يؤدي إلى تطبيق جميع التغييرات التي أجريتها في الحملة المسودّة على الحملة الأساسية هذه عملية غير متزامنة. يمكن إجراء ذلك من خلال استدعاء CampaignDraftService.PromoteCampaignDraft.
أزِل مسودة الحملة من خلال ضبط status على REMOVED. سيؤدي ذلك إلى تجاهل التغييرات إذا قررت عدم المتابعة. هذه عملية متزامنة وتعمل مثل أي طلب بيانات آخر من واجهة برمجة التطبيقات.
تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\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."]]