پیش‌نویس‌ها و آزمایش‌های پویش

دستورگان Google Ads از پیش‌نویس‌ها و آزمایش‌های پویش پشتیبانی می‌کند که برای آماده‌سازی و آزمایش تغییرات در پویش‌های «شبکه جستجو» و «شبکه تبلیغات» استفاده می‌شوند.

این راهنما گردش کار پایه برای کار با پیش‌نویس‌ها و آزمایش‌ها را در یک نوشتار توضیح می‌دهد.

پیش‌نویس‌ها

پیش‌نویس یک نسخه کلون از پویش موجود است که آگهی‌های خود را ارائه نمی‌کند، اما می‌تواند برای آماده‌سازی تغییرات بدون اصلاح پویش اصلی استفاده شود. سپس تغییرات مرحله‌ای را می‌توان در پویش پایه اعمال کرد.

ایجاد کردن پیش‌نویس

پیش‌نویس بااستفاده از پویش پایه موجود و بااستفاده از DraftBuilder و ارائه نامی منحصربه‌فرد ساخته می‌شود. پویش پایه باید پویش «جستجو»، «شبکه جستجو» با «تعمیم در شبکه تبلیغات»، یا پویش «شبکه تبلیغات» (به‌استثنای پویش «برنامه تلفن همراه» برای «شبکه تبلیغات») باشد و نباید بودجه مشترک داشته باشد.

const campaign = AdsApp.campaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get()
    .next();

const draftBuilder = campaign.newDraftBuilder()
    .withName("INSERT_DRAFT_NAME_HERE")
    .build();

const draft = draftBuilder.getResult();

DraftBuilder.build() DraftOperation را برمی‌گرداند، یک عملیات معمول در دستورگان‌ها. برای جزئیات بیشتر، راهنمای ما برای سازندگان را ببینید.

draft به‌طور منحصربه‌فردی با ترکیب شناسه کمپین پایه و شناسه پیش‌نویس آن شناسایی می‌شود. برای اطلاعات بیشتر، به DraftSelector.withIds() بروید.

تأمین پویش پیش‌نویس

یک شیء draft پویش پایه و پویش پیش‌نویس را به‌هم مرتبط می‌کند. برای آماده‌سازی به‌روزرسانی‌ها در پویش پایه، تغییرات را ازطریق پویش پیش‌نویس منتشر می‌کنید.

پویش پیش‌نویس، مانند هر پویش دیگری، روش‌هایی برای دریافت و تنظیم ویژگی‌های مختلف خود مانند معیارها، گروه‌های آگهی، پیشنهادهای قیمت، و آگهی‌ها دارد.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

بررسی‌های خط‌مشی آگهی برای پویش پیش‌نویس درست مانند پویش پایه انجام می‌شود. نمی‌توانید آزمایشی را از پویش پیش‌نویسی که آگهی‌های ناقض خط‌مشی دارد اجرا کنید.

اجرای پیش‌نویس

پس‌از آماده‌سازی پیش‌نویس پویش، می‌توانید یکی از کارهای زیر را انجام دهید:

  1. اگر نمی‌خواهید از تغییرات استفاده کنید، می‌توانید پیش‌نویس را حذف کنید. برداشتن پیش‌نویس برگشت‌ناپذیر است، اما همچنان می‌توان آن را در بخش همه پیش‌نویس‌ها در برگه پیش‌نویس‌های میانای کاربری Google Ads مشاهده کرد.

        draft.remove();
    
  2. اگر تصمیم گرفتید تغییراتی را که در پیش‌نویس ایجاد کرده‌اید نگه دارید، می‌توانید ادامه دهید و آن‌ها را اعمال کنید:

        draft.startApplying();
    

    این روش فرایند اعمال به‌روزرسانی‌ها را در پویش پایه شروع می‌کند، بنابراین پیش‌نویس در میانای کاربری Google Ads وضعیت درحال اعمال... خواهد داشت. بااین‌حال، این روش وقتی فرایند تکمیل شود به شما اطلاع نمی‌دهد.

  3. اگر می‌خواهید ابتدا تغییراتتان را آزمایش کنید، می‌توانید از پیش‌نویس برای ایجاد آزمایش استفاده کنید.

آزمایش‌ها

آزمایش پویشی سفارشی‌سازی‌شدنی را به‌طور موازی با پویش اصلی اجرا می‌کند و آگهی‌ها را به درصد مشخصی از ترافیک نشان می‌دهد. براساس نتایج آزمایش، می‌توانید تغییرات را روی پویش اصلی اعمال کنید، آزمایش را به پویش مستقلی منشعب کنید، یا پویش آزمایش را رها کنید.

