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

اسکریپت‌های 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 وضعیت Applying... را خواهد داشت. با این حال، این روش پس از تکمیل فرآیند به شما اطلاع نمی‌دهد .

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

آزمایش

یک آزمایش ایجاد کنید

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

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

withCampaign
کمپینی که می خواهید آزمایش بر اساس آن باشد.
withTrafficSplitPercent
چه مقدار از ترافیک به بازوی آزمایش خواهد رفت. برای 50% 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 وضعیت های Applied یا Active را به ترتیب پس از تکمیل موفقیت آمیز startApplying() و startScheduling() نشان می دهد. و نشان‌دهنده عدم اعمال یا عدم ایجاد در صورت شکست است، به شما امکان می‌دهد برای دیدن خطاها کلیک کنید.

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

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

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

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

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