Las secuencias de comandos de Google Ads permiten administrar tus campañas de Shopping. Puedes usar secuencias de comandos para trabajar con campañas de Shopping existentes, crear y administrar jerarquías de grupos de productos, y ejecutar informes de Shopping. Sin embargo, no puedes usar secuencias de comandos para crear campañas de Shopping, establecer propiedades de Shopping a nivel de la campaña (por ejemplo, prioridad de la campaña, filtros de inventario, etc.) ni vincular cuentas de Merchant Center.
Recuperación de campañas y grupos de anuncios de Shopping
Las campañas de Shopping están disponibles a través de la colección shoppingCampaigns
de un objeto AdsApp
. Puedes recuperarlos como de costumbre a través de secuencias de comandos:
const campaignName = "My first shopping campaign";
const campaignIterator = AdsApp.shoppingCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
Una vez que hayas recuperado una campaña, podrás obtener sus grupos de anuncios de una manera similar. Esto solo es preferible si necesitas realizar acciones en la campaña y en sus grupos de anuncios.
const adGroupIterator = campaign.adGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
Si planeas realizar acciones solo en grupos de anuncios específicos, puedes usar el método AdsApp.shoppingAdGroups()
para recuperar los grupos de anuncios sin recuperar primero la campaña:
const adGroupIterator = AdsApp.shoppingAdGroups()
.withCondition(`campaign.name = "${campaignName}"`)
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
Anuncios de productos
Las secuencias de comandos de Google Ads te permiten
recuperar
tus anuncios de productos con
el
metodo ads()
de ShoppingAdGroup
.
Puedes crear anuncios de productos nuevos con el método newAdBuilder()
de ShoppingAdGroup
.
Itera a través de la jerarquía del grupo de productos
Puedes acceder a la raíz de la jerarquía de grupos de productos con el método rootProductGroup
de ShoppingAdGroup
.
Luego, puedes usar el método children
para iterar los grupos de productos secundarios y recorrer la jerarquía de grupos de productos. Cada nodo es un objeto ProductGroup
, y puedes usar el método getDimension
para averiguar el tipo real del grupo de productos. También puedes transmitirlo a un tipo más específico (por ejemplo, ProductBrand
) con el método de transmisión correspondiente (por ejemplo, asBrand
). En el siguiente fragmento de código, se muestra cómo recorrer de forma recursiva la jerarquía del grupo de productos.
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);
}
}
Selecciona un grupo de productos específico
Puedes seleccionar grupos de productos específicos en una jerarquía de grupos de productos con el método productGroups
de una instancia de AdsApp
, ShoppingCampaign
o ShoppingAdGroup
. Este enfoque es más sencillo que recorrer toda la jerarquía de grupos de productos cuando se seleccionan grupos de productos específicos para la administración de ofertas. En el siguiente fragmento de código, se muestra cómo seleccionar todos los grupos de productos con más de cinco clics y una tasa de clics superior a 0.01
durante el último mes, y aumentar su oferta en 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);
}
}
Actualiza una jerarquía de grupos de productos
Puedes agregar un grupo de productos secundario a un grupo de productos existente con su método newChild
. Esto te proporciona un objeto ProductGroupBuilderSpace
, que puedes usar para crear un grupo de productos adecuado. En el siguiente fragmento de código, se agrega una subdivisión para una marca "cardcow" en la raíz y, luego, se subdivide para productos nuevos y reacondicionados.
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();
De manera similar, puedes quitar una subdivisión con el método remove
de ProductGroup
.
Esta acción también borra toda la jerarquía del grupo de productos debajo del grupo de productos que se quita.
Las secuencias de comandos se asegurarán de que la jerarquía de grupos de productos esté en un estado coherente después de crear cada grupo de productos, por lo que no es necesario crear ni borrar el grupo de productos correspondiente a "Todo lo demás" cuando se actualiza la estructura de jerarquía de grupos de productos.
El grupo de productos "Todo lo demás"
Las jerarquías de grupos de productos de Shopping contienen un grupo de productos denominado “Todo lo demás” (“Otros”) en cada nivel para controlar los productos que no coinciden con la condición personalizada que creaste en la jerarquía de grupos de productos. Puedes usar el método isOtherCase
para distinguir entre un grupo de productos normal que agregaste y el grupo de productos "Otros".
En el siguiente fragmento de código, se recupera el grupo de productos "Otros" en la jerarquía del grupo de productos raíz y se imprime su oferta.
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.");
}
Cuando subdividir un grupo de productos de nivel inferior, las secuencias de comandos crean automáticamente un grupo de productos "Otros" para garantizar que la jerarquía del grupo de productos siga siendo válida. El grupo de productos "Otros" hereda la oferta del grupo de productos superior.
Cómo crear un grupo de anuncios de Shopping nuevo
Las secuencias de comandos de Google Ads te permiten crear un grupo de anuncios de Shopping nuevo con el método newAdGroupBuilder
de ShoppingCampaign
.
Una vez que crees el objeto ShoppingAdGroup
, podrás usar su método createRootProductGroup
para crear una nueva jerarquía de grupos de productos.
Informes
Las secuencias de comandos de Google Ads admiten informes product_group_view
y shopping_performance_view
para ayudarte a hacer un seguimiento del rendimiento de tus campañas de Shopping. Puedes obtener más información sobre las denuncias en nuestra guía de denuncias.