Ontdek alle mogelijkheden met ApplePY. Bekijk alle features

Prioriteer online marketing met slimme oplossingen

De nummer #1 voor slimmer online marketing

Zien is geloven! Test de kracht van ApplePY in jouw gratis proefperiode.

Paid Organic rapportage

Paid Organic rapportage

Paid Organic rapportage

Met de nieuwe Paid en Organic rapportage van ApplePY kunnen gebruikers hun zoekwoorden analyseren en optimaliseren, doordat zowel betaalde als organische zoekopdrachten naast elkaar in hetzelfde rapport worden weergegeven.

Het rapport stelt de gebruiker ook in staat om de effectiviteit van zijn advertenties te bekijken waar de gebruiker combineert met een betaalde advertentie en een organische vermelding op dezelfde webpagina.

 

paid organic rapportage


Het rapport is een combinatie van twee type scripts, namelijk 1) Google Ads script en 2) Google App script. De Google Ads script haalt de data op van alle zoekwoorden waarop wordt geboden. De impressies, clicks, conversies en spend. 

De Google App script heeft een koppeling met de Google Search Console API en kan de organische impressies, clicks en posities ophalen. Binnen 15 minuten heb je dit rapportage geautomatiseerd, omdat het mogelijk is om beide scripts elke maand te laten runnen. En zo kun je dit dashboard ook in Looker Studio plaatsen door de spreadsheet te koppelen als bron in Looker Studio.

// const url = "https://www.domein.nl/"
const url = "sc-domain:domein.nl"
const days = 30
const start = 3
const timezone = "GMT+1"
const tab_name= "Data"
GSC_APIKEY = 'AIzaSyBHWjcEZTBqGaNCj-hF13JpGUChHjXXXXX'


function getpropertiesforuser() {
 const oauthToken = ScriptApp.getOAuthToken();
 const url = 'https://searchconsole.googleapis.com/webmasters/v3/sites?key=' + GSC_APIKEY


 const headers = {
   'Authorization': 'Bearer ' + oauthToken,
   'Content-Type': 'application/json'
 }
 const options = {
   headers: headers,
   method: 'GET',
 }
 const response = UrlFetchApp.fetch(url, options).getContentText()
 const json = JSON.parse(response)


 for(i = 0; i < json.siteEntry.length; i++){
     Logger.log(json.siteEntry[i]['siteUrl'])
 }
}




function getConsoleInfo() {
const endDate = Utilities.formatDate(new Date(Date.now() - start*86400000), timezone, "yyyy-MM-dd")
const startDate = Utilities.formatDate(new Date(Date.now() - (days+start-1)*86400000), timezone, "yyyy-MM-dd")
Logger.log(startDate)
Logger.log(endDate)
const url_query = `https://www.googleapis.com/webmasters/v3/sites/${encodeURIComponent(url)}/searchAnalytics/query`
const token = ScriptApp.getOAuthToken();
Logger.log(token)
const headers = { Authorization: 'Bearer ' + token };
const payload = {
endDate,
startDate,
"dimensions": ["query"]
};
const options = {
"headers": headers,
"method": "POST",
"muteHttpExceptions": true,
"contentType": "application/json",
"payload": JSON.stringify(payload),
};




const response = UrlFetchApp.fetch(url_query, options);
Logger.log(response)
const result = JSON.parse(response.getContentText());
Logger.log(result.rows)
const map = new Map()
result.rows.map(i=>map.set(i.keys[0],[i.clicks,i.impressions, (parseFloat(i.position)).toFixed(2)]))
Logger.log([...map.entries()])
const sh=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(tab_name)
const arr=sh.getDataRange().getValues().map((v,i)=>({index:i+1,kw:clean(v[1].toString())}))
arr.shift()
for (let row of arr){
  if (map.has(row.kw)){
   sh.getRange(row.index,9,1,3).setValues([map.get(row.kw)])
   continue
  }
  sh.getRange(row.index,9,1,3).setValues([[0,0,0]])
}
Logger.log(arr)
}




const clean = (str) => str.replace(/\[|\]|\"/g, "");
Nieuwste adviezen

Gerelateerde artikelen