2020年12月23日星期三

How to request data from google analytics multi-channel funnels

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

没有评论:

发表评论