Итак, в основном я автоматизировал обновление существующих ценовых правил с помощью кукловода. Я хотел создать / настроить новые правила ценообразования, используя кукловод, так как Google Ads API его не поддерживает. Я могу создать очень простой ценовой пол, содержащий имя и один ценовой пол. Что я не могу сделать, так это фильтровать ресурсы по ad_units или местам размещения. приведенный ниже код создает минимальный уровень цены, который имеет имя и минимальный уровень цены.
await page.goto('https://admanager.google.com/entry/?networkCode='+network_code, {waitUntil: 'networkidle2'});
await page.waitForSelector('._ngcontent-HOMEPAGE-5', {timeout : 0});
await page.waitFor(10000);
await page.goto('https://admanager.google.com/XXXXXX#inventory/pricing/create', {waitUntil: 'networkidle2'});
await page.waitFor('.long-input-name input[type=text]', {timeout : 0});
await page.focus('.long-input-name input[type=text]');
await page.$eval('.long-input-name input[type=text]', (el, _name) => el.value = _name, name);
await page.keyboard.press('Space');
await page.waitFor(5000);
await page.focus('cpm-threshold-editor material-input input[type=money64]');
await page.$eval('cpm-threshold-editor material-input input[type=money64]', (el, _floor1) => el.value = _floor1, floor1);
if(await page.waitFor('cpm-threshold-editor', {timeout : 0})){
await page.focus('material-input input[type=money64]');
await page.$eval('material-input input[type=money64]', (el, _price1) => el.value = _price1, price1);
await page.waitFor(1000);
await page.keyboard.press('Space');
await page.waitFor(1000);
await page.click('.cpm-input');
console.log('Set the first price floor');
};
try{
await page.waitForSelector(".btn-yes:not([disabled])" , {timeout : 10000});
await page.click('.btn-yes');
}catch(err){
console.log('No changes in ');
await page.click('.btn-no');
}