I can successfully request data from the google analytics core reporting api but am struggling to pull from the multi-channel funnels api. I am pretty sure my problem is with permission/access but I've gone through the documentation and can't figure out exactly what the problem is. I am using node and the googleapis library. Here is my code for pulling the google analytics information (This works)
var {google} = require('googleapis'); var key = require('./auth.json'); var viewID = 'XXXXXXX'; var analytics = google.analyticsreporting('v4'); var jwtClient = new google.auth.JWT(key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/analytics.readonly'], null); jwtClient.authorize(function (err, tokens) { if (err) { console.log(err); return; } else { console.log('Yup, we got authorized!'); console.log(tokens) } }); var req = { reportRequests: [{ viewId: viewID, dateRanges: [{ startDate: '2020-11-01', endDate: '2020-11-01'}], metrics: [{expression: 'ga:pageViews'}], dimensions: [{name: 'ga:city'}], pageSize: 10 }], }; analytics.reports.batchGet({ auth: jwtClient, resource: req }, function (err, response) { if (err) { console.log('Failed to get Report'); console.log(err); return; } console.log('Success'); console.log(response.data) } );
This produces the desired output just fine. I tried to change the metrics and dimensions so I can pull some multi-channel funnel information that I want but am getting an error
var {google} = require('googleapis'); var key = require('./auth.json'); var viewID = 'XXXXXXX'; var analytics = google.analyticsreporting('v4'); var jwtClient = new google.auth.JWT(key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/analytics.readonly'], null); jwtClient.authorize(function (err, tokens) { if (err) { console.log(err); return; } else { console.log('Yup, we got authorized!'); console.log(tokens) } }); var req = { reportRequests: [{ viewId: viewID, dateRanges: [{ startDate: '2020-11-01', endDate: '2020-11-01'}], metrics: [{expression: 'mcf:sourceMedium'}], dimensions: [{name: 'mcf:lastInteractionConversions'}], pageSize: 10 }], }; analytics.reports.batchGet({ auth: jwtClient, resource: req }, function (err, response) { if (err) { console.log('Failed to get Report'); console.log(err); return; } console.log('Success - got something back from the Googlez'); console.log(response.data) } );
It is producing this
code: 400, errors: [ { message: 'Unknown dimensions(s): mcf:lastInteractionConversions, unknown metric(s): mcf:sourceMedium\n' + 'For details see https://developers.google.com/analytics/devguides/reporting/core/dimsmets.', domain: 'global', reason: 'badRequest' } ]
I am pretty sure my problem is either I am requesting from the wrong source or my permissions are only available for ga and not mcf, but I don't fully understand the reason for the error or how to fix it, and the documentation hasn't provided much help. Any help would be appreciated, thanks.
https://stackoverflow.com/questions/65430825/how-to-request-data-from-google-analytics-multi-channel-funnels December 24, 2020 at 04:54AM
没有评论:
发表评论