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étera) ni vincular cuentas de Merchant Center.
Recupera 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 recuperaste una campaña, puedes obtener sus grupos de anuncios de manera similar. Esto solo es preferible si necesitas tomar medidas en relación con la campaña y sus grupos de anuncios.
const adGroupIterator = campaign.adGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
Si planeas tomar medidas solo en grupos de anuncios específicos, puedes usar el método AdsApp.shoppingAdGroups()
para recuperar 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 método ads()
de ShoppingAdGroup
.
Puedes crear anuncios de productos nuevos con el método newAdBuilder()
de ShoppingAdGroup
.
Itera en la jerarquía del grupo de productos
Puedes acceder a la raíz de la jerarquía del grupo 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 determinar el tipo real del grupo de productos. También puedes convertirlo a un tipo más específico (por ejemplo, ProductBrand
) con el método de conversión correspondiente (por ejemplo, asBrand
). En el siguiente fragmento de código, se muestra cómo recorrer de forma recursiva la jerarquía de grupos 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 simple 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 un porcentaje de clics superior a 0.01
durante el último mes, y cómo 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 compilar 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 aún más para los 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 que se encuentra debajo del grupo de productos que se quita.
Las secuencias de comandos garantizarán que la jerarquía del grupo de productos se encuentre en un estado coherente después de crear cada grupo de productos, por lo que no es necesario que crees ni borres el grupo de productos correspondiente a "Todo lo demás" cuando actualices la estructura de la jerarquía del grupo de productos.
El grupo de productos "Todo lo demás"
Las jerarquías de grupos de productos de Shopping contienen un grupo de productos "Todo lo demás" ("Otro") 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 "Otro" 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 subdivides un grupo de productos hoja, las secuencias de comandos crean automáticamente un grupo de productos "Otro" 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 principal.
Crea un grupo de anuncios de Shopping nuevo
Los 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
, puedes 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 de 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.