function main() {
// URL do Google Sheet
var sheetUrl = '
https://docs.google.com/spreadsheets/d/1Czq4pDbs-hX8Y6fAyQBNd-Zd8laaqy6GszCE812tEEU/edit?gid=0#gid=0';
// Pobierz nazwę arkusza z linku - zazwyczaj 'Sheet1' lub zmień na odpowiednią
var sheetName = 'Sheet1';
// Pobierz nazwy kampanii i docelowy ROAS z Google Sheets
var campaignData = getCampaignDataFromSheet(sheetUrl, sheetName);
// Iteruj przez każdą nazwę kampanii i ustaw odpowiedni Target ROAS
for (var i = 0; i < campaignData.length; i++) {
var campaignName = campaignData[i].name;
var targetRoas = campaignData[i].roas;
Logger.log('Processing campaign: ' + campaignName + ' with Target ROAS: ' + targetRoas);
setTargetRoasForCampaign(campaignName, targetRoas);
}
}
// Funkcja pobierająca nazwy kampanii i docelowy ROAS z arkusza Google Sheets
function getCampaignDataFromSheet(sheetUrl, sheetName) {
// Otwórz arkusz Google Sheets
var spreadsheet = SpreadsheetApp.openByUrl(sheetUrl);
var sheet = spreadsheet.getSheetByName(sheetName);
// Pobierz zakres danych z kolumn A (nazwa kampanii) i B (docelowy ROAS)
var range = sheet.getRange('A2:B' + sheet.getLastRow());
var values = range.getValues();
// Wyciągnij nazwy kampanii i docelowy ROAS z wartości
var campaignData = [];
for (var i = 0; i < values.length; i++) {
if (values[i][0]) { // Sprawdź, czy komórka z nazwą kampanii nie jest pusta
var campaignName = values[i][0];
var targetRoas = parseFloat(values[i][1]) || 0; // Pobierz ROAS, jeśli istnieje, w przeciwnym razie ustaw 0
campaignData.push({name: campaignName, roas: targetRoas});
}
}
return campaignData;
}
// Funkcja ustawiająca Target ROAS dla kampanii
function setTargetRoasForCampaign(campaignName, targetRoas) {
var campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition("Name = '" + campaignName + "'")
.get();
// Sprawdź, czy znaleziono kampanię i ustaw ROAS
if (campaignIterator.totalNumEntities() == 0) {
Logger.log('No campaign found with the name: ' + campaignName);
} else {
while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
campaign.bidding().setTargetRoas(targetRoas);
Logger.log('Set Target ROAS to ' + targetRoas + ' for campaign: ' + campaignName);
}
}
}