2016-04-12 9 views
0

私は少しこのようになりますNode.jsのコードを持っている:urlPathsは潜在的に非常に大きな配列することができGoogleアナリティクスAPIで大量のURLリストをフィルタリングするにはどうすればよいですか?

analytics.data.ga.get({ 
    metrics: 'ga:pageviews,ga:users', 
    dimensions: 'ga:date', 
    filters: urlPaths.map(path => `ga:pagePath==${path}`).join(','), 
    'start-date': '30daysAgo', 
    'end-date': 'yesterday', 
    // sort: '-ga:date', 
    'max-results': 30, 
}, (err, response) => { 
    if (err) return next(err) 
    res.json(response) 
}) 

私はいくつかの文脈を与えるために、各ユーザーが独自の一意のURL(例えば/file/:some_unique_hash)を持つ画像をアップロードし、ユーザーごとに分析データを除外できるようにしたいと考えています。これを行う唯一の方法は、ユーザーがアップロードしたファイルのリストを引き出し、非常に大きなURLリストをGoogleアナリティクスAPIのフィルタパラメータに渡すことです。

各URLのプレフィックスがユーザーのユーザー名(例:/:some_username/:some_file)であれば、フィルタに正規表現を渡すだけで簡単になります。しかし残念ながら、URL構造を変更することはできないと思います。

特定のページビューをユーザーに「所属」として「タグ付け」し、そのカスタム変数を使用してGAデータを除外するために、クライアントサイドスクリプトを使用してGAに追加データを渡すことが1つの解決策だと考えています。それは可能ですか?この問題を解決するための他の提案?

+0

"urlPathsは非常に大きな配列になる可能性があります"文字列フィルタの長さに制限があるため、実際にはメモリの使用量が最大であると思います。 – DaImTo

+2

私は思いますGoogleアナリティクスにデータを挿入してからカスタムディメンションをフィルタリングするときに、カスタムディメンションを追加するというオプションがあります。 – DaImTo

+0

"実際には、文字列フィルタの長さに制限があるため、「問題あります...」Googleアナリティクスにデータを挿入するときにカスタムディメンションを追加してください。そのためのサンプルコードまたはドキュメントリファレンスがありますか? –

答えて

1

Googleアナリティクスに「作成者」のカスタムディメンションを作成し、そのディメンションをすべて私の/file/...ページビューに設定することで、この問題を解決しました。 GoogleアナリティクスのCore APIを使用してデータを取得する際に、著者ディメンションでフィルタリングすることができます。 http://www.vsellis.com/add-author-tracking-google-analytics-wordpress-website/

+0

役に立つヒントですが、JSのヒットにラベルを付ける方法であり、URLのリストをアップロードするのではありません。 – MichaelD

関連する問題