Ставки для позиции — различия между версиями
(Новая страница: « <pre> function main() { //массив ярлыков. //если один, то просто "Ярлык1". //если массив, то ["Ярлык1"…») |
|||
| Строка 1: | Строка 1: | ||
| + | 1. Скопируйте приведенный ниже код в Массовые операции | ||
| + | |||
| + | 2. Прописать ярлыки нужным ключевым словам либо кампаниям, его же указываем для переменной LabelNames | ||
| + | |||
| + | 3. Указать максимальную и минимальную ставки, наибольшее и наименьшее значение позиции | ||
| + | |||
| + | 4. Запланировать выполнение скрипта | ||
<pre> | <pre> | ||
| Строка 6: | Строка 13: | ||
//если один, то просто "Ярлык1". | //если один, то просто "Ярлык1". | ||
//если массив, то ["Ярлык1","Ярлык2",...,"ЯрлыкN"] | //если массив, то ["Ярлык1","Ярлык2",...,"ЯрлыкN"] | ||
| − | var LabelNames = [" | + | var LabelNames = ["НАЗВАНИЕ ЯРЛЫКА"]; |
//максимально допустимая цена за клик | //максимально допустимая цена за клик | ||
var maxPrice = 0.5; | var maxPrice = 0.5; | ||
Текущая версия на 20:07, 13 февраля 2018
1. Скопируйте приведенный ниже код в Массовые операции
2. Прописать ярлыки нужным ключевым словам либо кампаниям, его же указываем для переменной LabelNames
3. Указать максимальную и минимальную ставки, наибольшее и наименьшее значение позиции
4. Запланировать выполнение скрипта
function main() {
//массив ярлыков.
//если один, то просто "Ярлык1".
//если массив, то ["Ярлык1","Ярлык2",...,"ЯрлыкN"]
var LabelNames = ["НАЗВАНИЕ ЯРЛЫКА"];
//максимально допустимая цена за клик
var maxPrice = 0.5;
//минимально допустимая цена
var minPrice = 0.2;
//нижняя граница базового диапазна AveragePosition
var customLowerAveragePosition = 1;
//верхняя граница базовго диапазона AveragePosition
var customUpperAveragePosition = 1;
//проценты для базового диапазона
var customPercent = 0;
//(%) шаг для процентов других диапазонов
var stepPercent = 5;
//наименьшее возможное значение AveragePosition
var minAveragePosition = 1;
//наибольшее возможное значение AveragePosition
var maxAveragePosition = 9;
//diapason
var diapason = 0.5;
var tempPercent = customPercent;
var down_max = customLowerAveragePosition;
var down_min = down_max - diapason;
var up_min = customUpperAveragePosition;
var up_max = up_min + diapason;
var to_up = maxAveragePosition - customUpperAveragePosition;
var labelName = "";
if(LabelNames.constructor === Array){
labelName = "LabelNames CONTAINS_ANY ['" + LabelNames.join("','") + "']";
}else{
labelName = "LabelNames = '" + LabelNames + "'";
}
Logger.log("Condition for labels: " + labelName);
var selectedKeyword = 0;
while(down_max > minAveragePosition){
Logger.log("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
tempPercent = tempPercent - stepPercent;
var keywordIterator = AdWordsApp.keywords()
.withCondition(labelName)
.withCondition("AveragePosition < " + Number(down_max) + " AND AveragePosition > " + Number(down_min - 0.01))
.withCondition("Impressions > 0")
.forDateRange("LAST_7_DAYS")
.get();
Logger.log(" AveragePosition < " + Number(down_max) + " AND AveragePosition > " + Number(down_min - 0.01));
while(keywordIterator.hasNext()){
selectedKeyword = selectedKeyword + 1;
Logger.log(" ---------------");
var keyword = keywordIterator.next();
Logger.log(" " + selectedKeyword + " ----------- keyword: " + keyword.getText());
Logger.log(" old price " + keyword.getMaxCpc());
var tempPrice = keyword.getMaxCpc() + (keyword.getMaxCpc() * tempPercent)/100;
if (tempPrice > maxPrice) {
keyword.setMaxCpc(maxPrice);
}else if (tempPrice < minPrice){
keyword.setMaxCpc(minPrice);
}else{
keyword.setMaxCpc(tempPrice);
}
Logger.log(" new price " + keyword.getMaxCpc());
Logger.log(" add percent " + tempPercent);
}
down_max = down_min - 0.01;
down_min = down_max - diapason;
}
tempPercent = customPercent;
while(up_min < maxAveragePosition){
Logger.log("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
tempPercent = tempPercent + stepPercent;
var keywordIterator = AdWordsApp.keywords()
.withCondition(labelName)
.withCondition("AveragePosition < " + Number(up_max) + " AND AveragePosition > " + Number(up_min-0.01))
.withCondition("Impressions > 0")
.forDateRange("LAST_7_DAYS")
.get();
Logger.log(" AveragePosition < " + Number(up_max) + " AND AveragePosition > " + Number(up_min-0.01));
while (keywordIterator.hasNext()){
selectedKeyword = selectedKeyword + 1;
Logger.log(" ---------------");
var keyword = keywordIterator.next();
Logger.log(" " + selectedKeyword + " ------------------keyword " + keyword.getText());
Logger.log(" old price " + keyword.getMaxCpc());
var tempPrice = keyword.getMaxCpc() + (keyword.getMaxCpc() * tempPercent)/100;
if (tempPrice > maxPrice) {
keyword.setMaxCpc(maxPrice);
}else if (tempPrice < minPrice){
keyword.setMaxCpc(minPrice);
}else{
keyword.setMaxCpc(tempPrice);
}
Logger.log(" new price " + keyword.getMaxCpc());
Logger.log(" add percent " + tempPercent);
}
up_min = up_max;
up_max = up_max + diapason;
}
}