Разработка performance-стратегии продвижения — полное руководствоскачайте бесплатно

Автоматическое формирование ставок на основе цены за максимальной цены за клик.

(Вход в блок по минимальной цене)

functionmain() {

    //максимальная ЦЕНА для всех фразvar ALL_CPC =50;

    //максимальная ЦЕНА для ФРАЗ содержащих спецслова из спискаvar SPECIAL_CPC =90;

    //множитель увеличения цены для getFirstPageCpcvar FIRST_PAGE_K =1.2;

    //множитель увеличения цены для getTopOfPageCpcvar TOP_PAGE_K =1.05;

    //если получим getFirstPageCpc и getTopOfPageCpc равные 0,// то maxcpc по умолчанию будет равенvar CUR_MAX_CPC =15;

    var specialWords = [
        "цена",
        "стоимость",
        "купить",
        "продажа",
        "заказ",
        "заказать",
        //"интернет",//"магазин","покупка",
        "доставка",
        "бронировать",
        "бронирование",
        "забронировать",
        "опт",
        "оптовый",
        "производство",
        "производитель",
        "поставка",
        "поставщик",
        "склад",
        "закуп",
        "закупка",
        "оптовик",
        "розница",
        "розничные",
        "изготовитель",
        "изготовление",
        "база",
        //"компании",//"фирмы",//"прайс"
    ];


    //берем все активные группы  всех активных кампаний в которых нет КМСvar adGroupIterator = AdWordsApp.adGroups()
        .withCondition("CampaignStatus = ENABLED")
        .withCondition("CampaignName DOES_NOT_CONTAIN_IGNORE_CASE 'КМС'")
        .withCondition("AdGroupStatus = ENABLED")
        .get();

    Logger.log('Всего найдено активных групп: '+ adGroupIterator.totalNumEntities());

    //бежим по группамwhile (adGroupIterator.hasNext()) {
        var adGroup = adGroupIterator.next();
        Logger.log('Кампания: '+ adGroup.getCampaign().getName());
        Logger.log('Группа: '+ adGroup.getName());

        //берем все активные кейворды этой группыvar keywordIterator = adGroup.keywords().withCondition("Status = ENABLED").get();
        while (keywordIterator.hasNext()) {
            var keyword = keywordIterator.next();
            var CURRENT_CPC;

            //в зависимости от содержания спец-слов берем нужный CPCif (new RegExp(specialWords.join("|")).test(keyword.getText())) CURRENT_CPC = SPECIAL_CPC;
            else CURRENT_CPC = ALL_CPC;

            //берем getTopOfPageCpc кейвордаvar topcpc = keyword.getTopOfPageCpc();

            Logger.log('Найден Ключ: '+ keyword.getText() +' getTopOfPageCpc: '+ topcpc +' getFirstPageCpc: '+keyword.getFirstPageCpc());

            if (!topcpc || topcpc > CURRENT_CPC) {
                //если getTopOfPageCpc нет, то берем getFirstPageCpc// и указываем maxcpc равный FIRST_PAGE_K * getFirstPageCpcvar cpc = keyword.getFirstPageCpc();
                var maxcpc = cpc * FIRST_PAGE_K;
            }
            else {
                //если getTopOfPageCpc есть,// то указываем maxcpc равный TOP_PAGE_K * getTopOfPageCpcvar cpc = topcpc;
                var maxcpc = cpc * TOP_PAGE_K;
            }

            //если получили getFirstPageCpc и getTopOfPageCpc равные 0,// то maxcpc по умолчанию CUR_MAX_CPCif (cpc <=0 || !cpc) {
                maxcpc = CUR_MAX_CPC;
            }

            //если получили cpc (это getFirstPageCpc или getTopOfPageCpc) > CURRENT_CPC// то ничего не делаем с ключомif (cpc > CURRENT_CPC) {
                Logger.log('Ключ: '+ keyword.getText() +' — пропуск');
            }
            else {
                //если получили getFirstPageCpc или getTopOfPageCpc < CURRENT_CPC// то устанавливаем maxcpc расчитаный выше
                keyword.setMaxCpc(maxcpc);
                keyword.enable();

                Logger.log('Ключ: '+ keyword.getText() +' — в работе с MaxCpc: '+ maxcpc);
            }

        }

    }
}