Kampanie produktowe

Skrypty Google Ads umożliwiają zarządzanie kampaniami produktowymi. Za pomocą skryptów możesz pracować z istniejącymi kampaniami produktowymi, tworzyć hierarchie grup produktów i nimi zarządzać oraz generować raporty o kampaniach produktowych. Nie możesz jednak używać skryptów do tworzenia kampanii produktowych, ustawiania właściwości kampanii produktowych na poziomie kampanii (np. priorytetu kampanii, filtrów asortymentu itp.) ani łączenia kont Merchant Center.

Pobieranie kampanii produktowych i grup reklam

Kampanie produktowe są dostępne w kolekcji 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. Jest to preferowane tylko wtedy, gdy musisz podjąć działania zarówno w kampanii, jak i w jej grupach reklam.

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

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

Jeśli planujesz działania tylko w określonych grupach reklam, możesz użyć metody AdsApp.shoppingAdGroups() aby pobrać grupy reklam bez wcześniejszego 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ą ads() metody obiektu ShoppingAdGroup. Możesz tworzyć nowe reklamy produktów za pomocą metody newAdBuilder() obiektu ShoppingAdGroup.

Iteracja w hierarchii grup produktów

Do korzenia hierarchii grup produktów możesz uzyskać dostęp za pomocą metody rootProductGroup obiektu ShoppingAdGroup. Następnie możesz użyć metody children, aby iterować podrzędne grupy produktów i przechodzić przez hierarchię grup produktów. Każdy węzeł jest obiektem ProductGroup, a za pomocą metody getDimension możesz określić rzeczywisty typ grupy produktów. Możesz też rzutować go na bardziej konkretny typ (np. ProductBrand) za pomocą odpowiedniej metody rzutowania (np. asBrand). Poniższy fragment kodu pokazuje, jak rekurencyjnie przechodzić przez 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);
  }
}

Wybieranie konkretnej grupy produktów

Możesz wybrać konkretne grupy produktów w hierarchii grup produktów za pomocą productGroups metody instancji AdsApp, ShoppingCampaign lub ShoppingAdGroup. To podejście jest prostsze niż przechodzenie przez całą hierarchię grup produktów podczas wybierania konkretnych grup produktów na potrzeby zarządzania stawkami. Poniższy fragment kodu pokazuje, jak wybrać wszystkie grupy produktów, które w ostatnim miesiącu uzyskały ponad 5 kliknięć i współczynnik klikalności większy niż 0.01, oraz 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ć podrzędną grupę produktów do istniejącej grupy produktów za pomocą metody newChild. Dzięki temu uzyskasz obiekt ProductGroupBuilderSpace, którego możesz użyć do utworzenia odpowiedniej grupy produktów. Poniższy fragment kodu dodaje podział na markę „cardcow” w korzeniu, a następnie dzieli ją na nowe i odnowione produkty.

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ąć podział za pomocą metody remove obiektu ProductGroup. Spowoduje to również usunięcie całej hierarchii grup produktów znajdującej się pod usuwaną grupą produktów.

Skrypty zapewnią, że hierarchia grup produktów będzie w spójnym stanie po utworzeniu każdej grupy produktów, więc podczas aktualizowania struktury hierarchii grup produktów nie musisz tworzyć ani usuwać grupy produktów odpowiadającej opcji „Wszystko inne”.

Grupa produktów „Wszystko inne”

Hierarchie grup produktów w kampaniach produktowych zawierają na każdym poziomie grupę produktów „Wszystko inne” („Inne”), która obsługuje produkty niespełniające warunku niestandardowego utworzonego w hierarchii grup produktów. Za pomocą metody isOtherCase możesz odróżnić zwykłą grupę produktów, którą dodano, od grupy produktów „Inne”.

Poniższy fragment kodu pobiera grupę produktów „Inne” w hierarchii grup produktów w korzeniu i wyświetla 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 liściowych, skrypty automatycznie tworzą grupę produktów „Inne”, aby zapewnić, że hierarchia grup produktów pozostanie prawidłowa. Grupa produktów „Inne” dziedziczy stawkę nadrzędnej grupy produktów.

Tworzenie nowej grupy reklam w kampanii produktowej

Skrypty Google Ads umożliwiają tworzenie nowej grupy reklam w kampanii produktowej za pomocą metody newAdGroupBuilder obiektu ShoppingCampaign. Po utworzeniu obiektu ShoppingAdGroup możesz użyć jego metody createRootProductGroup, aby utworzyć nową hierarchię grup produktów.

Raporty

Skrypty Google Ads obsługują raporty product_group_view i shopping_performance_view, które pomagają śledzić skuteczność kampanii produktowych. Więcej informacji o raportowaniu znajdziesz w naszym przewodniku po raportach.