I am trying to create a dynamic segment to filter my traffic data.
I use this example https://developers.google.com/analytics/devguides/reporting/core/v4/samples#dimensions_and_metrics .
But I do not want to use the "EXACT" operator in the Google_Service_AnalyticsReporting_SegmentDimensionFilter object. I would like to use something like addition, but I do not know which word to use, and I cannot find it in the documentation. Here is my code:
$client = new Google_Client();
$client->setAuthConfigFile('authFile.json');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);
$analytics = new Google_Service_AnalyticsReporting($client);
$VIEW_ID = "XXXX";
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2016-04-01");
$dateRange->setEndDate("2016-04-30");
$sessions = new Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression("ga:sessions");
$sessions->setAlias("sessions");
$source = new Google_Service_AnalyticsReporting_Dimension();
$source->setName("ga:source");
$segmentDimensions = new Google_Service_AnalyticsReporting_Dimension();
$segmentDimensions->setName("ga:segment");
$dimensionFilter = new Google_Service_AnalyticsReporting_SegmentDimensionFilter();
$dimensionFilter->setDimensionName("ga:source");
$dimensionFilter->setOperator("EXACT");
$dimensionFilter->setExpressions("XXXX");
$segmentFilterClause = new Google_Service_AnalyticsReporting_SegmentFilterClause();
$segmentFilterClause->setDimensionFilter($dimensionFilter);
$segmentFilterClause->setNot(true);
$orFiltersForSegment = new Google_Service_AnalyticsReporting_OrFiltersForSegment();
$orFiltersForSegment->setSegmentFilterClauses(array($segmentFilterClause));
$simpleSegment = new Google_Service_AnalyticsReporting_SimpleSegment();
$simpleSegment->setOrFiltersForSegment(array($orFiltersForSegment));
$segmentFilter = new Google_Service_AnalyticsReporting_SegmentFilter();
$segmentFilter->setSimpleSegment($simpleSegment);
$sessionSegment = new Google_Service_AnalyticsReporting_SegmentDefinition();
$sessionSegment->setSegmentFilters($segmentFilter);
$dynamicSegment = new Google_Service_AnalyticsReporting_DynamicSegment();
$dynamicSegment->setSessionSegment($sessionSegment);
$dynamicSegment->setName('No spam');
$segment = new Google_Service_AnalyticsReporting_Segment();
$segment->setDynamicSegment($dynamicSegment);
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
$request->setDateRanges($dateRange);
$request->setMetrics(array($sessions));
$request->setDimensions(array($source, $segmentDimensions));
$request->setSegments(array($segment));
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
$reports = $analytics->reports->batchGet( $body );
and here is my error message when I try to put something other than EXACT:
{ "error":{
"code":400,
"message":"Invalid value at 'report_requests[0].segments[0].dynamic_segment.session_segment.segment_filters.simple_segment.or_filters_for_segment[0].segment_filter_clauses[0].dimension_filter.operator' (TYPE_ENUM), \"LIKE\"",
"errors":[
{
"message":"Invalid value at 'report_requests[0].segments[0].dynamic_segment.session_segment.segment_filters.simple_segment.or_filters_for_segment[0].segment_filter_clauses[0].dimension_filter.operator' (TYPE_ENUM), \"LIKE\"",
"domain":"global",
"reason":"badRequest"
}
],
"status":"INVALID_ARGUMENT" } }
, google, .
.