Скрипты Google Рекламы предоставляют некоторые возможности управления вашими торговыми кампаниями . Вы можете использовать скрипты для работы с существующими торговыми кампаниями, создания и управления иерархиями групп товаров, а также создания отчётов по покупкам. Однако с помощью скриптов невозможно создавать торговые кампании, настраивать свойства покупок на уровне кампании (например, приоритет кампании, фильтры по инвентарю и т. д.) или связывать аккаунты Merchant Center.
Извлечение торговых кампаний и групп объявлений
Торговые кампании доступны через коллекцию shoppingCampaigns
объекта AdsApp
. Вы можете получить их, как обычно, с помощью скриптов:
const campaignName = "My first shopping campaign";
const campaignIterator = AdsApp.shoppingCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
После получения кампании вы можете получить её группы объявлений аналогичным образом. Это предпочтительно только в том случае, если вам нужно выполнить действия как с самой кампанией, так и с её группами объявлений.
const adGroupIterator = campaign.adGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
Если вы планируете воздействовать только на определенные группы объявлений, вы можете использовать метод AdsApp.shoppingAdGroups()
для извлечения групп объявлений без предварительного извлечения кампании:
const adGroupIterator = AdsApp.shoppingAdGroups()
.withCondition(`campaign.name = "${campaignName}"`)
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
Рекламные объявления
Скрипты Google Ads позволяют получать рекламные объявления о товарах с помощью метода ads()
класса ShoppingAdGroup
. Вы можете создавать новые рекламные объявления о товарах с помощью метода newAdBuilder()
класса ShoppingAdGroup
.
Пройдите по иерархии группы продуктов
Вы можете получить доступ к корню иерархии групп товаров, используя метод rootProductGroup
объекта ShoppingAdGroup
. Затем вы можете использовать метод children
для перебора дочерних групп товаров и обхода иерархии групп товаров. Каждый узел представляет собой объект ProductGroup
, и вы можете использовать метод getDimension
для определения фактического типа группы товаров. Вы также можете привести её к более конкретному типу (например, ProductBrand
), используя соответствующий метод приведения (например, asBrand
). В следующем фрагменте кода показано, как рекурсивно обойти иерархию групп товаров.
walkTree(shoppingAdGroup.rootProductGroup(), 1);
function walkTree(root, level) {
// Logger.log(root.getDimension());
let description = "";
switch (root.getDimension()) {
case "ROOT":
description = "Root";
break;
case "CATEGORY":
description = root.asCategory().getName();
break;
case "BRAND":
description = root.asBrand().getName();
break;
// Handle more types here.
...
}
if (root.isOtherCase()) {
description = "Other";
}
const padding = new Array(level + 1).join('-');
console.log("%s, %s, %s, %s, %s, %s",
padding,
description,
root.getDimension(),
root.getMaxCpc(),
root.isOtherCase(),
root.getId().toFixed());
const children = root.children().get();
for (const child of children) {
walkTree(child, level + 1);
}
}
Выберите конкретную группу продуктов
Вы можете выбрать определённые группы товаров в иерархии групп товаров с помощью метода productGroups
экземпляра AdsApp
, ShoppingCampaign
или ShoppingAdGroup
. Этот подход проще, чем обход всей иерархии групп товаров при выборе определённых групп товаров для управления ставками. В следующем фрагменте кода показано, как выбрать все группы товаров с более чем пятью кликами и CTR выше 0.01
за последний месяц, и увеличить их ставку на 0.01
.
function main() {
const productGroups = AdsApp.productGroups()
.withCondition("metrics.clicks > 5")
.withCondition("metrics.ctr > 0.01")
.forDateRange("LAST_MONTH")
.get();
for (const productGroup of productGroups) {
productGroup.setMaxCpc(productGroup.getMaxCpc() + 0.01);
}
}
Обновить иерархию группы продуктов
Вы можете добавить дочернюю группу товаров к существующей группе товаров с помощью метода newChild
. Это создаст объект ProductGroupBuilderSpace
, который затем можно использовать для создания соответствующей группы товаров. Следующий фрагмент кода добавляет подразделение для бренда «cardcow» в корневую группу, а затем подразделяет её на новые и восстановленные товары.
const root = shoppingAdGroup.rootProductGroup();
// Add a brand product group for a "cardcow" under root.
const brandProductGroup = root.newChild()
.brandBuilder()
.withName("cardcow")
.withBid(1.2)
.build()
.getResult();
// Add new conditions for New and Refurbished cardcow brand items.
const newItems = brandProductGroup.newChild()
.conditionBuilder()
.withCondition("New")
.withBid(1.5)
.build()
.getResult();
// Refurbished items will use the bid from "cardcow" product group.
const refurbishedItems = brandProductGroup.newChild()
.conditionBuilder()
.withCondition("Refurbished")
.build()
.getResult();
Аналогичным образом, вы можете удалить подразделение, используя метод remove
класса ProductGroup
. Это также удалит всю иерархию групп товаров, находящихся под удаляемой группой товаров.
Скрипты обеспечат единообразие иерархии групп продуктов после создания каждой группы продуктов, поэтому вам не придется создавать или удалять группу продуктов, соответствующую «Всему остальному», при обновлении структуры иерархии групп продуктов.
Группа товаров «Всё остальное»
Иерархии групп товаров для покупок содержат группу товаров «Всё остальное» («Другое») на каждом уровне для обработки товаров, не соответствующих пользовательскому условию, созданному вами в иерархии групп товаров. Вы можете использовать метод isOtherCase
, чтобы различать добавленную вами обычную группу товаров и группу товаров «Другое».
Следующий фрагмент кода извлекает группу продуктов «Другое» из иерархии корневых групп продуктов и выводит ее ставку.
const root = shoppingAdGroup.rootProductGroup();
const childProductGroups = root.children().get();
let everythingElseProductGroupFound = false;
for (const childProductGroup of childProductGroups) {
if (childProductGroup.isOtherCase()) {
console.log("'Everything else' product group found. Type of the " +
"product group is %s and bid is %s.",
childProductGroup.getDimension(),
childProductGroup.getMaxCpc());
everythingElseProductGroupFound = true;
break;
}
}
if (!everythingElseProductGroupFound) {
console.log("No 'Everything else' product group found under root " +
"product group.");
}
При разделении листовой группы товаров скрипты автоматически создают группу товаров «Другое», чтобы гарантировать корректность иерархии групп товаров. Группа товаров «Другое» наследует ставку родительской группы товаров.
Создайте новую группу торговых объявлений
Скрипты Google Рекламы позволяют создавать новые группы торговых объявлений с помощью метода newAdGroupBuilder
класса ShoppingCampaign
. После создания ShoppingAdGroup
вы можете использовать его метод createRootProductGroup
для создания новой иерархии групп товаров.
Отчеты
Скрипты Google Ads поддерживают отчёты product_group_view
и shopping_performance_view
, которые помогут вам отслеживать эффективность ваших торговых кампаний. Подробнее об отчётах см. в нашем руководстве по отчётам .