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

جاوااسکریپت 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.

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

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

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