Quero saber se meu script está correto. Quero que o investimento de todas as campanhas seja reduzido no sábado às 00:05 e retorne ao valor original na segunda feira às 00:05
function main() {
var spreadsheetUrl = "
https://docs.google.com/spreadsheets/d/1Vf1rzu6gQ8RZy0suEaXylFCCP5t6uXuJzATAGZIPfBg/edit?usp=sharing";
var sheetName = "Orcamentos";
var ss = SpreadsheetApp.openByUrl(spreadsheetUrl);
var sheet = ss.getSheetByName(sheetName);
var campaigns = AdsApp.campaigns()
.withCondition("Status = ENABLED")
.get();
var hoje = new Date();
var diaSemana = hoje.getDay(); // 0=domingo, 1=segunda, ..., 6=sábado
while (campaigns.hasNext()) {
var campanha = campaigns.next();
var nome = campanha.getName();
var linha = procurarLinha(sheet, nome);
if (!linha) {
// Se a campanha não existir na planilha, cria
linha = sheet.appendRow([nome, campanha.getBudget().getAmount(), ""]);
continue;
}
var valorOriginal = sheet.getRange(linha, 2).getValue();
var orcamentoAtual = campanha.getBudget().getAmount();
if (diaSemana == 6) { // sábado 00:05 → reduzir em 40%
var novoValor = valorOriginal * 0.6;
campanha.getBudget().setAmount(novoValor);
Logger.log("Campanha " + nome + " reduzida para " + novoValor);
}
if (diaSemana == 1) { // segunda 00:05 → restaurar e atualizar o valor base
campanha.getBudget().setAmount(valorOriginal);
sheet.getRange(linha, 2).setValue(valorOriginal); // garante base
Logger.log("Campanha " + nome + " restaurada para " + valorOriginal);
}
if (diaSemana >= 2 && diaSemana <= 5) {
// terça a sexta → atualizar valor base se foi alterado manualmente
if (orcamentoAtual != valorOriginal) {
sheet.getRange(linha, 2).setValue(orcamentoAtual);
Logger.log("Valor base atualizado para campanha " + nome + ": " + orcamentoAtual);
}
}
}
}
function procurarLinha(sheet, nomeCampanha) {
var data = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues();
for (var i = 0; i < data.length; i++) {
if (data[i][0] == nomeCampanha) {
return i + 1;
}
}
return null;
}