Php 如何在GA-api中构建多段序列
我想从GA api获取段序列Php 如何在GA-api中构建多段序列,php,google-analytics,google-analytics-api,Php,Google Analytics,Google Analytics Api,我想从GA api获取段序列sessions::sequence::GA:eventCategory=@EXAMPLE\u EVENT\u CATEGORY的分析数据;ga:eventAction=@EXAMPLE\u EVENT\u ACTION;->>ga:eventCategory=@EXAMPLE\u EVENT\u CATEGORY2;ga:eventAction=@EXAMPLE\u EVENT\u ACTION2 没有关于从段序列中筛选数据的文档。我想我必须使用Google\u服务
sessions::sequence::GA:eventCategory=@EXAMPLE\u EVENT\u CATEGORY的分析数据;ga:eventAction=@EXAMPLE\u EVENT\u ACTION;->>ga:eventCategory=@EXAMPLE\u EVENT\u CATEGORY2;ga:eventAction=@EXAMPLE\u EVENT\u ACTION2
没有关于从段序列中筛选数据的文档。我想我必须使用Google\u服务\u分析报告\u SequenceStep
或/和Google\u服务\u分析报告\u SequenceSegment
对象。问题是我不知道在哪里(如何)使用它。我试着从这里跟踪文档
你好,我已经为同样的问题挣扎了几天,使用一个没有文档的api是一场噩梦。但我想我把它整理好了,它从分析界面给了我同样的结果 而不是将多个
段设置为请求
$request->setSegments(数组($segmentFilter1、$segmentFilter2、$segmentFilter3、$segmentFilter4))代码>
这样做
在此行中组合多个段过滤器
s
$segmentDefinition->setSegmentFilters(数组($segmentFilter1,$segmentFilter2))代码>
只给请求一个段
$request->setSegments(数组($segment))代码>
使用当前的buildSimpleSegment()
方法,这将不起作用,因此需要更改它并返回segmentFilter
,然后将它们合并到getReport()
希望能有所帮助您好,我已经为同样的问题挣扎了几天,使用没有文档的api简直是噩梦。但我想我把它整理好了,它从分析界面给了我同样的结果
而不是将多个段设置为请求
$request->setSegments(数组($segmentFilter1、$segmentFilter2、$segmentFilter3、$segmentFilter4))代码>
这样做
在此行中组合多个段过滤器
s
$segmentDefinition->setSegmentFilters(数组($segmentFilter1,$segmentFilter2))代码>
只给请求一个段
$request->setSegments(数组($segment))代码>
使用当前的buildSimpleSegment()
方法,这将不起作用,因此需要更改它并返回segmentFilter
,然后将它们合并到getReport()
希望能有帮助
protected function buildSimpleSegment($segmentName, $dimension, $dimensionFilterExpression) {
// Create Dimension Filter.
$dimensionFilter = new \Google_Service_AnalyticsReporting_SegmentDimensionFilter();
$dimensionFilter->setDimensionName($dimension);
$dimensionFilter->setOperator("EXACT");
$dimensionFilter->setExpressions(array($dimensionFilterExpression));
// Create Segment Filter Clause.
$segmentFilterClause = new \Google_Service_AnalyticsReporting_SegmentFilterClause();
$segmentFilterClause->setDimensionFilter($dimensionFilter);
// Create the Or Filters for Segment.
$orFiltersForSegment = new \Google_Service_AnalyticsReporting_OrFiltersForSegment();
$orFiltersForSegment->setSegmentFilterClauses(array($segmentFilterClause));
// Create the Simple Segment.
$simpleSegment = new \Google_Service_AnalyticsReporting_SimpleSegment();
$simpleSegment->setOrFiltersForSegment(array($orFiltersForSegment));
// Create the Segment Filters.
$segmentFilter = new \Google_Service_AnalyticsReporting_SegmentFilter();
$segmentFilter->setSimpleSegment($simpleSegment);
// Create the Segment Definition.
$segmentDefinition = new \Google_Service_AnalyticsReporting_SegmentDefinition();
$segmentDefinition->setSegmentFilters(array($segmentFilter));
// Create the Dynamic Segment.
$dynamicSegment = new \Google_Service_AnalyticsReporting_DynamicSegment();
$dynamicSegment->setSessionSegment($segmentDefinition);
$dynamicSegment->setName($segmentName);
// Create the Segments object.
$segment = new \Google_Service_AnalyticsReporting_Segment();
$segment->setDynamicSegment($dynamicSegment);
return $segment;
}
function getReport() {
$stats = [
'ga_profile_from_search_page' => [
'metric' => 'ga:uniquePageviews',
'dimension' => 'ga:pagePath',
'filter' => 'ga:pagePath=PATH_FILTER’,
'startOffset' => '30 days ago',
'segment' => 'sessions::sequence::ga:eventCategory=@EXAMPLE_EVENT_CATEGORY;ga:eventAction=@EXAMPLE_EVENT_ACTION;->>ga:EXAMPLE_EVENT_CATEGORY2=@Profile;ga:eventAction=@EXAMPLE_EVENT_ACTION2’
],
];
foreach ($stats as $key => $stat) {
// Create the DateRange object.
$dateRange = new \Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate(date('Y-m-d', strtotime($stat['startOffset'])));
$dateRange->setEndDate(date('Y-m-d', strtotime('now')));
// Create the Metrics object.
$metric = new \Google_Service_AnalyticsReporting_Metric();
$metric->setExpression($stat['metric']);
//Create the Dimensions object.
$dimension = new \Google_Service_AnalyticsReporting_Dimension();
$dimension->setName($stat['dimension']);
// Create the segment dimension.
$segmentDimensions = new \Google_Service_AnalyticsReporting_Dimension();
$segmentDimensions->setName("ga:segment");
// Specifying multiple segments
$segmentFilter1 = $this->buildSimpleSegment("Search segment", "ga:eventCategory", "EXAMPLE_EVENT_CATEGORY");
$segmentFilter2 = $this->buildSimpleSegment("Visit profile after search segment", "ga:eventAction", "EXAMPLE_EVENT_ACTION");
$segmentFilter3 = $this->buildSimpleSegment("Profile page view segment", "ga:eventCategory", "EXAMPLE_EVENT_CATEGORY2");
$segmentFilter4 = $this->buildSimpleSegment("Visit profile segment", "ga:eventAction", "EXAMPLE_EVENT_ACTION2”);
// Create the ReportRequest object.
$request = new \Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
$request->setDateRanges($dateRange);
$request->setMetrics(array($metric));
$request->setFiltersExpression($stat['filter']);
$request->setSegments(array($segmentFilter1, $segmentFilter2, $segmentFilter3, $segmentFilter4));
$request->setDimensions(array($dimension, $segmentDimensions));
$body = new \Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests(array($request));
$response = $this->analytics->reports->batchGet($body);
$this->printResults($key, $response);
}
}