###前提・実現したいこと
現在node.jsを使用してGoogleアナリティクスよりページ毎のPV数とページパスをjsonファイルにて出力しようと試みています。
将来的にはそのデータを使用して、自動で更新するランキング形式の記事一覧をホームページに設置したいなと考えています。
こちらのサイトを参考にファイル書き出しまでは成功しました。
アクセス数ではなく、PV数を取得したいのでGoogle検索にて調べたところPage Tracking - Dimensions & Metrics Explorer|Google アナリティクス>レポート>Reporting API v4にてディメンションや指標を使って目的のデータを取得するという事まではわかりました。
ですが、このディメンションや指標をどの様に使用すれば良いのかが分からないので、使用方法を知りたいです。
###該当のソースコード
js
1var google = require('googleapis'); 2var analytics = google.analyticsreporting('v4'); 3 4//jsonファイル書き出しの為にfsモジュール呼出 5var fs = require('fs'); 6 7// サービスアカウントキーのJSONファイルを指定 8var credential = require('./***************.json'); 9 10// データを取得したいGoogle AnalyticsのビューIDを指定 11var viewId = '**********'; 12 13// 対象データの期間 14var startDate = "2017-10-27"; 15var endDate = "2017-11-02"; 16 17var jwtClient = new google.auth.JWT(credential.client_email, null, credential.private_key, ["https://www.googleapis.com/auth/analytics.readonly"], null); 18 19jwtClient.authorize((error, tokens) => { 20 if (error){ 21 fs.writeFile('hoge.json', JSON.stringify(error, null, " ")); 22 console.log("flag1:エラーが発生しました") 23 return; 24 } 25 analytics.reports.batchGet({ 26 resource: { 27 "reportRequests": [ 28 { 29 "dateRanges": [ 30 { 31 "startDate": startDate, 32 "endDate": endDate 33 } 34 ], 35 "viewId": viewId, 36 "dimensions": [ 37 { 38 "name": "ga:pagePath" 39 } 40 ] 41 } 42 ] 43 }, 44 auth: jwtClient 45 }, (error, response) => { 46 if (error){ 47 fs.writeFile('hoge.json', JSON.stringify(error, null, " ")); 48 console.log("flag2:エラーが発生しました") 49 } 50 fs.writeFile('hoge.json', JSON.stringify(response, null, " ")); 51 console.log("ファイルが正常に書き出しされました") 52 }) 53});
###試したことその1
js
1var pv = 0;//1行目に追加 2 3"name": "ga:pagePath", 4"pv": "ga:pageviews"//上記コード「"name": "ga:pagePath"」の下に追加
<エラー内容>
jsonファイルに書き出された内容
"message": "Invalid JSON payload received. Unknown name "pv" at 'report_requests[0].dimensions[0]': Cannot find field.",
"domain": "global",
"reason": "badRequest"
コンソールに表示された内容
C:******************>node get-ga.js
flag2:エラーが発生しました
ファイルが正常に書き出しされました
(node:1612) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
(node:1612) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
###試したことその2
「pv」というのが何なのか分からないよって言われてるのは何となくわかったのですが、「"name": "ga:pagePath"」の「"name"」は何故使えるの?と疑問が湧きました。
それが解決出来れば、問題が解決できるかもしれないと思い下記の検索ワードの組み合わせにて検索しました。
node.js, google analytics, googleapi, name, ga:pageviews, json, 形式, フォーマット
結果、解決出来ず検索ワードが思いつかなくなってしまいました。
つきましては、コードに対してのご指摘や検索ワード候補、参考になりそうなサイト等何かヒントを頂ければと思います。
また、前回質問の仕方についてアドバイスを頂き改善してみたのですが、まだまだ至らないところもあるかと思います。
質問の仕方についてもお気づきの点が御座いましたらアドバイスを頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/03 12:47