Google Search Console API的多个维度

时间:2015-09-18 05:19:22

标签: php api search console dimensions

我在搜索控制台的API请求中添加多个维度时遇到一个小问题。

如果我将以下内容添加到group by country,则可以正常使用。

 $filters->setDimension("country");
 $filters->setOperator("equals");
 $filters->setExpression($country);
 $filter->setFilters($filters);
 $filter->setFilters(array($filters));
 $request->setDimensionFilterGroups(array($filter));

但是如果我在设备下面添加另一个维度,它会跳过country维度,只运行带有设备维度的查询。完全可以在搜索控制台API网站上根据此操作:

    'filters': [{
        'dimension': 'country',
        'expression': 'ind'
      }, {
        'dimension': 'device',
        'expression': 'MOBILE'
    }]

那么,任何想法如何在查询中使用它们?

它可能只是一些PHP code,但我无法在任何地方找到有关PHP的多维度或任何示例的任何文档。

2 个答案:

答案 0 :(得分:2)

很简单。

$筛选器 - > setDimension( “国家”);

$筛选器 - > setOperator( “等于”);

$筛选器 - > setExpression($国家);

$ filters2-> setDimension( “设备”);

$ filters2-> setOperator( “等于”);

$ filters2-> setExpression($装置);

$滤波器 - > setFilters($过滤器);

$滤波器 - > setFilters(阵列($滤波器,$ filters2));

$请求 - > setDimensionFilterGroups(阵列($滤波器));

像魅力一样。

答案 1 :(得分:0)

尼克的回答确实帮助我开始,但目前还没有完成。为了帮助其他开发人员寻找答案,希望这对您有所帮助:

$filter_group = new Google_Service_Webmasters_ApiDimensionFilterGroup;
$groups = array(['device', 'mobile', 'equals'], ['country', 'GBR', 'equals']);
$filters = array();

if($groups) {
  foreach ($groups as $key => $group) {
    $filters[$key] = new Google_Service_Webmasters_ApiDimensionFilter;
    $filters[$key]->setDimension($group[0]);
    $filters[$key]->setExpression($group[1]);
    $filters[$key]->setOperator($group[2]);
  }

  $filter_group->setFilters($filters);
}

$request->setDimensionFilterGroups(array($filter_group));

另请注意,如果在您的过滤器组中,您有两个或更多相同维度但过滤器或expression的值不同,则它目前无法正常工作。

e.g。

$groups = array(['device', 'mobile', 'equals'], ['device', 'tablet', 'equals']);

这是因为过滤器目前不支持OR操作。

检查here和此回答here