Pausar automatiskt sökord med Quality Score under ett tröskelvärde. Sparar budget genom att stänga av underpresterare.
/**
* Auto-Pause Low Quality Score Keywords
* Pausar sökord med QS under tröskelvärdet.
*
* Konfigurera:
* - MIN_QS: Lägsta acceptabla Quality Score (default 4)
* - MIN_IMPRESSIONS: Minsta antal visningar innan evaluering
* - DRY_RUN: true = loggar bara, false = pausar på riktigt
*/
var MIN_QS = 4;
var MIN_IMPRESSIONS = 100;
var DRY_RUN = true; // Sätt till false för att pausa på riktigt
var EMAIL = "din@email.se";
function main() {
var paused = [];
var keywords = AdsApp.keywords()
.withCondition("Status = ENABLED")
.withCondition("CampaignStatus = ENABLED")
.withCondition("QualityScore < " + MIN_QS)
.forDateRange("LAST_30_DAYS")
.withCondition("Impressions > " + MIN_IMPRESSIONS)
.get();
while (keywords.hasNext()) {
var kw = keywords.next();
var qs = kw.getQualityScore();
var stats = kw.getStatsFor("LAST_30_DAYS");
paused.push({
keyword: kw.getText(),
campaign: kw.getCampaign().getName(),
adGroup: kw.getAdGroup().getName(),
qs: qs,
clicks: stats.getClicks(),
cost: stats.getCost(),
conversions: stats.getConversions()
});
if (!DRY_RUN) {
kw.pause();
}
}
if (paused.length > 0) {
var action = DRY_RUN ? "SKULLE PAUSAS (dry run)" : "PAUSADE";
var body = action + " " + paused.length + " sökord:\n\n";
paused.forEach(function(p) {
body += p.keyword + " (QS: " + p.qs + ", Kostnad: " + p.cost + " SEK)\n";
body += " Kampanj: " + p.campaign + " → " + p.adGroup + "\n\n";
});
MailApp.sendEmail(EMAIL, "🔄 QS Auto-Pause: " + paused.length + " sökord", body);
}
Logger.log((DRY_RUN ? "[DRY RUN] " : "") + "Processade " + paused.length + " sökord");
}Se loggen, ändringarna och vad utfallet betyder — innan du klistrar in det i Google Ads.
/** * Auto-Pause Low Quality Score Keywords * Pausar sökord med QS under tröskelvärdet. * * Konfigurera: * - MIN_QS: Lägsta acceptabla Quality Score (default 4) * - MIN_IMPRESSIONS: Minsta antal visningar innan evaluering * - DRY_RUN: true = loggar bara, false = pausar på riktigt */ var MIN_QS = 4;var MIN_IMPRESSIONS = 100;var DRY_RUN = true; // Sätt till false för att pausa på riktigtvar EMAIL = "din@email.se"; function main() { var paused = []; var keywords = AdsApp.keywords() .withCondition("Status = ENABLED") .withCondition("CampaignStatus = ENABLED") .withCondition("QualityScore < " + MIN_QS) .forDateRange("LAST_30_DAYS") .withCondition("Impressions > " + MIN_IMPRESSIONS) .get(); while (keywords.hasNext()) { var kw = keywords.next(); var qs = kw.getQualityScore(); var stats = kw.getStatsFor("LAST_30_DAYS"); paused.push({ keyword: kw.getText(), campaign: kw.getCampaign().getName(), adGroup: kw.getAdGroup().getName(), qs: qs, clicks: stats.getClicks(), cost: stats.getCost(), conversions: stats.getConversions() }); if (!DRY_RUN) { kw.pause(); } } if (paused.length > 0) { var action = DRY_RUN ? "SKULLE PAUSAS (dry run)" : "PAUSADE"; var body = action + " " + paused.length + " sökord:\n\n"; paused.forEach(function(p) { body += p.keyword + " (QS: " + p.qs + ", Kostnad: " + p.cost + " SEK)\n"; body += " Kampanj: " + p.campaign + " → " + p.adGroup + "\n\n"; }); MailApp.sendEmail(EMAIL, "🔄 QS Auto-Pause: " + paused.length + " sökord", body); } Logger.log((DRY_RUN ? "[DRY RUN] " : "") + "Processade " + paused.length + " sökord");}Simulerad körning i ett påhittat demokonto. Skriptets riktiga kod körs i din webbläsare mot exempeldata — inget ansluts till Google Ads, inga mejl skickas och inga kalkylark skapas.
true för att bara logga vad som *skulle* pausas, utan att faktiskt göra det.DRY_RUN = true först och granska loggenDRY_RUN = false