ایجاد آزمایش

experiment شبیه به پیش‌نویس است و همچنین از پویش پایه ایجاد می‌شود. experiment را با ExperimentBuilder ایجاد می‌کنید. این کار به‌طور خودکار آزمایشی با دو «بازو» ایجاد می‌کند که نشان‌دهنده بخش‌های مختلف آزمایش است. یک شاخه (به‌نام شاخه کنترل) حاوی پویش پایه خواهد بود و شاخه دیگر (به‌نام شاخه آزمایش) حاوی پویش پیش‌نویس جدیدی خواهد بود که قبل‌از زمان‌بندی آزمایش آن را سفارشی‌سازی خواهید کرد (مطابق با مراحل پیش‌نویس که قبلاً نشان داده شد).

هنگام ساختن آزمایش، حتماً همه موارد زیر را در سازنده تنظیم کنید:

withCampaign
پویشی که می‌خواهید آزمایش براساس آن باشد.
withTrafficSplitPercent
چه مقدار از ترافیک به شاخه آزمایش خواهد رفت. برای ‎٪۵۰، 50 را مشخص کنید.
‫withStartDate و withEndDate
تاریخ شروع و پایان پویش را مشخص می‌کند. در قالب YYYYMMdd مشخص کنید.
withType
یا SEARCH_CUSTOM یا DISPLAY_CUSTOM، بسته به اینکه از کدام شبکه استفاده می‌کنید.
withSuffix
پسوندی را مشخص می‌کند که به نام پویش آزمایشی اضافه خواهد شد وقتی ایجاد می‌شود.
withGoals
اهداف این آزمایش را مشخص می‌کند. این فقط یادآوری برای خودتان است که اهدافتان هنگام ایجاد آن چه بوده است. مقدار پیش‌فرض خوب این است: [{metric: 'CLICKS', direction: 'INCREASE'}].

درصد تقسیم ترافیک تعیین می‌کند که چه بخشی از ترافیک به‌جای پویش پایه، آگهی‌های پویش آزمایش را ببیند. به همین دلیل، هر پویش پایه می‌تواند در هر زمان فقط یک آزمایش درحال اجرا داشته باشد.

const experiment = AdsApp.newExperimentBuilder()
  .withCampaign(campaign)
  .withTrafficSplitPercent(50)
  .withStartDate("20230501")
  .withEndDate("20230601")
  .withType("SEARCH_CUSTOM")
  .withSuffix("experiment")
  .withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
  .build();

// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();

برخلاف پیش‌نویس‌ها، آزمایش‌ها با یک شناسه واحد به‌طور یکتا شناسایی می‌شوند. برای اطلاعات بیشتر، ExperimentSelector.withIds() را ببینید.

تأمین پویش آزمایشی

مشابه با draft، خود experiment پویش نیست. بلکه پویش پایه، پیش‌نویس، و پویش آزمایشی را به هم مرتبط می‌کند. فیلدهای یک پویش آزمایشی قابل‌تغییر هستند، به‌جز موارد زیر:

  • نام
  • وضعیت
  • تاریخ شروع
  • تاریخ پایان
  • بودجه
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

تغییرات در نام، تاریخ شروع، و تاریخ پایان را می‌توان در آزمایش اعمال کرد، و سپس این تغییرات در پویش آزمایشی منتشر خواهد شد.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

برای شروع آزمایش، با experiment.startScheduling() تماس بگیرید. این فرایندی ناهمگام است، زیرا باید همه تنظیمات را از پویش پایه کپی کند.

پس‌از پایان آزمایش

