+7 (8442) 50-01-34 mail@mellodesign.ru
Начните работать с нами
Оставьте заявку

Скрипт перехода к развернутым текстовым объявлениям Adwords

С 26 октября 2016 года в Google AdWords исчезнет возможность редактирования привычных объявлений, по крайней мере, к этому всё идёт.

Если вы не горите желанием создавать все объявления заново или много работать руками, то эта статья поможет сэкономить время на переход к новой форме — развернутым текстовым объявлениям.

01 сентября 2016

Способ первый

  • Открываем обычные текстовые объявления в AdWords Editor;
  • Выделяем нужные объявления;
  • Вызываем контекстное меню и выбираем пункт «экспортировать как развернутые текстовые объявления».

Экспортировать как развернутые текстовые объявления

  • Переходим в сформированный файл, и заполняем ячейки столбцов “Headline 2”, “Path 1”, “Path 2”.
  • Указываем в них значения для второго заголовка и двух полей пути. Все остальные значения остаются от обычного формата тестового объявления.

Переход к развернутым текстовым объявлениям AdWords

Description образуется путем слияния двух предыдущих строк описания.

Далее копируете полученную таблицу и импортируете в Editor (ctrl+shift+i либо cmd+shift+i). Нажимаете кнопку «Обработать».

Переход к развёрнутым объявлениям Google AdWords

Сохраняем изменения и видим, что теперь в той же кампании в тех же группах появились развёрнутые текстовые объявления, которые можно либо продолжить редактировать, либо опубликовать.

Google AdWords Editor

Способ второй

В интерфейсе AdWords открываем меню массового редактирования и создаём новый скрипт.

Скрипт перехода к развернутым текстовым объявлениям Adwords

Вставляем в редактор сценариев следующий код:

 function main() {

//Задание разных значений
var campaignNameContains = 'Часть названия кампании';
var groupNameContains = 'Часть названия группы';
var headlinePart2 = 'Текст второго заголовка';
var path1 = 'путь1';
var path2 = 'путь2';
//Функция проверки длины строк
function deb(x,y,z){
if (x.length>30) {return false;}
if (y.length>15) {return false;}
if (z.length>15) {return false;}
return true;
}
//Функция проверки наличия ярлыка "Создано скриптом"

function createLinkCheckerLabel(s) {
var labels = AdWordsApp.labels()
.withCondition("Name='"+s+"'")
.get();

if (!(labels.hasNext())) {
AdWordsApp.createLabel(s, "Ярлык, чтобы Вы видели, что создано скриптом", '#60e020');
Logger.log("Ярлык создан");
}
else { Logger.log("Ярлык уже есть"); }
}

createLinkCheckerLabel('Создано скриптом');
createLinkCheckerLabel('Оригинал для скрипта');

//Функция поиска групп, где уже есть объявления, созданные скриптом

function searchCreatedAD(x,y,deb) {
if (deb) {
var ids =[];
var i = 0;
var adGroupIterator7 = AdWordsApp.adGroups()
.withCondition("CampaignName CONTAINS '" + x + "'") //Название кампании содержит
//.withCondition("Name = '" + y + "'") //Название группы содержит
.get();

while (adGroupIterator7.hasNext()) {
var adGroup7 = adGroupIterator7.next();
var adsIterator7 = adGroup7.ads()
.withCondition('Type=EXPANDED_TEXT_AD')
.withCondition("LabelNames CONTAINS_NONE ['Создано скриптом']")
.get();

while (adsIterator7.hasNext()) {
var ad7 = adsIterator7.next().asType().expandedTextAd();
ids[i]=ad7.getAdGroup().getId();
i++;

}
}
if (ids.length > 0) {
return ids;}
else {

var ids2 =[];
var i2 = 0;
var adGroupIterator9 = AdWordsApp.adGroups()
.withCondition("CampaignName CONTAINS '" + x + "'") //Название кампании содержит
//.withCondition("Name = '" + y + "'") //Название группы содержит
.get();

while (adGroupIterator9.hasNext()) {
var adGroup9 = adGroupIterator9.next();
var adsIterator9 = adGroup9.ads()
.withCondition('Type=TEXT_AD')
.withCondition("LabelNames CONTAINS_NONE ['Оригинал для скрипта']")
.get();

while (adsIterator9.hasNext()) {
var ad9 = adsIterator9.next();
ids2[i2]=ad9.getAdGroup().getId();
i2++;

}
}

return ids2;
}
}
}

//Основная функция

function getTextAdsInAdGroup(i,a,b,c,d,e,deb) {
if (deb) {
if (i.length>0) {

//Перебираем все группы по заданным условиям

var adGroupIterator = AdWordsApp.adGroups()
.withCondition("CampaignName CONTAINS '" + a + "'") //Название кампании содержит
//.withCondition("Name = '" + b + "'") //Название группы содержит
.withIds(i)
.get();

//Перебираем все старые текстовые объявления в группах

while (adGroupIterator.hasNext()) {
var adGroup = adGroupIterator.next();

var adsIterator = adGroup.ads().withCondition('Type=TEXT_AD').get();

while (adsIterator.hasNext()) {
var ad = adsIterator.next();
ad.applyLabel('Оригинал для скрипта');

var headlinePart1 = ad.getHeadline();
var description1 = ad.getDescription1();
var description2 = ad.getDescription2();
var description = description1 +" "+ description2;
var finalUrl = ad.urls().getFinalUrl();

//Запоминаем id группы , где есть старые текстовые объявления

var ids = [];
ids[0]=ad.getAdGroup().getId();

//Перебираем группы по найденным id

var adGroupIterator2 = AdWordsApp.adGroups()
.withIds(ids)
.get();

while (adGroupIterator2.hasNext()) {

var adGroup2 = adGroupIterator2.next();

//Создаем новые развернутые текстовые объявления

adGroup2.newAd().expandedTextAdBuilder()
.withHeadlinePart1(headlinePart1)
.withHeadlinePart2(c)
.withDescription(description)
.withPath1(d)
.withPath2(e)
.withFinalUrl(finalUrl)
.build();

var adGroupIterator3 = AdWordsApp.adGroups()
.withIds(ids)
.get();

while (adGroupIterator3.hasNext()) {
var adGroup3 = adGroupIterator3.next();
var adsIterator3 = adGroup3.ads()
.withCondition('Type=EXPANDED_TEXT_AD')
.withCondition("HeadlinePart1='"+headlinePart1+"'")
.withCondition("HeadlinePart2='"+c+"'")
.withCondition("Description='"+description+"'")
.withCondition("Path1='"+d+"'")
.withCondition("Path2='"+e+"'")
.get();

while (adsIterator3.hasNext()) {
var ad3 = adsIterator3.next().asType().expandedTextAd();
ad3.applyLabel('Создано скриптом');
}}}}}}

else {Logger.log("В выбранных группах уже есть объявления, созданные скриптом");}

} else Logger.log("Укоротите одну из строк");}

getTextAdsInAdGroup(searchCreatedAD(campaignNameContains,groupNameContains,deb(headlinePart2,path1,path2)),
campaignNameContains,groupNameContains,headlinePart2,path1,path2,deb(headlinePart2,path1,path2));
Logger.log("Конец");
}

 

