ID

La mayoría de las entidades de Google Ads exponen un método getId() que devuelve su identificador. Si bien no son estrictamente necesarios en la mayoría de los casos, los IDs pueden ser útiles en las siguientes situaciones:

Trabaja con informes
Los IDs son una buena forma de vincular una fila del informe con la entidad real de Google Ads.
Cómo mantener una asignación con un almacén de datos externo
Es posible que ya tengas información basada en IDs almacenada en tu propia base de datos.
Buscas un poco más de rendimiento

La recuperación por IDs suele ser más rápida que otras alternativas. El código para recuperar una sola entidad también es un poco más sencillo:

let campaigns = AdsApp.campaigns()
   .withIds([678678])
   .get();
// versus
let campaigns = AdsApp.campaigns()
   .withCondition("Name='My Campaign'")
   .get();

Unicidad

Los IDs de campaña y de grupo de anuncios son únicos: ninguna campaña ni grupo de anuncios compartirán el mismo ID. Sin embargo, los anuncios y las palabras clave tienen IDs compuestos: un identificador único de una palabra clave es una combinación de su ID de grupo de anuncios y su ID de palabra clave. Del mismo modo, un identificador único de un anuncio es una combinación de su ID de grupo de anuncios y su ID de anuncio. Esto tiene implicaciones en la forma en que se llama a selector.withIds().

En el caso de las campañas y los grupos de anuncios, selector.withIds() espera un array de números:

let ids = [123123, 234234, 345345];
let campaignSelector = AdsApp.campaigns().withIds(ids);

Sin embargo, para los anuncios y las palabras clave, selector.withIds() necesita un array de arrays de dos elementos, en el que el primer elemento es el ID del grupo de anuncios. El siguiente fragmento recupera tres palabras clave de un grupo de anuncios:

let adGroupId = 123123;
let keywordSelector = AdsApp.keywords().withIds([
    [adGroupId, 234234],
    [adGroupId, 345345],
    [adGroupId, 456456]
]);

La misma construcción se aplica cuando se recuperan anuncios.

IDs temporales

Cuando trabajes con una solicitud de mutación con varias operaciones, en ocasiones, deberás usar IDs temporales para vincular recursos entre sí, ya que los nombres completos de los recursos no estarán disponibles hasta que recibas la respuesta de la API. Los IDs temporales deben ser números negativos que comiencen con -1 y no se pueden repetir en la misma solicitud de mutación. Para usar IDs temporales de manera eficaz, deberás escribir código para asegurarte de no crear IDs temporales duplicados:

let nextId = -1;

function getNextTempId() {
    const ret = nextId;
    nextId -= 1;
    return ret;
}

Cada llamada sucesiva a getNextTempId devolverá un número inferior en uno al anterior. Dado que todos los IDs temporales deben ser negativos, comienza con -1.

Los IDs temporales no se recuerdan entre trabajos o solicitudes de mutación. Para hacer referencia a un recurso creado en una solicitud de modificación anterior, usa su nombre de recurso real.