Post on 16-Apr-2017
Maria Eckerwall, TopVisibleSearch Heroes #searchheroes
16-11-16
Hi, Welcome to Google AdWords. What can I
do for you?
Förändringar och hur hanterar vi dem?
The only thing constant is change
1) Var realistisk2) Få perspektiv/ se helheten3) Acceptera att man inte alltid kan eller behöver ha full koll4) Se båda sidor av myntet
Håll siktet på målet
“Målet är ingenting, vägen är allt”Robert Broberg
Basic - Inställningar
1. Håll dig borta från den andra sidan
2. Fortsätt rotera
vs
90 % vs 10%50 % vs 50%
vs
100 kr vs 1000 kr5000 kr vs 500 kr
vs
50 % vs 50%
Lite mer avancerat
3. Undvik onödigt tjat
Äger redan Takbox
“Konverterade besökare”
Äger redan Takbox
RLSA
Remarketing List for Search Ads: Sänk buden för Konverterade besökare
Saknar takbox
RLSA
Saknar takbox och har besökt Thulestakbox-sida!
RLSA
4. Ooops - något är trasigt
404
/****************************
* Find Broken Urls In Your Account
* Version 1.2
* ChangeLog v1.2
* - Updated to only see Text Ads
* - Updated to only look for sitelinks
* Created By: Russ Savage
* Improved by: Linus Larsson
* FreeAdWordsScripts.com
****************************/
function main() {
// You can add more if you want: http://goo.gl/VhIX
var BAD_CODES = [301,302,404,500];
var TO = ['maria.eckerwall@topvisible.se','dennis.rextoff@topvisible.se'];
var SUBJECT = 'Broken Url Report - ' + _getDateString();
var HTTP_OPTIONS = {
muteHttpExceptions:true
};
//Let's look at ads and keywords for urls
var iters = [
//For Ad Level Urls
AdWordsApp.ads()
.withCondition("Status = 'ENABLED'")
.withCondition("AdGroupStatus = 'ENABLED'")
.withCondition("CampaignStatus = 'ENABLED'")
.withCondition("Type = 'TEXT_AD'")
.get(),
//For Keyword Level Urls
AdWordsApp.keywords()
.withCondition("Status = 'ENABLED'")
.withCondition("DestinationUrl != ''")
.withCondition("AdGroupStatus = 'ENABLED'")
.withCondition("CampaignStatus = 'ENABLED'")
.get()
];
var already_checked = {};
var bad_entities = [];
for(var x in iters) {
var iter = iters[x];
while(iter.hasNext()) {
var entity = iter.next();
//Edited strings
if(entity.urls().getFinalUrl() == null) { continue; }
var url = entity.urls().getFinalUrl();
//Logging for test
Logger.log('Sitelink final URL: ' + entity.urls().getFinalUrl());
// Original strings
//if(entity.SitelinkUrls.getFinalUrl() == null) { continue; }
//var url = entity.getDestinationUrl();
if(url.indexOf('{') >= 0) {
//Let's remove the value track parameters
url = url.replace(/\{[0-9a-zA-Z]+\}/g,'');
}
if(already_checked[url]) { continue; }
var response_code;
try {
Logger.log("Testing url: "+url);
response_code = UrlFetchApp.fetch(url,
HTTP_OPTIONS).getResponseCode();
} catch(e) {
//Something is wrong here, we should know about it.
bad_entities.push({e : entity, code : -1});
}
for(var i in TO) {
MailApp.sendEmail(TO[i], SUBJECT, email_body, options);
}
}
}
//Formats a row of results separated by SEP
function _formatResults(entity,SEP) {
var e = entity.e;
if(typeof(e['getHeadline']) != "undefined") {
//this is an ad entity
return ["Ad",
e.getCampaign().getName(),
e.getAdGroup().getName(),
e.getId(),
e.getHeadline(),
entity.code,
e.urls().getFinalUrl()
].join(SEP)+"\n";
} else {
// and this is a keyword
return ["Keyword",
e.getCampaign().getName(),
e.getAdGroup().getName(),
e.getId(),
e.getText(),
entity.code,
e.urls().getFinalUrl()
].join(SEP)+"\n";
}
}
//Helper function to format todays date
function _getDateString() {
return Utilities.formatDate((new Date()),
AdWordsApp.currentAccount().getTimeZone(), "yyyy-MM-dd");
}
/****************************
* Find Broken Urls In Your Account
* Version 1.2
* ChangeLog v1.2
* - Updated to only see Text Ads
* - Updated to only look for sitelinks
* Created By: Russ Savage
* Improved by: Linus Larsson
* FreeAdWordsScripts.com
****************************/
function main() {
// You can add more if you want: http://goo.gl/VhIX
var BAD_CODES = [301,302,404,500];
var TO = ['maria.eckerwall@topvisible.se','dennis.rextoff@topvisible.se'];
var SUBJECT = 'Broken Url Report - ' + _getDateString();
var HTTP_OPTIONS = {
muteHttpExceptions:true
};
//Let's look at ads and keywords for urls
var iters = [
//For Ad Level Urls
AdWordsApp.ads()
.withCondition("Status = 'ENABLED'")
.withCondition("AdGroupStatus = 'ENABLED'")
.withCondition("CampaignStatus = 'ENABLED'")
.withCondition("Type = 'TEXT_AD'")
.get(),
//For Keyword Level Urls
AdWordsApp.keywords()
.withCondition("Status = 'ENABLED'")
.withCondition("DestinationUrl != ''")
.withCondition("AdGroupStatus = 'ENABLED'")
.withCondition("CampaignStatus = 'ENABLED'")
.get()
];
var already_checked = {};
var bad_entities = [];
for(var x in iters) {
var iter = iters[x];
while(iter.hasNext()) {
var entity = iter.next();
//Edited strings
if(entity.urls().getFinalUrl() == null) { continue; }
var url = entity.urls().getFinalUrl();
//Logging for test
Logger.log('Sitelink final URL: ' + entity.urls().getFinalUrl());
// Original strings
//if(entity.SitelinkUrls.getFinalUrl() == null) { continue; }
//var url = entity.getDestinationUrl();
if(url.indexOf('{') >= 0) {
//Let's remove the value track parameters
url = url.replace(/\{[0-9a-zA-Z]+\}/g,'');
}
if(already_checked[url]) { continue; }
var response_code;
try {
Logger.log("Testing url: "+url);
response_code = UrlFetchApp.fetch(url,
HTTP_OPTIONS).getResponseCode();
} catch(e) {
//Something is wrong here, we should know about it.
bad_entities.push({e : entity, code : -1});
}
for(var i in TO) {
MailApp.sendEmail(TO[i], SUBJECT, email_body, options);
}
}
}
//Formats a row of results separated by SEP
function _formatResults(entity,SEP) {
var e = entity.e;
if(typeof(e['getHeadline']) != "undefined") {
//this is an ad entity
return ["Ad",
e.getCampaign().getName(),
e.getAdGroup().getName(),
e.getId(),
e.getHeadline(),
entity.code,
e.urls().getFinalUrl()
].join(SEP)+"\n";
} else {
// and this is a keyword
return ["Keyword",
e.getCampaign().getName(),
e.getAdGroup().getName(),
e.getId(),
e.getText(),
entity.code,
e.urls().getFinalUrl()
].join(SEP)+"\n";
}
}
//Helper function to format todays date
function _getDateString() {
return Utilities.formatDate((new Date()),
AdWordsApp.currentAccount().getTimeZone(), "yyyy-MM-dd");
}
[301,302,404,500]
“You’ve got mail”
5. Men min budget är ju inte slut
6. Jag vill göra som på Facebook
Sälja takboxar till kvinnor 30-40
7. Kom ihåg era fantastiska hjärnor
1) Utgå från era resultat - Du vet bäst vad som funkar för er2) Tänk igenom era annonstexter3) Optimera sökord och arbeta aktivt med negativa4) Arbeta med tillägg5) Utvärdera efter lifetime-value
Tack!
Maria Eckerwallmaria.eckerwall@topvisible.se
@topvisible @meckerwall
#searchheroes