Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/1Z2VL1nL2gYX8Blb-O2dqhucfMtNRezCvkDut-2n2mUI/edit#gid=0';
- var SHEET_NAME = 'sheet';
- var shelper = new SHelper();
- var LABEL_NAME = 'parameter_updated';
- HTTP_OPTIONS = { muteHttpExceptions:true };
- function main() {
- dealWithFirstRunOfTheDay();
- createParameterLabel();
- var url = 'https://www.trendhim.se/thsystem/index/adwordscountv2';
- var filter_url = 'https://www.trendhim.se/thfilter/?adwordscount=true';
- var json = Utilities.jsonParse(UrlFetchApp.fetch(url).getContentText());
- var keywords = AdWordsApp.keywords()
- .withCondition("Status = ENABLED")
- .withCondition("AdGroupStatus = ENABLED")
- .withCondition("CampaignStatus = ENABLED")
- .withCondition("LabelNames CONTAINS_NONE ['" + LABEL_NAME + "']")
- .get();
- Logger.log(keywords.totalNumEntities());
- while (keywords.hasNext()) {
- var keyword = keywords.next();
- var ad = keyword.getAdGroup().ads()
- .withLimit(1).get().next();
- var finalurl = extractUrl(ad.urls().getFinalUrl());
- if (!json[finalurl]) {
- // Check if it's a search url
- if(finalurl.indexOf("catalogsearch") > -1){
- // Do nothing
- }
- else{
- //Could not find the formatet URL, logging full url
- Logger.log('Error (could not find url): '+ad.getHeadline()+' - '+keyword.getText()+' - '+ad.urls().getFinalUrl());
- }
- } else{
- //Check if url contains filer
- if(ad.urls().getFinalUrl().indexOf("?") > -1){
- Logger.log(keyword.getText()+' - '+ad.urls().getFinalUrl());
- var ad_filter_url = filter_url+'&id='+json[finalurl]['id']+'&'+ad.urls().getFinalUrl().split('?')[1];
- Logger.log('Filter url: '+ad_filter_url);
- var now = new Date().getTime();
- var response = UrlFetchApp.fetch(ad_filter_url, {muteHttpExceptions: true});
- var then = new Date().getTime();
- Utilities.sleep(then - now);
- var filter_results = Utilities.jsonParse(response.getContentText());
- Logger.log('Param1: '+filter_results['count']+' Param2: '+filter_results['min']);
- keyword.setAdParam(1, filter_results['count']);
- keyword.setAdParam(2, filter_results['min']);
- }
- else{
- //Normal url
- Logger.log(keyword.getText()+' - '+ad.urls().getFinalUrl());
- Logger.log('Param1: '+json[finalurl]['param1']+' Param2: '+json[finalurl]['param2']);
- keyword.setAdParam(1, json[finalurl]['param1']);
- keyword.setAdParam(2, json[finalurl]['param2']);
- }
- }
- keyword.applyLabel(LABEL_NAME);
- var amountChecked = shelper.dataSheet.getRange(2, 2).getValue();
- shelper.spreadsheet.getRangeByName('updated').setValue(amountChecked+1);
- }
- }
- function createParameterLabel() {
- var labels = AdWordsApp.labels().withCondition(
- "Name='" + LABEL_NAME + "'").get();
- if (!labels.hasNext()) {
- AdWordsApp.createLabel(LABEL_NAME,
- "Managed by Parameter script, please don't modify!", '#60e020');
- }
- }
- function dealWithFirstRunOfTheDay() {
- var date = new Date();
- var lastCheckDate = shelper.dataSheet.getRange(1, 2).getValue();
- Logger.log(lastCheckDate);
- if (lastCheckDate.length == 0 || date.getYear() != lastCheckDate.getYear() ||
- date.getMonth() != lastCheckDate.getMonth() ||
- date.getDay() != lastCheckDate.getDay()) {
- // kill the label.
- var labels = AdWordsApp.labels().withCondition(
- "Name='" + LABEL_NAME + "'").get();
- if (labels.hasNext()) {
- labels.next().remove();
- }
- //Reset
- shelper.spreadsheet.getRangeByName('date').setValue(date);
- shelper.spreadsheet.getRangeByName('updated').setValue(0);
- }
- }
- function extractUrl(url) {
- return url.split('?')[0];
- }
- function SHelper() {
- this.spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
- this.dataSheet = this.spreadsheet.getSheetByName(SHEET_NAME);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement