如何在 Spatie Laravel Analytics 中使用多个维度过滤器?

问题描述 投票:0回答:1

本例2个过滤器 当我使用这 2 个过滤器结构时,发生的情况是系统 / eventName 只读取最后一个过滤器

`$data = Analytics::get(
期间:期间::创建($startDate, $endDate), 指标:['eventCount'], 维度:['pagePath','eventName','day','month','linkText','linkClasses','linkUrl'], // orderBy: [OrderBy::metric('pagePath', true)], 最大结果:1000, // 偏移量:0, 维度过滤器:新的过滤器表达式( [ '过滤器' => 新过滤器([ 'field_name' => '页面路径', 'string_filter' => 新的 StringFilter([ 'match_type' => MatchType::EXACT, '值' => '/example/abc', ]), ]), '过滤器' => 新过滤器([ 'field_name' => '事件名称', 'string_filter' => 新的 StringFilter([ 'match_type' => MatchType::EXACT, '值' => '点击', ]), ]), ] ), 保持空行:true

    );`

如何使用多维过滤器?

google-analytics-api laravel-10
1个回答
0
投票

您应该在第一个过滤器上使用 setAndGroupsetOrGroup 来排序组过滤器,方法是传递 FilterExpressionList 以及要使用的其他过滤器。

    $filter = new FilterExpression([
        'filter' => new Filter([
            'field_name' => 'pagePath',
            'string_filter' => new StringFilter([
                'match_type' => MatchType::EXACT,
                'value' => '/example/abc',
            ]),
        ]),
    ]);

    $filterToAdd = new FilterExpression([
        'filter' => new Filter([
            'field_name' => 'eventName',
            'string_filter' => new StringFilter([
                'match_type' => MatchType::EXACT,
                'value' => 'click',
            ]),
        ]),
    ]);

    $otherFilters = new FilterExpressionList();
    $otherFilters ->setExpressions([$filterToAdd]);
    $filter->setAndGroup($otherFilters);

然后您可以将 (dimensionFilter: $filter) 变量传递给 Analytics::get(....) 调用

© www.soinside.com 2019 - 2024. All rights reserved.