Пример #1
0
        public void ExcelDownload(GoogleApisAnalyticsReportingRequestModel model)
        {
            var gaData = garService.GetData(model);
            var data   = gaData.Select(x => new {
                날짜 = x.Date.ToString(),
                PV = x.PageViews,
                UV = x.UniquePageviews
            }).ToList();

            common.ExcelDownLoad(data, "GA데이터_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
        }
Пример #2
0
        public List <GoogleApisAnalyticsReportingResponseModel> GetData(GoogleApisAnalyticsReportingRequestModel model)
        {
            var responseModel = new List <GoogleApisAnalyticsReportingResponseModel>();

            try {
                using (var analyticsreporting = GoogleServiceAccount.AuthenticateServiceAccountFromKey()) {
                    //set parameters
                    var dateRange = new DateRange()
                    {
                        StartDate = model.StartDate.ToString("yyyy-MM-dd"), EndDate = model.EndDate.ToString("yyyy-MM-dd")
                    };
                    var dimensions = new List <Dimension>()
                    {
                        new Dimension {
                            Name = "ga:date"
                        },
                        new Dimension {
                            Name = "ga:pagePath"
                        }
                    };
                    var metrics = new List <Metric>()
                    {
                        new Metric {
                            Expression = "ga:pageviews", Alias = "PV"
                        },
                        new Metric {
                            Expression = "ga:uniquePageviews", Alias = "UV"
                        }
                    };

                    var filters = "";
                    if (!string.IsNullOrEmpty(model.PagePath))
                    {
                        filters = string.Format("ga:pagePath=={0}", model.PagePath);
                    }

                    var orderBys = new List <OrderBy>()
                    {
                        new OrderBy {
                            FieldName = "ga:date", SortOrder = "descending"
                        }
                    };

                    //request report
                    var reportRequest = new ReportRequest {
                        ViewId     = viewId,
                        DateRanges = new List <DateRange>()
                        {
                            dateRange
                        },
                        Dimensions        = dimensions,
                        Metrics           = metrics,
                        FiltersExpression = filters,
                        //Segments = segments,
                        OrderBys = orderBys
                    };

                    //result
                    var requests = new List <ReportRequest>();
                    requests.Add(reportRequest);

                    // Create the GetReportsRequest object.
                    var getReport = new GetReportsRequest()
                    {
                        ReportRequests = requests
                    };

                    // Call the batchGet method.
                    var response = analyticsreporting.Reports.BatchGet(getReport).Execute();

                    //mapper viewModels
                    foreach (Report report in response.Reports)
                    {
                        var rows = (List <ReportRow>)report.Data.Rows;
                        if (rows == null)
                        {
                            throw new Exception("데이터가 없습니다.");
                        }
                        foreach (ReportRow row in rows)
                        {
                            responseModel.Add(new GoogleApisAnalyticsReportingResponseModel {
                                Date            = row.Dimensions[0],
                                PagePath        = row.Dimensions[1],
                                PageViews       = row.Metrics[0].Values[0],
                                UniquePageviews = row.Metrics[0].Values[1]
                            });
                        }
                    }
                }
            } catch (Exception e) {
            }

            return(responseModel);
        }
Пример #3
0
 public List <GoogleApisAnalyticsReportingResponseModel> Get([FromUri] GoogleApisAnalyticsReportingRequestModel model)
 {
     return(garService.GetData(model));
 }