Достаточное количество комментариев позволят работать с этим скриптом и редактировать его под свои нужды. Но всё же, что он делает?

Вы задаёте значение для второй строки развернутого объявления и двух путей url. Указываете, какие кампании или группы необходимо переработать. Далее скрипт перебирает все прежние текстовые объявления и для каждого из них создаёт в той же группе новое, развёрнутое.

Предварительно скрипт создаст два ярлыка, чтобы в дальнейшем можно было понимать, для каких текстовых объявлений был создан дубль развёрнутого, а какие развёрнутые были созданы скриптом.

Скрипт для перехода к развёрнутым текстовым объявлениям Гугл

Развёрнутые текстовые объявления Гугл Эдвордс

Особенности

  1. Изначально возможность перебора по группам неактивна, чтобы её включить необходимо раскомментировать строки:
    //.withCondition(«Name = ‘» + y + «‘») //Название группы содержит
    //.withCondition(«Name = ‘» + y + «‘») //Название группы содержит
    //.withCondition(«Name = ‘» + b + «‘») //Название группы содержит
  2. Помните об ограничениях длины строк заголовка (30 символов) и путей url (15 символов).
  3. Если в одной группе у вас уже есть и старое текстовое объявление и развёрнутое, созданное не этим скриптом, то скрипт создаст новое развёрнутое объявление на основе старого текстового.
  4. Скрипт работает, так сказать, не спеша, но он работает, пока вы занимаетесь своими делами :).
  5. Если строки объявления не соответствуют редакционным требованиям Google AdWords, новые объявления не будут созданы.
  6.  Используя скрипт впервые, запустите предпросмотр.
  7. Если у вас много однотипных кампаний, то с помощью скрипта можно быстро перейти к новому формату объявлений.

Не стоит исключать сочетание рассмотренных выше способов для создания объявлений нового формата. Запустите скрипт сразу для нескольких кампаний, пока занимаетесь другими делами, при необходимости поправьте в AdWords Editor, либо через массовое редактирование.

Удачи!