如何在Ruby中正确使用GA4 API的维度过滤器?
修正后的GA4自定义维度过滤器请求代码
你的核心问题是混淆了旧版UA(通用分析)的Analytics Reporting V4和GA4的Analytics Data API v4的请求结构,参考的文档不适用于当前GA4的请求。另外,GA4的过滤器语法有明确的层级和类型区分,以下是修正后的正确请求代码:
{ :property=>"properties/1234", :dimensions=>[{:name=>"date"}, {:name=>"customUser:type"}], :metrics=>[{:name=>"activeUsers", :invisible=>false}], :date_ranges=>[{:start_date=>"2023-01-01", :end_date=>"today", :name=>"date"}], :order_bys=>[{:dimension=>{:dimension_name=>"date"}}], :filter_clauses=>[ { :filters=>[ { :field_name=>"customUser:type", :string_filter=>{ :match_type=>"EXACT", :value=>"Customer", :case_sensitive=>false } } ] } ], :keep_empty_rows=>false, :return_property_quota=>true }
关键修正点:
- 字段名变更:将
dimension_filter_clauses改为GA4 API要求的filter_clauses - 层级结构调整:GA4的过滤器需要嵌套
filters数组,每个过滤器需指定field_name和对应的过滤器类型(这里用string_filter匹配字符串值) - 运算符修正:单个值匹配无需用
OR,OR是用于多个过滤器之间的逻辑关系(若要添加多个过滤条件,可在filters数组中新增元素,并在filter_clauses里设置operator: "OR")
如果需要匹配包含"Customer"的模糊值,可将match_type改为CONTAINS;如果需要排除该值,可在filter_clauses中添加:not => true。
内容的提问来源于stack exchange,提问作者Neer
相关产品推荐
相关产品推荐

