GoogleDocs + Google рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реЗрдм рд╕реЗрд╡рд╛ рдореАрдЯреНрд░рд┐рдХ

рдореЗрд░рд╛ рдирд╛рдо рдЪрд┐рдВрдЧреНрдЧреАрд╕ рд╣реИ, рдореИрдВ рд╡рд░реНрдХрдиреЗ рдбреЙрдЯ рдХреЙрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рд╡рд╛рд▓реА рдЯреАрдо рдХреЗ рд▓рд┐рдП рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рд╕реЗрд╡рд╛ рдХрд╛ рд╕рд╣-рд╕рдВрд╕реНрдерд╛рдкрдХ рд╣реВрдВ

рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдореЗрдВ, рд╣рдо рдХрдИ рдирд┐рдпрдВрддреНрд░рдг рдореАрдЯреНрд░рд┐рдХ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдЬрд╝рд┐рдЯ, рдкрдВрдЬреАрдХрд░рдг, рд░реВрдкрд╛рдВрддрд░рдг, рд╕рдХреНрд░рд┐рдпрдг, рдЕрд╡рдзрд╛рд░рдг, рдмрд╣рд┐рд░реНрд╡рд╛рд╣, рдЖрджрд┐ред рд╣рдо Google рдбреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдкрд┐рд╡рдЯ рдЯреЗрдмрд▓ рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдореАрдЯреНрд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ - Google Analytics рдФрд░ рд╕реНрд╡рдпрдВ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд╛рдлреА рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ред



рд╕рдореЗрдХрд┐рдд рдПрдХреНрд╕реЗрд▓ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдореИрдереНрдпреВ рдХреИрд░реЛрд▓ рдХреЗ рд╡рд┐рддреНрддреАрдп рдореЙрдбрд▓ рдиреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдерд╛ред

рдЫрд╡рд┐

Google рдбреЙрдХреНрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирддреАрдЬрддрди, рдореИрдВрдиреЗ рд╣рд░ рдорд╣реАрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдореАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдЬреЛ рдЖрдкрдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ

рдкрд╢реНрдЪрд┐рдо рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реА рдХрдИ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

DucksBoard
Totango
KISSmetrics

рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдХрдИ рд╕реЗрд╡рд╛рдПрдВ рдереАрдВ, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ "рдкрд░рд┐рдЪрд┐рдд" рдереА, рдореИрдВрдиреЗ Google рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Google рдбреЙрдХреНрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛

рддреЛ рдореЗрд░рд╛ рдХрд╛рдо рдерд╛:



рдЖрдзреЗ рджрд┐рди рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЕрдкрдиреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЕрдкрдиреА рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ script.google.com рдмрдирд╛рдПрдВ (рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ Google рдЦрд╛рддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)

2. рдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВ
function setNewMetrics() { //  Excel       ////////////////// var ss = SpreadsheetApp.openById("0AjAbTD8WcDQMdC1MWmtUR3VlUWJTSHIzQ0dsSS1HSGc"); //    Excel      !!!!!!!!!!!!!!!!!!!!! SpreadsheetApp.setActiveSpreadsheet(ss); var sheet= SpreadsheetApp.setActiveSheet(ss.getSheets()[1]); //  (sheet)  Excel  !!!!!!!!!!!!!! Logger.log("  = "+sheet.getName()); // ,      -   " Run-> setNewMetrics" -  CNTRL + ENTER -   var sCol = new Array(); //   ,     Excel //   var d = new Date(); var monthNames = [ "January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December" ]; var cMonth= d.getMonth(); var cYear = d.getFullYear(); cMonth= (cMonth + 12 - 1) % 12 //    (     2   "1"   "2" ) if ( (cMonth-1) > 0 ) cYear--; //  ,   var cMonth_str = monthNames[cMonth]; sCol[1] = cMonth_str+" "+cYear; //   //    GA ///////////////////////////////////////////////////////////////////// //     API GA   "" API,   https://developers.google.com/analytics/solutions/articles/reporting-apps-script#registration //         getProfile()  var sProfile=getProfile(); //      GA,      ,   !!!!!! var oGA = getReportDataForProfile(sProfile).getTotalsForAllResults(); //  ,       !!!!!! sCol[3] = oGA["ga:visits"]; //  visits sCol[12] = oGA["ga:goalCompletionsAll"]/oGA["ga:visits"]; //   Visit-> Trial Logger.log( "  GA -> "+sCol[12]); //     GA  //    JSON   ,      ///////////////////////////////////////////////////////// //        JSON  var opts = {"contentType":"multipart/form-data", "method" : "post",} var response = UrlFetchApp.fetch("http://YOURSITE.com/8IiXcnPkEi3W.json", opts); //       JSON     /* {"24":{"date":"February 2011","new_paid":"360","churn":2}, "23":{"date":"March 2011","new_paid":"38","churn":2}} */ var jsondata = response.getContentText(); jsondata = JSON.parse(jsondata); //      jsondata for (var month in jsondata) { //Logger.log("==>"+month+jsondata[month] + jsondata[month]["date"]); if ( (cMonth_str+" "+ cYear) === jsondata[month]["date"] ) { //      -   !!!!!!!!!!!!!! sCol[7] = jsondata[month]["new"]; sCol[8] = jsondata[month]["lost"]; sCol[22] = jsondata[month]["churn"]+"%"; sCol[23] = jsondata[month]["churn_paid"]+"%"; sCol[25] = jsondata[month]["ltv"]; } } //   Excel /////////////////////////////////////////////////////////////// //       Excel .     var sLastcolumn = sheet.getLastColumn()+1; var oRange = sheet.getRange(1,sLastcolumn ) ; for (var i=1; i<(sCol.length+1); i++) { if (sCol[i]) oRange.setValue(sCol[i]); //     oRange = oRange.offset(1, 0, 1, 1); //    } //      var oRange1 =sheet.getRange(1,sLastcolumn-1,100,1) //         oRange1.copyFormatToRange(sheet,sLastcolumn,sLastcolumn,1,100);//   } //      GA(google analytics) function getProfile() { var accounts = Analytics.Management.Accounts.list(); if (accounts.getItems()) { var firstAccountId = accounts.getItems()[1].getId(); //       (  "1"      "" )!!!!! //Logger.log(accounts.getItems()[1].getName()); //  var webProperties = Analytics.Management.Webproperties.list(firstAccountId); if (webProperties.getItems()) { var firstWebPropertyId = webProperties.getItems()[10].getId();//    тДЦ10 (     ) ) !!!!!!! //Logger.log(webProperties.getItems()[10]);//   var profiles = Analytics.Management.Profiles.list(firstAccountId, firstWebPropertyId); if (profiles.getItems()) { var Profile = profiles.getItems()[0]; return Profile; } else { throw new Error('No profiles found.'); } } else { throw new Error('No webproperties found.'); } } else { throw new Error('No accounts found.'); } } function getReportDataForProfile(firstProfile) { //    Google Analytics         var profileId = firstProfile.getId(); var tableId = 'ga:' + profileId; var sLastMonthRange = getLastMonth(1); // var optArgs = { /* 'dimensions': 'ga:keyword', // Comma separated list of dimensions. 'sort': '-ga:visits,ga:keyword', // Sort by visits descending, then keyword. 'segment': 'dynamic::ga:isMobile==Yes', // Process only mobile traffic. 'filters': 'ga:source==google', // Display only google traffic. 'start-index': '1', 'max-results': '250' // Display the first 250 results.*/ }; // Make a request to the API. var results = Analytics.Data.Ga.get( tableId, // Table id (format ga:xxxxxx). sLastMonthRange[0], // Start-date (format yyyy-MM-dd). sLastMonthRange[1], // End-date (format yyyy-MM-dd). 'ga:visits, ga:pageviews,ga:goalCompletionsAll', // Comma seperated list of metrics. ( https://developers.google.com/analytics/resources/articles/gdataCommonQueries) optArgs); if (results.getRows()) { return results; } else { throw new Error('No profiles found'); } } //   function getLastNdays(nDaysAgo) { var today = new Date(); var before = new Date(); before.setDate(today.getDate() - nDaysAgo); return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd'); } function getLastMonth() { var sNow = new Date(); var dd = sNow.getDate(); var mm = sNow.getMonth(); var yyyy = sNow.getFullYear(); var sStart = new Date( yyyy, mm-1, 2, 0,0,1 ); var sDays = daysInMonth(yyyy, mm-1) ; var sEnd = new Date( yyyy, mm-1, sDays+1, 0,0,1 ); //Logger.log(sStart + " " + sEnd + ' -- ' + sDays); return [ Utilities.formatDate(sStart, 'GMT', 'yyyy-MM-dd') , Utilities.formatDate(sEnd, 'GMT', 'yyyy-MM-dd') ] ; } function daysInMonth(year, month) { return new Date(year, month, 0).getDate(); } 


рд╡реЗ рд╕реНрдерд╛рди рдЬрд╣рд╛рдБ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдореИрдВрдиреЗ рдкреИрдирд┐рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ "!!!!" рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ред
рдорд╣реАрдиреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рдЖрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ "рдореЗрдиреВ -> рд╕рдВрд╕рд╛рдзрди -> рдЯреНрд░рд┐рдЧрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ" рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдХреБрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдлрд╝рдВрдХреНрд╢рди "setNewMetrics ()" рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ Google рдбреЙрдХреНрд╕ рдореЗрдВ рдореАрдЯреНрд░рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реВрдВ)ред

Source: https://habr.com/ru/post/In170109/


All Articles