public function get_query($domain, $date = null, $this_filter = array())
 {
     $client = $this->auth();
     $webmastersService = new Google_Service_Webmasters($client);
     $searchanalytics = $webmastersService->searchanalytics;
     // Build query
     $request = new Google_Service_Webmasters_SearchAnalyticsQueryRequest();
     $request->setStartDate($date[0]);
     $request->setEndDate($date[1]);
     $active_query = isset($this_filter['query']) ? $this_filter['query'] : 'query';
     $request->setDimensions(array($active_query));
     $active_search_type = isset($this_filter['search_type']) ? $this_filter['search_type'] : 'web';
     $request->setSearchType($active_search_type);
     if (isset($this_filter['mobile'])) {
         $filter = new Google_Service_Webmasters_ApiDimensionFilter();
         $filter->setDimension("device");
         $filter->setExpression("MOBILE");
         $filters = new Google_Service_Webmasters_ApiDimensionFilterGroup();
         $filters->setFilters(array($filter));
         $request->setDimensionFilterGroups(array($filters));
     }
     $qsearch = $searchanalytics->query($domain, $request);
     $rows = $qsearch->getRows();
     return $rows;
 }
 /**
  *  Request Google Search Analytics API
  *
  *  @param $website     String   Website URL that is enabled in Google Search Console
  *  @param $date     Date (YYYY-MM-DD)   Date for which to request data
  *  @param $overrides     Array   Values to override default settings for request
  *
  *  @returns   Integer,array   Number of records found or var_dump of returned data from Google depending on mode
  */
 public function downloadGoogleSearchAnalytics($website, $date, $overrides = array())
 {
     $params = array_merge($this->defaultGoogleSearchAnalyticsSettings, $overrides);
     $importCount = 0;
     /* Authorize Google via oAuth 2.0 */
     $gapiOauth = new GAPIoAuth();
     $client = $gapiOauth->LogIn();
     /* Define what search types to request from Google Search Analytics */
     $searchTypes = array('web', 'image', 'video');
     /* Load Google Webmasters API */
     $webmasters = new Google_Service_Webmasters($client);
     /* Load Search Analytics API */
     $searchAnalyticsRequest = new Google_Service_Webmasters_SearchAnalyticsQueryRequest($client);
     /* Prepare Search Analytics Resource */
     $searchanalytics = $webmasters->searchanalytics;
     /* Build Search Analytics Request */
     $searchAnalyticsRequest->setDimensions($params['dimensions']);
     $searchAnalyticsRequest->setRowLimit($params['row_limit']);
     /* Valid options: 1-5000 */
     /* Set date for Search Analytics Request */
     $searchAnalyticsRequest->setStartDate($date);
     $searchAnalyticsRequest->setEndDate($date);
     if (isset($params['filters']) || isset($params['groups'])) {
         $searchAnalyticsDimensionFilterGroup = new Google_Service_Webmasters_ApiDimensionFilterGroup();
     }
     if (isset($params['filters'])) {
         $filters = array();
         foreach ($params['filters'] as $filter) {
             $dimensionFilter = new Google_Service_Webmasters_ApiDimensionFilter();
             $dimensionFilter->setDimension($filter['dimension']);
             $dimensionFilter->setOperator($filter['operator']);
             $dimensionFilter->setExpression($filter['expression']);
             $filters[] = $dimensionFilter;
         }
         $searchAnalyticsDimensionFilterGroup->setFilters($filters);
         $searchAnalyticsRequest->setDimensionFilterGroups(array($searchAnalyticsDimensionFilterGroup));
     }
     if (isset($params['groups'])) {
         /* TODO */
         // $dimensionFilterGroups['groups'] = $params['groups'];
     }
     if (isset($params['aggregation_type'])) {
         $searchAnalyticsRequest->setAggregationType($params['aggregation_type']);
     }
     /* Loop through each of the search types */
     foreach ($searchTypes as $searchType) {
         /* Set search type in Search Analytics Request */
         $searchAnalyticsRequest->setSearchType($searchType);
         /* Send Search Analytics Request */
         $searchAnalyticsResponse = $searchanalytics->query($website, $searchAnalyticsRequest);
         /* Import Search Analytics to Database */
         if (is_object($searchAnalyticsResponse)) {
             switch ($params['mode']) {
                 case 'import':
                     $wmtimport = new WMTimport();
                     $importCount += $wmtimport->importGoogleSearchAnalytics($website, $date, $searchType, $searchAnalyticsResponse);
                     break;
                 case 'return':
                     var_dump($searchAnalyticsResponse);
                     break;
             }
         }
     }
     return $importCount;
 }