Campañas de máximo rendimiento con AdsApp

Las secuencias de comandos de Google Ads permiten administrar parte de las campañas de máximo rendimiento campañas. Puedes usar para recuperar campañas de máximo rendimiento, administrar grupos de recursos informes; Sin embargo, no puedes utilizar secuencias de comandos para crear campañas de máximo rendimiento. Para realizar operaciones más avanzadas, consulta el resto de esta guía, que demuestra un enfoque más genérico con mutate.

Recuperación de campañas de máximo rendimiento

Las campañas de máximo rendimiento están disponibles en el performanceMaxCampaigns colección de un AdsApp . Puedes recuperarlos como de costumbre:

const campaignName = "My Performance Max campaign";

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

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

A diferencia de otros tipos de campañas, las campañas de máximo rendimiento no tienen objetos de anuncios o grupos que puedes ver; todo lo relacionado con estos conceptos para otras campañas se administra automáticamente en función de los grupos de recursos que automático.

Recursos y grupos de recursos

Los anuncios de las campañas de máximo rendimiento se publican activos como videos, imágenes, títulos y descripciones proporcionados por usted o se generan automáticamente. Para obtener un resumen completo de los tipos de recursos consulta el recurso de campaña de máximo rendimiento de la API de Google Ads de la guía de YouTube.

Los recursos de las campañas de máximo rendimiento se agrupan en un grupo de recursos, y cada campaña de máximo rendimiento debe tener, al menos, un grupo de recursos. Tú no puede crear estos grupos de recursos directamente en las secuencias de comandos, quitar recursos de un grupo de recursos existente.

Agregar recurso al grupo de recursos

Primero, crea el recurso:

const imageUrl = "http://www.example.com/example.png";
const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
const assetOperation = AdsApp.adAssets().newImageAssetBuilder()
   .withName("new asset name")
   .withData(imageBlob)
   .build();
const imageAsset = assetOperation.getResult();

Luego, usa el recurso que acabas de crear para agregarlo a un grupo de recursos existente:

// First, fetch the Performance Max campaign we want to operate on.
const campaignIterator = AdsApp.performanceMaxCampaigns()
   .withCondition(`campaign.name = '${campaignName}'`)
   .get();
let campaign;
if (campaignIterator.hasNext()) {
   campaign = campaignIterator.next();
} else {
   throw `No campaign found with name ${campaignName}.`
}

// Then, get that campaign's asset groups.
const assetGroupIterator = campaign.assetGroups().get();

// The campaign must have at least one asset group, so we can just assume so here.
const assetGroup = assetGroupIterator.next();

// Add the asset from the previous step.
assetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');

Ten en cuenta que debes especificar el tipo de recurso en el último paso. Puedes encontrar un lista completa de los tipos de recursos en la API de Google Ads documentación

Para usar un recurso existente, primero crea un selector de recursos:

const assetSelector = AdsApp.adAssets().assets();

Luego, utilice un filtro withCondition para limitar la cantidad de elementos que desea utilizar para poder realizar las operaciones. Consulta la AssetSelector documentación de referencia para obtener una lista completa de las opciones de filtro.

Por último, recupera el iterador y, luego, itera como con otras entidades:

const assetIterator = assetSelector.get();

for (const asset of assetIterator) {
   ...
}

Recursos de texto

Los recursos de texto funcionan de manera un poco diferente, ya que no necesitas crearlos con anticipación. Solo debes especificar el texto, en lugar de un recurso, y el sistema automáticamente el recurso. Si el texto es un duplicado exacto de una recurso de texto existente, el recurso existente se reutilizará en su lugar.

Por ejemplo, a continuación, te mostramos cómo crear un recurso de título:

assetGroup.addAsset('asset text here', 'HEADLINE');

Quitar recurso del grupo de recursos

También puedes quitar un recurso de un grupo de recursos. Sin embargo, ten en cuenta que debe tener una cantidad mínima de ciertos tipos de recursos para que la campaña sea válida.

A continuación, se muestra cómo quitar el recurso que se agregó en el ejemplo anterior:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

También puedes obtener una lista de los recursos en un grupo de recursos determinado con el search. función:

// The resource name is a unique identifier for this asset group.
const assetGroupName = assetGroup.getResourceName();
results = AdsApp.search(
   `SELECT asset.resource_name, asset_group_asset.field_type
    FROM asset_group_asset
    WHERE asset_group.resource_name = '${assetGroupName}'`
);

Esto selecciona el nombre del recurso del recurso como su identificador único. Podrías seleccionar otros campos también, como asset.type o asset.text_asset.text, para perfeccionando aún más los resultados. Usa el Compilador de consultas para este informe escribir para crear tu propia consulta.

Una vez que tengas el recurso de segmentación, llama a remove en el grupo de recursos para quitar recurso del grupo de recursos:

// Let's assume at least one asset is returned. We'll just remove the first
// asset, whatever it is. In your code, customize this to choose the right asset.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);