使用GA API v4,我正在尝试从Google Analytics中定义的多个细分中检索数据。我的应用程序不知道这些段的名称,但是我们可以说它们在GA中称为A,B,C和D. (其他用户可以重命名段,因此名称实际上是不可预测的。)
我的应用程序确实有这些段的ID是硬编码的。 (从https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/segments/list手动检索。)
现在确定数据列表应以某种预定义的重要性顺序呈现。 (也就是说,不按字母顺序排列。)
因此,我按照所需的顺序向GA API发送一个带有segments数组的查询:
reportRequests["0"].segments[
{ segmentId: <id-for-segment-C> },
{ segmentId: <id-for-segment-B> },
{ segmentId: <id-for-segment-D> },
{ segmentId: <id-for-segment-A> }
]
令我惊讶的是,返回的数据集按字段名称的字母顺序排序!
reports["0"].data.rows[
{ dimensions: [ "A" ], ... },
{ dimensions: [ "B" ], ... },
{ dimensions: [ "C" ], ... },
{ dimensions: [ "D" ], ... }
]
让事情变得更糟:
我只是在想象事情吗?我是否因为不完全理解API的工作原因而导致问题?这是API中的错误吗?或者这实际上是设计?
答案 0 :(得分:0)
1)您使用的是v3还是v4版本?如果是v3,请尝试v4并查看是否有帮助。另一种方法是使用dynamicSegments
(我总是使用)而不是segmentIds
:这些可以存储在您的数据库中,解决段ID名称解析问题,还可以避免GA维护问题(用户修改分段然后破坏你的应用程序。)
2)是的,它们可能音译(Å - > A)并且仅在之后排序。我真的不会浪费时间来研究这个问题,我怀疑谷歌会不会改变它(它本身并不是一个坏行为,API旨在支持编码,而不是人类语言的微妙之处,大多数人,尤其是美国的Google工程师,不会在意:))