پس‌از تکمیل آزمایش، چند گزینه دارید. توصیه می‌کنیم اجازه دهید آزمایش کاملاً تمام شود تا ارائه آگهی‌ها متوقف شود اما همچنان بتوانید با آن تعامل داشته باشید. آزمایش تمام‌شده همچنان می‌تواند برداشته شود، اعمال شود، یا فارغ‌التحصیل شود، و آمار عملکرد پویش آن همچنان دردسترس است.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • اگر براساس آمار از آزمایش راضی نیستید، می‌توانید آزمایش را بردارید، که با این کار پویش آزمایشی نیز برداشته می‌شود. برداشتن آزمایش برگشت‌ناپذیر است، اما همچنان می‌توان آن را در بخش همه آزمایش‌ها در برگه آزمایش‌های میانای کاربری Google Ads مشاهده کرد.

        experiment.remove();
    
  • اگر از نتایج آزمایش راضی هستید، دو گزینه دارید:

    1. می‌توانید اعمال تغییرات را شروع کنید و درست مثل پیش‌نویس‌ها، وقتی فرایند تکمیل شد به شما اطلاع داده نخواهد شد.

          experiment.startApplying();
      
    2. می‌توانید پویش آزمایشی را به‌عنوان پویشی مستقل و کاملاً فعال ایجاد کنید، بدون اینکه بر پویش پایه تأثیر بگذارد. این فرایند که به آن فارغ‌التحصیلی می‌گویند، بلافاصله تکمیل می‌شود و لازم است بودجه جدیدی تنظیم شود.

          const budget = AdsApp.budgets()
              .withCondition(`campaign_budget.id = ${budgetId}`)
              .get()
              .next();
      
          experiment.graduate(budget);
      

      پویش جدید دیگر نمی‌تواند بودجه مشترکی با پویش پایه داشته باشد، که این امر مستلزم بودجه جدیدی است. پویش‌های فارغ‌التحصیل درست مثل پویش‌های عادی هستند، یعنی همه فیلدهای آن‌ها قابل‌اصلاح است و می‌توانند به‌عنوان پویش پایه برای پیش‌نویس‌ها و آزمایش‌های بیشتر عمل کنند.

سایر ملاحظات

نهادهای پایه

معرفی پیش‌نویس‌ها و آزمایش‌ها به «جاوااسکریپت‌های Google Ads» مفهوم نهادهای پایه را نیز معرفی می‌کند. پویش‌های آزمایشی و پیش‌نویس و گروه‌های آگهی در آن‌ها از پویش‌های پایه اصلی‌شان متمایز هستند، به همین دلیل Campaign و AdGroup اکنون روش‌هایی برای دسترسی به پویش پایه و گروه آگهی‌شان دارند: getBaseCampaign() و getBaseAdGroup().

اگر این روش‌ها توسط پویش پایه یا گروه آگهی فراخوانی شوند، نهاد فراخواننده را برمی‌گردانند. نهادهای درون پویش‌ها و گروه‌های آگهی، مثل کلیدواژه‌ها و آگهی‌ها، نیز چنین روش‌هایی را دریافت کرده‌اند.

برای کمک به پیگیری نهادهای پایه، روش‌های isBaseCampaign()، isDraftCampaign()، و isExperimentCampaign() به پویش‌ها داده شده است.

روش‌های جدید Campaign.draftCampaigns() و Campaign.experimentCampaigns() به شما امکان می‌دهند به همه کمپین‌های پیش‌نویس و آزمایشی که کمپین تماس گرفتن را به‌عنوان کمپین پایه خود دارند دسترسی پیدا کنید. بااین‌حال، نمی‌توانید پویش‌های پیش‌نویس را با CampaignSelector.withCondition() انتخاب کنید؛ به‌جای آن از AdsApp.drafts() استفاده کنید.

مدیریت کردن خطا

روش‌های زیر که شامل پیش‌نویس‌ها و آزمایش‌ها می‌شود وقتی نوشتار اجرا می‌شود ادامه می‌یابد، اما ممکن است به‌صورت ناهم‌زمان با خطا مواجه شود:

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

باید منتظر بمانید تا ببینید این عملیات موفقیت‌آمیز است یا نه. رابط کاربری Google Ads وضعیت‌های اعمال‌شده یا فعال را پس‌از تکمیل موفقیت‌آمیز startApplying() و startScheduling() به‌ترتیب نشان می‌دهد. و درصورت ناموفق بودن، اعمال نشد یا ایجاد نشد را نشان می‌دهد و به شما امکان می‌دهد برای دیدن خطاها کلیک کنید.

همچنین ممکن است برخی‌از روش‌ها در مرحله پیش‌نمایش ناموفق باشند، اما پس‌از اجرا موفق شوند؛ برای مثال، پس‌از ایجاد پیش‌نویس:

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

این کار در حالت پیش‌نمایش انجام نمی‌شود زیرا نمی‌تواند بلافاصله به پویش پیش‌نویس دسترسی پیدا کند.

به‌طور مشابه، ایجاد یک آزمایش و تلاش فوری برای واکشی پیش‌نویس کمپین آن در حالت پیش‌نمایش ناموفق خواهد بود، زیرا پیش‌نویس در واقع ایجاد نشده است.

به همین دلیل، پس‌از اجرای اسکریپت‌ها، گزارش‌های زیر فهرست اسکریپت‌ها را بررسی کنید، و فقط درصورتی اسکریپت ناموفق در پیش‌نمایش را ادامه دهید که معتقد باشید علت آن به‌دلیل محدودیت‌های حالت پیش‌نمایش است.