Приветствую друзья, если вы работаете с рекламой Google Ads то знаете как важно оптимизировать кампании, чтобы снижать расходы и увеличивать ROI. Для этого мы используем все доступные данные и чем их больше тем больше возможностей для оптимизации.
Многие из Вас используют сегменты аудиторий для таргетирования в контекстно-медийных сетях. А многие ли из Вас используют доступные сегменты аудиторий в режиме наблюдения?
Если да то Вы знаете что в данный момент Google не позволяет в пару кликов быстро добавить все доступные сегменты аудиторий в кампанию, кроме как использовать Google Ads Editor. Можно конечно добавить все аудитории прокликивая каждый раздел в одну кампанию а их более 900, и далее копировать, но это довольно муторно и что делать с уже готовыми кампаниями?
Я просканировал интернет и нигде не нашел готового решения. Поэтому с напарником в виде ИИ gemini написал сей скрипт для решения этой проблемы.
Инструкция по применению:
1. Переведите интерфейс рекламного кабинета Google Ads на английский, добавив в конец адресной строки параметр &hl=en, после того как закончите добавлять аудитории просто удалите его. Получится примерно так: https://ads.google.com/aw/overview?ocid=100&workspaceId=0&ascid=1001&euid=644&__u=924&uscid=100&__c=199&authuser=0&hl=en
2. Выберите раздел Audience и нажмите Add audience segments
3. Далее выбираем пункт Observation (Наблюдение) и нажимаем на Browse
4. Здесь открываем консоль (2) и вставляем javascript код (3), который представлен в конце статьи, и нажимаем enter
5. Ждём пока пока в консоли не появится уведомление “Процесс Завершен”
6. Нажимаем Save. Поздравляю вы сэкономили 40 минут и добавили 900+ аудиторий по которым будет собираться информация.
(async () => {
// 1. Клик по "Who they are"
const div1 = findDivByText("Who they are");
div1?.click();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 2. Раскрытие иконок
await expandIcons();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 3. Возврат к списку категорий
const element1 = document.querySelector('i[aria-label="Return to category list"]');
element1?.click();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 4. Клик по "What their interests and habits are"
const div2 = findDivByText("What their interests and habits are");
div2?.click();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 5. Раскрытие иконок
await expandIcons();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 6. Возврат к списку категорий
const element2 = document.querySelector('i[aria-label="Return to category list"]');
element2?.click();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 7. Клик по "What they are actively researching or planning"
const div3 = findDivByText("What they are actively researching or planning");
div3?.click();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 8. Раскрытие иконок
await expandIcons();
// Пауза 1 секунда
await new Promise(resolve => setTimeout(resolve, 1100));
// 9. Возврат к списку категорий
const element3 = document.querySelector('i[aria-label="Return to category list"]');
element3?.click();
// Вывод сообщения "Процесс завершен"
console.log("Процесс завершен");
})();
// Функция для поиска div-блока по тексту
function findDivByText(text) {
const divs = document.getElementsByTagName("div");
for (const div of divs) {
if (div.textContent === text) {
return div;
}
}
return null;
}
// Функция для рекурсивного раскрытия иконок
async function expandIcons(i = 0) {
try {
const icons = document.querySelectorAll('material-icon[aria-label="Expand items"]');
icons.forEach(icon => icon.click());
if (i < 5) {
i++;
await new Promise(resolve => setTimeout(resolve, 1100));
return expandIcons(i);
} else {
await new Promise(resolve => setTimeout(resolve, 1000));
const checkboxes = document.querySelectorAll('material-checkbox');
checkboxes.forEach(checkbox => checkbox.click());
}
} catch (error) {
console.error(error);
}
}
Оставить комментарий