Скрипты Google Ads позволяют управлять некоторыми торговыми кампаниями . Вы можете использовать скрипты для работы с существующими торговыми кампаниями, создания и управления иерархиями групп товаров, а также для создания отчетов по торговым кампаниям. Однако вы не можете использовать скрипты для создания торговых кампаний, установки свойств кампании (например, приоритета кампании, фильтров запасов и т. д.) или привязки учетных записей 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 Ads позволяют создать новую группу товарных объявлений, используя метод newAdGroupBuilder класса ShoppingCampaign . После создания группы ShoppingAdGroup вы можете использовать ее метод createRootProductGroup для создания новой иерархии групп товаров.
Отчеты
Скрипты Google Ads поддерживают отчеты product_group_view и shopping_performance_view , которые помогут вам отслеживать эффективность ваших товарных кампаний. Подробнее об отчетах вы можете узнать в нашем руководстве по отчетам .