Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////Начало
- // Желаемое значение процента полученных показов от 0 до 1
- var TARGET_IMPRESSION_SHARE = 0.95;
- // Множитель ставки
- var BID_ADJUSTMENT_COEFFICIENT = 1.25;
- // Верхний порог ставки
- var max = 40;
- // Ставка для фраз без показов
- var noImp = 30;
- // Нижний порог ставки
- var min = 15;
- // Условие отбора фраз, например "имя кампании содержит"
- var cond = "CampaignName CONTAINS 'brand'";
- // Период для отбора
- var period = 'LAST_14_DAYS';
- // Основная функция, без нее никуда
- function main() {
- // Ф-я подъема ставок
- raiseKeywordBids();
- // Ф-я снижения ставок
- lowerKeywordBids();
- // Ф-я установки ставок для фраз с нулем показов
- noImpressionsKeywordBids();
- }
- // Ф-я подъема ставок
- function raiseKeywordBids() {
- Logger.log("Повышаем");
- var keywordsToRaise = getKeywordsToRaise();
- while (keywordsToRaise.hasNext()) {
- var keyword = keywordsToRaise.next();
- keyword.bidding().setCpc(getIncreasedCpc(keyword.bidding().getCpc()));
- Logger.log(keyword.getText()+" - "+keyword.getCampaign().getName());
- }
- }
- // Ф-я снижения ставок
- function lowerKeywordBids() {
- Logger.log("Понижаем");
- var keywordsToLower = getKeywordsToLower();
- while (keywordsToLower.hasNext()) {
- var keyword = keywordsToLower.next();
- keyword.bidding().setCpc(getDecreasedCpc(keyword.bidding().getCpc()));
- Logger.log(keyword.getText()+" - "+keyword.getCampaign().getName());
- }
- }
- // Ф-я установки ставок для фраз с нулем показов
- function noImpressionsKeywordBids() {
- Logger.log("Ставим фиксированную ставку");
- var keywordsToLower = getKeywordsNoImpressions();
- while (keywordsToLower.hasNext()) {
- var keyword = keywordsToLower.next();
- keyword.bidding().setCpc(noImp);
- Logger.log(keyword.getText()+" - "+keyword.getCampaign().getName());
- }
- }
- // Ф-я повышения ставки
- function getIncreasedCpc(cpc) {
- var bid = cpc * BID_ADJUSTMENT_COEFFICIENT; if (bid>max) {bid=max;} else if (bid<min) {bid=min;}
- return bid;
- }
- // Ф-я снижения ставки
- function getDecreasedCpc(cpc) {
- var bid = cpc / BID_ADJUSTMENT_COEFFICIENT; if (bid<min) {bid=min;} else if (bid>max) {bid=max;}
- return bid;
- }
- // Ф-я получения ключевых слов, которым надо поднять ставку
- function getKeywordsToRaise() {
- return AdWordsApp.keywords().withCondition(cond)
- .withCondition("Impressions > 0")
- .withCondition('Status = ENABLED')
- .withCondition('SearchImpressionShare < ' + TARGET_IMPRESSION_SHARE)
- .orderBy('SearchImpressionShare ASC')
- .forDateRange(period)
- .get();
- }
- // Ф-я получения ключевых слов, которым надо опустить ставку
- function getKeywordsToLower() {
- return AdWordsApp.keywords().withCondition(cond)
- .withCondition("Impressions > 0")
- .withCondition('SearchImpressionShare > ' + TARGET_IMPRESSION_SHARE)
- .withCondition('Status = ENABLED')
- .orderBy('SearchImpressionShare DESC')
- .forDateRange(period)
- .get();
- }
- // Ф-я получения ключевых слов, у которых не было показов
- function getKeywordsNoImpressions() {
- return AdWordsApp.keywords().withCondition(cond)
- .withCondition("Impressions = 0")
- .withCondition('Status = ENABLED')
- .forDateRange(period)
- .get();
- }
- ///////Конец
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement