идентификаторы

Большинство сущностей Google Рекламы предоставляют метод getId() , который возвращает их идентификатор. Хотя в большинстве случаев это не является строго обязательным, идентификаторы могут быть полезны, когда

Работа с отчетами
Идентификаторы предоставляют хороший способ связать строку отчета с фактической сущностью Google Ads.
Ведение сопоставления с внешним хранилищем данных
Возможно, в вашей базе данных уже хранится идентификационная информация.
Ищу небольшое повышение производительности

Извлечение по идентификаторам часто быстрее альтернативных вариантов. Код для извлечения одной сущности также немного проще:

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

Уникальность

Идентификаторы кампаний и групп объявлений уникальны: две кампании или группы объявлений никогда не будут иметь одинаковый идентификатор. Однако у объявлений и ключевых слов есть составные идентификаторы: уникальный идентификатор ключевого слова — это комбинация идентификатора группы объявлений и идентификатора ключевого слова. Аналогично, уникальный идентификатор объявления — это комбинация идентификатора группы объявлений и идентификатора объявления. Это влияет на способ вызова selector.withIds() .

Для кампаний и групп объявлений selector.withIds() ожидает массив чисел:

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

Однако для объявлений и ключевых слов selector.withIds() требует массив из двух элементов, где первый элемент — идентификатор группы объявлений. Следующий фрагмент кода извлекает три ключевых слова из группы объявлений:

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

Та же конструкция применяется при получении рекламы.

Временные удостоверения личности

При работе с запросом mutate с несколькими операциями вам иногда потребуется использовать временные идентификаторы для связи ресурсов друг с другом, поскольку полные имена ресурсов будут доступны только после получения ответа API. Временные идентификаторы должны быть отрицательными числами, начинающимися с -1, и не могут повторяться в одном запросе mutate. Для эффективного использования временных идентификаторов вам потребуется написать код, который гарантирует отсутствие дублирования временных идентификаторов:

let nextId = -1;

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

Каждый последующий вызов getNextTempId будет возвращать число на единицу меньше предыдущего. Поскольку все временные идентификаторы должны быть отрицательными, начните с -1.

Временные идентификаторы не запоминаются между заданиями и запросами на мутацию. Чтобы сослаться на ресурс, созданный в предыдущем запросе на мутацию, используйте его фактическое имя.