Большинство сущностей 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.
Временные идентификаторы не запоминаются между заданиями и запросами на мутацию. Чтобы сослаться на ресурс, созданный в предыдущем запросе на мутацию, используйте его фактическое имя.