Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/1Z2VL1nL2gYX8Blb-O2dqhucfMtNRezCvkDut-2n2mUI/edit#gid=0';
  2. var SHEET_NAME = 'sheet';
  3. var shelper = new SHelper();
  4.  
  5. var LABEL_NAME = 'parameter_updated';
  6. HTTP_OPTIONS = { muteHttpExceptions:true };
  7.  
  8. function main() {
  9. dealWithFirstRunOfTheDay();
  10. createParameterLabel();
  11.  
  12. var url = 'https://www.trendhim.se/thsystem/index/adwordscountv2';
  13. var filter_url = 'https://www.trendhim.se/thfilter/?adwordscount=true';
  14. var json = Utilities.jsonParse(UrlFetchApp.fetch(url).getContentText());
  15.  
  16. var keywords = AdWordsApp.keywords()
  17. .withCondition("Status = ENABLED")
  18. .withCondition("AdGroupStatus = ENABLED")
  19. .withCondition("CampaignStatus = ENABLED")
  20. .withCondition("LabelNames CONTAINS_NONE ['" + LABEL_NAME + "']")
  21. .get();
  22.  
  23.  
  24. Logger.log(keywords.totalNumEntities());
  25.  
  26. while (keywords.hasNext()) {
  27. var keyword = keywords.next();
  28.  
  29. var ad = keyword.getAdGroup().ads()
  30. .withLimit(1).get().next();
  31.  
  32. var finalurl = extractUrl(ad.urls().getFinalUrl());
  33.  
  34. if (!json[finalurl]) {
  35. // Check if it's a search url
  36. if(finalurl.indexOf("catalogsearch") > -1){
  37. // Do nothing
  38. }
  39. else{
  40. //Could not find the formatet URL, logging full url
  41. Logger.log('Error (could not find url): '+ad.getHeadline()+' - '+keyword.getText()+' - '+ad.urls().getFinalUrl());
  42. }
  43. } else{
  44. //Check if url contains filer
  45. if(ad.urls().getFinalUrl().indexOf("?") > -1){
  46. Logger.log(keyword.getText()+' - '+ad.urls().getFinalUrl());
  47. var ad_filter_url = filter_url+'&id='+json[finalurl]['id']+'&'+ad.urls().getFinalUrl().split('?')[1];
  48. Logger.log('Filter url: '+ad_filter_url);
  49.  
  50. var now = new Date().getTime();
  51. var response = UrlFetchApp.fetch(ad_filter_url, {muteHttpExceptions: true});
  52. var then = new Date().getTime();
  53. Utilities.sleep(then - now);
  54.  
  55. var filter_results = Utilities.jsonParse(response.getContentText());
  56.  
  57. Logger.log('Param1: '+filter_results['count']+' Param2: '+filter_results['min']);
  58.  
  59. keyword.setAdParam(1, filter_results['count']);
  60. keyword.setAdParam(2, filter_results['min']);
  61. }
  62. else{
  63. //Normal url
  64. Logger.log(keyword.getText()+' - '+ad.urls().getFinalUrl());
  65. Logger.log('Param1: '+json[finalurl]['param1']+' Param2: '+json[finalurl]['param2']);
  66.  
  67. keyword.setAdParam(1, json[finalurl]['param1']);
  68. keyword.setAdParam(2, json[finalurl]['param2']);
  69. }
  70. }
  71. keyword.applyLabel(LABEL_NAME);
  72. var amountChecked = shelper.dataSheet.getRange(2, 2).getValue();
  73. shelper.spreadsheet.getRangeByName('updated').setValue(amountChecked+1);
  74. }
  75. }
  76.  
  77. function createParameterLabel() {
  78. var labels = AdWordsApp.labels().withCondition(
  79. "Name='" + LABEL_NAME + "'").get();
  80. if (!labels.hasNext()) {
  81. AdWordsApp.createLabel(LABEL_NAME,
  82. "Managed by Parameter script, please don't modify!", '#60e020');
  83. }
  84. }
  85.  
  86. function dealWithFirstRunOfTheDay() {
  87. var date = new Date();
  88. var lastCheckDate = shelper.dataSheet.getRange(1, 2).getValue();
  89. Logger.log(lastCheckDate);
  90. if (lastCheckDate.length == 0 || date.getYear() != lastCheckDate.getYear() ||
  91. date.getMonth() != lastCheckDate.getMonth() ||
  92. date.getDay() != lastCheckDate.getDay()) {
  93. // kill the label.
  94. var labels = AdWordsApp.labels().withCondition(
  95. "Name='" + LABEL_NAME + "'").get();
  96. if (labels.hasNext()) {
  97. labels.next().remove();
  98. }
  99. //Reset
  100. shelper.spreadsheet.getRangeByName('date').setValue(date);
  101. shelper.spreadsheet.getRangeByName('updated').setValue(0);
  102. }
  103. }
  104.  
  105. function extractUrl(url) {
  106. return url.split('?')[0];
  107. }
  108.  
  109. function SHelper() {
  110. this.spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  111. this.dataSheet = this.spreadsheet.getSheetByName(SHEET_NAME);
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement