Google Analytics Api:如何在代码中使用自定义变量? [英] Google Analytics Api: How to use Custom Variables in the code?
问题描述
试图模仿我在Google Analytics信息中心上的做法。
Trying to emulate how I do it on the Google Analytics Dashboard.
如何创建细分一个自定义变量值
?
可将自定义变量值
设置为 DimensionFilter
?
How a Segment can be created with a Custom Variable Value
? I have tried writing following code but it does not return any result back.
Can Custom Variable Value
set as a DimensionFilter
?
// Create Dimension Filter.
SegmentDimensionFilter dimensionFilter = new SegmentDimensionFilter()
.setDimensionName("ga:customVarValue1")
.setOperator("EXACT")
.setExpressions(Arrays.asList("account_id"));
// Create Segment Filter Clause.
SegmentFilterClause segmentFilterClause = new SegmentFilterClause()
.setDimensionFilter(dimensionFilter);
// Create the Or Filters for Segment.
OrFiltersForSegment orFiltersForSegment = new OrFiltersForSegment()
.setSegmentFilterClauses(Arrays.asList(segmentFilterClause));
// Create the Simple Segment.
SimpleSegment simpleSegment = new SimpleSegment()
.setOrFiltersForSegment(Arrays.asList(orFiltersForSegment));
// Create the Segment Filters.
SegmentFilter segmentFilter = new SegmentFilter()
.setSimpleSegment(simpleSegment);
// Create the Segment Definition.
SegmentDefinition segmentDefinition = new SegmentDefinition()
.setSegmentFilters(Arrays.asList(segmentFilter));
// Create the Dynamic Segment.
DynamicSegment dynamicSegment = new DynamicSegment()
.setSessionSegment(segmentDefinition)
.setName("Sessions with Safari browser");
// Create the Segments object.
Segment segment = new Segment()
.setDynamicSegment(dynamicSegment);
// Create the ReportRequest object.
ReportRequest request = new ReportRequest()
.setViewId(VIEW_ID)
.setDateRanges(Arrays.asList(dateRange))
.setDimensions(Arrays.asList(segmentDimensions))
.setSegments(Arrays.asList(segment))
.setMetrics(Arrays.asList(sessions));
推荐答案
长远来说,
A few things to help you in the long run.
- 远离自定义变量,因为它们被替换为自定义维度,供 Universal Analytics 使用。
- 使用 API浏览器来构建和共享您的调试请求。
- 在没有筛选器或分段的情况下进行初始查询,以确保您查找的数据存在于您查询的View中。
- Move away from custom variables as they were replaced with custom dimensions for Universal Analytics.
- Use the API explorer to build and share your request for debugging.
- Initially query without a filter or a segment to ensure the data you are looking for is present in the View you are querying.
这就是说用自定义变量创建段的请求:
Java示例
With that said to create a request with a segment on a custom variable:
// Create the DateRange object.
DateRange dateRange = new DateRange();
dateRange.setStartDate("2015-06-15");
dateRange.setEndDate("2015-06-30");
// Create the Metrics object.
Metric sessions = new Metric()
.setExpression("ga:sessions")
.setAlias("sessions");
//Create the custom var dimension.
Dimension customVarValue1 = new Dimension()
.setName("ga:customVarValue1");
// Create the segment dimension.
Dimension segmentDimensions = new Dimension()
.setName("ga:customVarValue1");
// Create Dimension Filter.
SegmentDimensionFilter dimensionFilter = new SegmentDimensionFilter()
.setDimensionName("ga:customVarValue1")
.setOperator("PARTIAL")
.setExpressions(Arrays.asList("account_id"));
// Create Segment Filter Clause.
SegmentFilterClause segmentFilterClause = new SegmentFilterClause()
.setDimensionFilter(dimensionFilter);
// Create the Or Filters for Segment.
OrFiltersForSegment orFiltersForSegment = new OrFiltersForSegment()
.setSegmentFilterClauses(Arrays.asList(segmentFilterClause));
// Create the Simple Segment.
SimpleSegment simpleSegment = new SimpleSegment()
.setOrFiltersForSegment(Arrays.asList(orFiltersForSegment));
// Create the Segment Filters.
SegmentFilter segmentFilter = new SegmentFilter()
.setSimpleSegment(simpleSegment);
// Create the Segment Definition.
SegmentDefinition segmentDefinition = new SegmentDefinition()
.setSegmentFilters(Arrays.asList(segmentFilter));
// Create the Dynamic Segment.
DynamicSegment dynamicSegment = new DynamicSegment()
.setSessionSegment(segmentDefinition)
.setName("Sessions with Safari browser");
// Create the Segments object.
Segment segment = new Segment()
.setDynamicSegment(dynamicSegment);
// Create the ReportRequest object.
ReportRequest request = new ReportRequest()
.setViewId("XXXX")
.setDateRanges(Arrays.asList(dateRange))
.setDimensions(Arrays.asList(customVarValue1, segmentDimensions))
.setSegments(Arrays.asList(segment))
.setMetrics(Arrays.asList(sessions));
// Create the GetReportsRequest object.
GetReportsRequest getReport = new GetReportsRequest()
.setReportRequests(Arrays.asList(request));
// Call the batchGet method.
GetReportsResponse response = analyticsreporting.reports().batchGet(getReport)
.execute();
要检查的内容:
Things to check.:
- 确保您使用的是正确的自定义变量。您是否想要搜索
ga:customVarName1
? - 查询没有段或过滤器的变量以确保数据存在之前过滤/分段。
- 确保您使用正确的 operator 。
最后,如果您在您可以随时通过API中的段ID查询UI:
Finally if you create a segment in the UI you can always query by segment ID in the API:
// Create the Segments object for returning users.
Segment segment = new Segment()
.setSegmentId("gaid::-3");
// Create the ReportRequest object.
ReportRequest request = new ReportRequest()
.setViewId("XXXX")
.setDateRanges(Arrays.asList(dateRange))
.setDimensions(Arrays.asList(browser, segmentDimensions))
.setSegments(Arrays.asList(segment))
.setMetrics(Arrays.asList(sessions));
// Create the GetReportsRequest object.
GetReportsRequest getReport = new GetReportsRequest()
.setReportRequests(Arrays.asList(request));
要获取分段ID,您可以调用 segments.list 方法。
To get the segment id you can call the segments.list method in the Analytics Management API.
这篇关于Google Analytics Api:如何在代码中使用自定义变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!