Kampanie produktowe

Scenariusze Google Ads umożliwiają częściowe zarządzanie kampaniami produktowymi. Za pomocą skryptów możesz pracować z dotychczasowymi kampaniami produktowymi, tworzyć hierarchie grup produktów i nimi zarządzać oraz generować raporty dotyczące zakupów. Nie możesz jednak używać skryptów do tworzenia kampanii produktowych, ustawiania właściwości produktowych na poziomie kampanii (np. priorytetu kampanii, filtrów zasobów reklamowych itp.) ani łączenia kont Merchant Center.

Pobieranie kampanii i grup reklam produktowych

Kampanie produktowe są dostępne w kolecji shoppingCampaigns obiektu AdsApp. Możesz je pobrać w zwykły sposób za pomocą skryptów:

const campaignName = "My first shopping campaign";

const campaignIterator = AdsApp.shoppingCampaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get();

for (const campaign of campaignIterator) {
  ...
}

Po pobraniu kampanii możesz w podobny sposób pobrać jej grupy reklam. Ta opcja jest zalecana tylko wtedy, gdy chcesz podjąć działania zarówno w przypadku kampanii, jak i jej grup reklam.

const adGroupIterator = campaign.adGroups()
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

Jeśli chcesz wykonać określone działania dotyczące określonych grup reklam, możesz użyć metody AdsApp.shoppingAdGroups(), aby pobrać grupy reklam bez pobierania kampanii:

const adGroupIterator = AdsApp.shoppingAdGroups()
    .withCondition(`campaign.name = "${campaignName}"`)
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

Reklamy produktów

Skrypty Google Ads umożliwiają pobieranie reklam produktów za pomocą metody ads() w ShoppingAdGroup. Możesz utworzyć nowe reklamy produktów, korzystając z metody newAdBuilder()ShoppingAdGroup.

Przechodzenie przez hierarchię grup produktów

Do elementu wyższego poziomu w hierarchii grupy produktów możesz uzyskać dostęp za pomocą metody rootProductGroup w interfejsie ShoppingAdGroup. Następnie możesz użyć metody children, aby przejść przez podrzędne grupy produktów i przeanalizować ich hierarchię. Każdy węzeł to obiektProductGroup, a za pomocą metodygetDimension możesz określić rzeczywisty typ grupy produktów. Możesz też zamienić go na bardziej szczegółowy typ (np. ProductBrand), używając odpowiedniej metody zamiany (np. asBrand). Poniższy fragment kodu pokazuje, jak rekurencyjnie przejść hierarchię grup produktów.

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);
  }
}

Wybierz konkretną grupę produktów

Możesz wybrać konkretne grupy produktów w hierarchii grup produktów za pomocą metody productGroups w instancji AdsApp, ShoppingCampaign lub ShoppingAdGroup. Takie podejście jest prostsze niż przechodzenie przez całą hierarchię grup produktów podczas wybierania konkretnych grup produktów na potrzeby zarządzania stawkami. Ten fragment kodu pokazuje, jak wybrać wszystkie grupy produktów z ponad 5 kliknięciami i współczynnikiem CTR większym niż 0.01 w ciągu ostatniego miesiąca, a następnie zwiększyć ich stawkę o 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);
  }
}

Aktualizowanie hierarchii grup produktów

Możesz dodać grupę produktów podrzędnych do istniejącej grupy produktów, używając metody newChild. Dzięki temu otrzymasz obiekt ProductGroupBuilderSpace, którego możesz użyć do utworzenia odpowiedniej grupy produktów. Poniższy fragment kodu dodaje podkategorię dla marki „cardcow” pod kategorią główną, a następnie dzieli ją na kategorie produktów nowych i odnowionych.

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();

Podobnie możesz usunąć podjednostkę za pomocą metody removeProductGroup. Spowoduje to również usunięcie całej hierarchii grup produktów poniżej usuwanej grupy produktów.

Dzięki skryptom hierarchia grup produktów będzie spójna po utworzeniu każdej grupy produktów, więc nie musisz tworzyć ani usuwać grupy produktów odpowiadającej pozycji „Wszystkie pozostałe” podczas aktualizowania struktury hierarchicznej grup produktów.

Grupa produktów „Wszystkie pozostałe”

Hierarchie grup produktów w kampaniach produktowych zawierają grupę produktów „Wszystkie pozostałe” („Inne”) na każdym poziomie, aby obsługiwać produkty, które nie pasują do warunku niestandardowego utworzonego w hierarchii grup produktów. Za pomocą metody isOtherCase możesz odróżnić normalną grupę produktów od grupy „Inne”.

Poniższy fragment kodu pobiera grupę produktów „Inne” w hierarchii grup produktów i wypisuje jej stawkę.

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.");
}

Gdy dzielisz grupę produktów na poziomie liści, skrypty automatycznie tworzą grupę produktów „Inne”, aby zapewnić prawidłowość hierarchii grup produktów. Grupa produktów „Inne” dziedziczy stawkę z nadrzędnej grupy produktów.

Tworzenie nowej grupy reklam produktowych

Skrypty Google Ads umożliwiają utworzenie nowej grupy reklam produktowych za pomocą metody newAdGroupBuilderShoppingCampaign. Po utworzeniu pliku ShoppingAdGroup możesz użyć metody createRootProductGroup, aby utworzyć nową hierarchię grup produktów.

Raporty

Scenariusze Google Ads obsługują raporty product_group_view i shopping_performance_view, które ułatwiają śledzenie skuteczności kampanii produktowych. Więcej informacji o raportowaniu znajdziesz w przewodniku na temat raportów.