In het artikel Verbeter SEA Werkzaamheden met 10 Handige Adwords Scripts kun je lezen wat AdWords scripts zijn en hoe je deze kunt gebruiken. Met onderstaand script kun je direct zelf aan de slag! Dit script kijkt naar alle gebruikte zoektermen die een conversie hebben opgeleverd en controleert of deze ook als exact zoekwoord zijn opgenomen in je account. Hierdoor kun je veel nuttige informatie halen om je account te optimaliseren zoals: goedkope longtail termen, gemiste misspellingen, onnodig gepauzeerde zoekwoorden en gewoon gemiste zoekwoorden.

Alle gevonden zoektermen die niet in het account staan worden automatisch in een google spreadsheet geplaatst. De URL van het spreadsheet wordt per email verstuurd en staat ook in het logbestand.

Heel veel succes!

De code

Deze code lijkt misschien technisch en ingewikkeld, maar je kunt hem gewoon kopiëren en plakken. Kijk hier hoe je een script in AdWords kunt plaatsen.

function main() {

	var email_list = 'my-email@example.nl, myfriends-email@example.nl' ;

	var Days_Back_Start = 365; // Aantal Dagen Terug in de tijd Begin
	var Days_Back_End = 1; // Aantal Dagen Terug in de tijd Eind

	var Start_Date = getDateInThePast(Days_Back_Start);
	var End_Date = getDateInThePast(Days_Back_End);
	var Account = AdWordsApp.currentAccount().getName();

	var report = AdWordsApp.report(
		"SELECT Query, Conversions, Clicks, Impressions, CampaignName, AdGroupName " +
		" FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
		" WHERE Conversions > 0 " +
//	" DURING  " + Start_Date + "," + End_Date);
		" DURING  LAST_30_DAYS");

	var reportName = "Rapport Conversies Niet in Account voor: " + Account;
	var spreadsheet = SpreadsheetApp.create(reportName);
	var sheet = spreadsheet.getActiveSheet();

	sheet.getRange("A1").setValue(End_Date);
	sheet.getRange("B1").setValue("Query ");
	sheet.getRange("C1").setValue("Conversions ");
	sheet.getRange("D1").setValue("Clicks ");
	sheet.getRange("E1").setValue("Impressions ");
	sheet.getRange("F1").setValue("Campaign ");
	sheet.getRange("G1").setValue("Adgroup ");

	var rownumber = 2;
	var keywords = AdWordsApp.keywords()
	.withCondition("KeywordMatchType = EXACT")
	.withCondition("Status = ENABLED")
	.withCondition("CampaignStatus = ENABLED")
	.withCondition("AdGroupStatus = ENABLED")
	.get();

	var map = {}
	while (keywords.hasNext()) {
		var keyword = keywords.next();
		map[keyword.getText().toLowerCase()] = keyword;
	}         

	var rows = report.rows();
	while (rows.hasNext()) {
		var row = rows.next();
		var Query = "[" + row['Query'] + "]";

		if(!(Query in map)) {
			//update spreadsheet
			sheet.getRange("B" + rownumber).setValue(row['Query']);   
			sheet.getRange("C" + rownumber).setValue(row['Conversions']);
			sheet.getRange("D" + rownumber).setValue(row['Clicks']);   
			sheet.getRange("E" + rownumber).setValue(row['Impressions']);
			sheet.getRange("F" + rownumber).setValue(row['CampaignName']);
			sheet.getRange("G" + rownumber).setValue(row['AdGroupName']);
			rownumber = rownumber + 1;
		}
	}

	MailApp.sendEmail (email_list, reportName, spreadsheet.getUrl());
	Logger.log("Rapport Conversies Niet in Account voor: '" + Account + "'");
	Logger.log("https://docs.google.com/spreadsheet/ccc?key=" + spreadsheet.getId());

}

// Returns YYYYMMDD-formatted date.

function getDateInThePast(numDays) {
	var today = new Date();
	today.setDate(today.getDate() - numDays);
	return Utilities.formatDate(today, "PST", "yyyyMMdd");
}

Wijzigingen zelf aan te brengen

Bovenstaande code kan al gewoon geplaatst en gebruikt worden zonder extra handelingen. Wil je iets wijzigen in het script?  Zo kun je dat doen!

Verstuur URL automatisch per e-mail

Om de URL met data naar jezelf of anderen te mailen gebruik je bovenaan in het script “email_list”. Vul tussen de enkele quotes de e-mailadressen in, gescheiden door een komma.

Date Range aanpassen

Standaard kijkt dit script nu naar alle converterende zoektermen van de voorgaande 30 dagen. Dit kan uiteraard aangepast worden. Bijvoorbeeld als je van plan bent het script elke maand te laten draaien en je eerst eenmalig de historische data in een spreadsheet wil zetten.

Hiervoor zijn twee handelingen nodig. Stel, we willen de data van een jaar terug tot nu bekijken.

Stap 1.

In regel 5 en 6 staan 2 variabelen voor het aantal dagen; Days_Back_Start wordt dus 365 en Days_Back_End wordt 1 (gisteren).

Stap 2.

Haal vervolgens de // weg bij regel 16 en zet deze aan het begin van regel 17. Ter controle; regel 16 wordt hiermee roodgekleurd en regel 17 wordt oranje. Rood betekent actief, oranje wordt genegeerd. Regel 16 en 17 zijn de regels die beginnen met  “DURING …

Klaar!

Om het script weer terug te zetten om de standaard laatste 30 dagen te bekijken haal je // bij regel 17 weer weg en zet je ze terug aan het begin van regel 16. Regel 5 en 6 hoeven niet aangepast te worden.

Mocht u vragen hebben naar aanleiding van bovenstaande uitleg, neem dan contact met ons op.