Торговые кампании

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