AdWords
Сейчас в сети: 263
Сейчас в сети: 263
Советы и вопросы по использованию скриптов AdWords
Подсказки
star_border
Ответить

скрипт удержания позиции

Студент ✭

Добрый день, коллеги.Меня интересует скрипт с возможность задать минимальную и максимальную ставку для удержания позиции, а так же возможное отклонение.Есть какие-то актуальные варианты кроме билда от браинлаб?

скрипт удержания позиции

Аспирант ✭

Готовых не видел, но можно без проблем создать свой, который будет выгружать информацию по ключам/объявлениям.. в google sheets например, дальше вы указываете в нужных столбцах максимальное отклонение, максимальную цену за клик и тд., и на основе этих данных  скрипт выполняет свою работу.

скрипт удержания позиции

Студент ✭

Задаете ярлыки для нужных кампаний

-positionControl
 

-targetPosition2.7

Сам скрипт
//обновление от 24 октября: если текущая ставка(28) меньше максимальной(30), но текущая * коэф.(1.2)
//больше максимальной( 30.8 > 30 ), то устанавливавается максимальная (30)

//1. Скрипт смотрит не за 7 дней, а за 1

//2. Макмимальную ставку можно ограничить через параметр MAX_BID_PRICE

var MAX_BID_PRICE = 50; //максимальная ставка, в рублях 100

// Допустимое отклонение для средней позиции. Т.е. если допустимое отклонение = 0.1 а целевая позиция = 2, то скрипт не затронет ключи с позицией 1.9 и 2.1.
var TOLERANCE = 0.1;

// Множитель для изменения ставок. Т.е. если он равно 1.05 то ставки опустятся или поднимутся на 5%.
var BID_ADJUSTMENT_COEFFICIENT = 1.05;

function main() {
var campaignsWithPosition = AdWordsApp.campaigns().withCondition("LabelNames CONTAINS_ANY ['positionControl']").get();
while (campaignsWithPosition.hasNext()) {
var campaign = campaignsWithPosition.next();
var targetPositionLabel = campaign.labels().withCondition("LabelName STARTS_WITH_IGNORE_CASE 'targetPosition'").get().next().getName();
var targetPosition = parseFloat(targetPositionLabel.replace(/[^\d.-]/g, ''));
Logger.log(campaign.getName() + ' - target posinion: ' + targetPosition);
raiseKeywordBids(campaign, targetPosition);
lowerKeywordBids(campaign, targetPosition);
}
}

function raiseKeywordBids(campaign, targetPosition) {
var keywordsToRaise = campaign.keywords()
.withCondition("Status = ENABLED")
.withCondition("AveragePosition > " + (targetPosition + TOLERANCE))
.orderBy("AveragePosition ASC")
.forDateRange("YESTERDAY")
.get();

while (keywordsToRaise.hasNext()) {
var keyword = keywordsToRaise.next();
if (keyword.getMaxCpc() < MAX_BID_PRICE) {
if ((keyword.getMaxCpc() * BID_ADJUSTMENT_COEFFICIENT) < MAX_BID_PRICE) {
keyword.setMaxCpc(keyword.getMaxCpc() * BID_ADJUSTMENT_COEFFICIENT);
} else {
keyword.setMaxCpc(MAX_BID_PRICE);
}
}
}
}

function lowerKeywordBids(campaign, targetPosition) {
var keywordsToLower = campaign.keywords()
.withCondition("Ctr > 0.01")
.withCondition("AveragePosition < " + (targetPosition - TOLERANCE))
.withCondition("Status = ENABLED")
.orderBy("AveragePosition DESC")
.forDateRange("YESTERDAY")
.get();


while (keywordsToLower.hasNext()) {
var keyword = keywordsToLower.next();
keyword.setMaxCpc(keyword.getMaxCpc() / BID_ADJUSTMENT_COEFFICIENT);
}
}

скрипт удержания позиции

Магистр ✭

Скрипт актуален на сегодняшний день месяц /июль 2018