Скрипты 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");
Проверка правил показа рекламы выполняется для черновика кампании так же, как и для базовой кампании. Вы не сможете запустить эксперимент из черновика кампании, содержащей объявления, нарушающие правила.
Подписать черновик
После создания черновика кампании вы можете выполнить одно из следующих действий:
Если вы не хотите использовать внесенные изменения, вы можете просто удалить черновик. Удаление черновика необратимо, но его все еще можно просмотреть в разделе «Все черновики» на вкладке «Черновики» в пользовательском интерфейсе Google Ads.
draft.remove();Если вы решите сохранить изменения, внесенные в черновик, можете смело применять их:
draft.startApplying();Этот метод запускает процесс применения обновлений к базовой кампании, поэтому в пользовательском интерфейсе Google Ads черновик будет иметь статус «Применяется...» . Однако метод не уведомит вас о завершении процесса.
Если вы хотите сначала протестировать внесенные изменения, вы можете использовать черновик для проведения эксперимента.
Эксперименты
В ходе эксперимента параллельно с основной кампанией запускается настраиваемая рекламная кампания, которая показывает объявления определенному проценту трафика. На основе результатов эксперимента вы можете применить изменения к основной кампании, запустить независимую кампанию или отказаться от экспериментальной кампании.
Создайте эксперимент
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();Если вас устраивают результаты эксперимента, у вас есть два варианта:
Вы можете начать вносить изменения, и, как и в случае с черновиками, вы не получите уведомление о завершении процесса.
experiment.startApplying();Вы можете запустить экспериментальную кампанию как независимую, полностью функционирующую кампанию, не затрагивая базовую кампанию. Этот процесс, известный как «завершение» , завершается немедленно и требует установления нового бюджета.
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()
Следует подождать и проверить, успешно ли завершились эти операции. После успешного выполнения функций startApplying() и startScheduling() в пользовательском интерфейсе Google Ads отображаются статусы «Применено» или «Активно» . В случае сбоя отображается статус «Не удалось применить» или «Не удалось создать» , позволяющий просмотреть ошибки, нажав на которые вы сможете это сделать.
Также возможно, что некоторые методы завершатся неудачей на этапе предварительного просмотра, но успешно выполнятся после запуска; например, после создания черновика:
const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.
В режиме предварительного просмотра это не сработает, поскольку доступ к черновику кампании будет невозможен сразу.
Аналогично, создание эксперимента и немедленная попытка получить черновой вариант кампании в режиме предварительного просмотра завершится неудачей, поскольку черновой вариант фактически не создается.
Поэтому после выполнения скриптов проверьте журналы, расположенные ниже списка, и продолжайте работу со скриптом, который завершился с ошибкой в режиме предварительного просмотра, только если вы считаете, что причина кроется в ограничениях режима предварительного просмотра.