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.