GOOGLE_SHEETS Telegram 1460
Загружаем расходы в Таблицу по рекламе ВБ, API

Друзья, привет! Мы подготовили для вас Таблицу со скриптом, с помощью нее вы сможете загружать расходы по рекламным кампаниям из API ваших любимых диких ягод.

Копируйте Таблицу, вставляйте даты на первый лист (максимальный диапазон для загрузки - 31 день), вставляйте API-токен и запускайте скрипт из меню.

Из интересного, если захотите разобраться в коде - скрипт не будет задваивать строки, если они уже были загружены на лист и вернуться из ответа API, скрипт проверяет уникальность по ключу дата и время операции + номер кампании.

Также мы расшифровываем статус кампании и тип кампании.

Описание метода API: https://openapi.wildberries.ru/promotion/api/ru/#tag/Finansy/paths/~1adv~1v1~1upd/get

Таблица с кодом

Код отдельно:

function onOpen() {
SpreadsheetApp.getUi().createMenu("🔥")
.addItem('загрузить расходы за диапазон дат', 'google_sheets')
.addToUi();
};

function google_sheets() {
try {
url_api = 'https://advert-api.wb.ru/';
tz = Session.getScriptTimeZone();
name = 'Расходы';

ss = SpreadsheetApp.getActive();
sh = ss.getSheetByName(name);
d = sh.getDataRange().getValues();

[start, end, token] = ss.getRange("!!b1:b3").getValues().flat()
.map((f, i) => i < 2 ? d2s(f) : f);

o = [];
url = `${url_api}adv/v1/upd?from=${start}&to=${end}`

r = request(url, 'get', token);

r = r
.map(k => {
var [advertType, updTime, paymentType, advertStatus, updSum, advertId, campName] =
[advert_type[k.advertType] || k.advertType, new Date(k.updTime), k.paymentType, obj_status[k.advertStatus], k.updSum, k.advertId, k.campName];

updTime = d2s(updTime, 'yyyy-MM-dd HH:mm:ss', tz);
key = updTime + '|' + advertId;
if (!o.includes(key)) o.push(key);

return [advertType, updTime, paymentType, advertStatus, updSum, advertId, campName];
});

if (r.length) {

d = d.slice(1).filter(g => {
date = d2s(g[1], 'yyyy-MM-dd HH:mm:ss', tz);
key = date + '|' + g[5];
return !o.includes(key);
});

console.log('стало: ' + d.length);
r = [...d, ...r];

console.log('суммарно вставляем: ' + r.length);
sh.getRange("A2:M").clearContent();
sh.getRange(2, 1, r.length, r[0].length).setValues(r);
};
} catch (err) {
Browser.msgBox(err.message);
}
};

obj_status = {
4: 'готова к запуску',
7: 'завершена',
8: 'отказался',
9: 'активна',
11: 'приостановлена'
};

advert_type = {
9: 'поиск',
8: 'автокомпания'
};

function d2s(date, format = 'yyyy-MM-dd', tz = Session.getScriptTimeZone()) {
return Utilities.formatDate(date, tz, format);
};

function request(url, method, token, data) {
params = {
method: method,
muteHttpExceptions: true,
contentType: 'application/json;',
payload: JSON.stringify(data),
'headers': {
Authorization: token
}
};

r = UrlFetchApp.fetch(url, params);
r = JSON.parse(r)
return r;
};


PS Токен ВБ нужен "продвижение", получить можно в личном кабинете продавца ВБ (как)



tgoop.com/google_sheets/1460
Create:
Last Update:

Загружаем расходы в Таблицу по рекламе ВБ, API

Друзья, привет! Мы подготовили для вас Таблицу со скриптом, с помощью нее вы сможете загружать расходы по рекламным кампаниям из API ваших любимых диких ягод.

Копируйте Таблицу, вставляйте даты на первый лист (максимальный диапазон для загрузки - 31 день), вставляйте API-токен и запускайте скрипт из меню.

Из интересного, если захотите разобраться в коде - скрипт не будет задваивать строки, если они уже были загружены на лист и вернуться из ответа API, скрипт проверяет уникальность по ключу дата и время операции + номер кампании.

Также мы расшифровываем статус кампании и тип кампании.

Описание метода API: https://openapi.wildberries.ru/promotion/api/ru/#tag/Finansy/paths/~1adv~1v1~1upd/get

Таблица с кодом

Код отдельно:


function onOpen() {
SpreadsheetApp.getUi().createMenu("🔥")
.addItem('загрузить расходы за диапазон дат', 'google_sheets')
.addToUi();
};

function google_sheets() {
try {
url_api = 'https://advert-api.wb.ru/';
tz = Session.getScriptTimeZone();
name = 'Расходы';

ss = SpreadsheetApp.getActive();
sh = ss.getSheetByName(name);
d = sh.getDataRange().getValues();

[start, end, token] = ss.getRange("!!b1:b3").getValues().flat()
.map((f, i) => i < 2 ? d2s(f) : f);

o = [];
url = `${url_api}adv/v1/upd?from=${start}&to=${end}`

r = request(url, 'get', token);

r = r
.map(k => {
var [advertType, updTime, paymentType, advertStatus, updSum, advertId, campName] =
[advert_type[k.advertType] || k.advertType, new Date(k.updTime), k.paymentType, obj_status[k.advertStatus], k.updSum, k.advertId, k.campName];

updTime = d2s(updTime, 'yyyy-MM-dd HH:mm:ss', tz);
key = updTime + '|' + advertId;
if (!o.includes(key)) o.push(key);

return [advertType, updTime, paymentType, advertStatus, updSum, advertId, campName];
});

if (r.length) {

d = d.slice(1).filter(g => {
date = d2s(g[1], 'yyyy-MM-dd HH:mm:ss', tz);
key = date + '|' + g[5];
return !o.includes(key);
});

console.log('стало: ' + d.length);
r = [...d, ...r];

console.log('суммарно вставляем: ' + r.length);
sh.getRange("A2:M").clearContent();
sh.getRange(2, 1, r.length, r[0].length).setValues(r);
};
} catch (err) {
Browser.msgBox(err.message);
}
};

obj_status = {
4: 'готова к запуску',
7: 'завершена',
8: 'отказался',
9: 'активна',
11: 'приостановлена'
};

advert_type = {
9: 'поиск',
8: 'автокомпания'
};

function d2s(date, format = 'yyyy-MM-dd', tz = Session.getScriptTimeZone()) {
return Utilities.formatDate(date, tz, format);
};

function request(url, method, token, data) {
params = {
method: method,
muteHttpExceptions: true,
contentType: 'application/json;',
payload: JSON.stringify(data),
'headers': {
Authorization: token
}
};

r = UrlFetchApp.fetch(url, params);
r = JSON.parse(r)
return r;
};


PS Токен ВБ нужен "продвижение", получить можно в личном кабинете продавца ВБ (как)

BY Google Таблицы




Share with your friend now:
tgoop.com/google_sheets/1460

View MORE
Open in Telegram


Telegram News

Date: |

During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month. During a meeting with the president of the Supreme Electoral Court (TSE) on June 6, Telegram's Vice President Ilya Perekopsky announced the initiatives. According to the executive, Brazil is the first country in the world where Telegram is introducing the features, which could be expanded to other countries facing threats to democracy through the dissemination of false content. 6How to manage your Telegram channel? Don’t publish new content at nighttime. Since not all users disable notifications for the night, you risk inadvertently disturbing them. Click “Save” ;
from us


Telegram Google Таблицы
FROM American