ТРУ.МАРКЕТИНГ — Наш канал в телеграме
Ежедневные обзоры статей, новости рынка, кейсы.Подписаться

Отключение площадок КМС по условиям: коэф. конверсии, количество кликов и стоп-словам

functionmain() {

    //Добавить в исключения площадки, // у которых конверсий (за последние 30 дней) меньше, чем:var MAX_CONVERSIONS =1;

    //И у которых кликов (за последние 30 дней) больше, чем:var MIN_CLICKS =100;

    //название списка исключенных площадок //должен быть создан заранееvar EXCLUDE_LIST_NAME ="Общий";

    //Также добавить в исключения площадки, в которых встречаются стоп-слова:var stopWords = [
        'game',
        'play',
        'avito'
    ];

    //берем список исключений по имени, // то есть ОБЩИЙ, чтобы в него добавлять исключаемые площадкиvar excludeGroup = AdWordsApp.excludedPlacementLists()
        .withCondition("Name CONTAINS '"+ EXCLUDE_LIST_NAME +"'")
        .withLimit(1).get();

    //если ОБЩИЙ список имеется, далее выполняем скриптif (excludeGroup.hasNext()) {

        excludeGroup = excludeGroup.next();

        //берём все активные НЕ КМС кампанииvar campaignIterator = AdWordsApp.campaigns()
            .withCondition('Status = ENABLED')
            .withCondition("Name CONTAINS_IGNORE_CASE 'КМС'")
            .get();

        while (campaignIterator.hasNext()) {

            var campaign = campaignIterator.next();

            Logger.log('Кампания: '+ campaign.getName());

            //берём у кампании список площадокvar placements = campaign.display().placements().get();
            while (placements.hasNext()) {
                var placement = placements.next();

                //берем стату за 30 дней и смотрим клики и конверсииvar stats = placement.getStatsFor('LAST_30_DAYS');
                var clicks = stats.getClicks(), conversions = stats.getConvertedClicks();

                //если (кликов >= MIN_CLICKS и конверсий <= MAX_CONVERSIONS) // или площадка содержит стоп-слово, то добавляем в исключениеif ((clicks >= MIN_CLICKS && conversions <= MAX_CONVERSIONS) ||
                    (new RegExp('\\b'+ stopWords.join('\\b|\\b') +'\\b') ).test(placement.getUrl())) {

                    excludeGroup.addExcludedPlacement(placement.getUrl());
                    Logger.log('Площадка: '+ placement.getUrl() +' исключена (кликов '+ clicks 
                    +' конверсий '+ convers +')');

                }

            }
        }
    }

}