Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 23131

How to get client and user id in python from GA4

$
0
0

I want access to the user Id or client id in python from GA4 for a project but for some reason there are no ready made dimensions for user Id or client Id.

Here is my code

import osimport pandas as pdimport numpy as npfrom datetime import datetime, timedeltaimport matplotlib.pyplot as pltfrom statsmodels.tsa.arima.model import ARIMAfrom google.analytics.data_v1beta import BetaAnalyticsDataClientfrom google.analytics.data_v1beta.types import DateRangefrom google.analytics.data_v1beta.types import Dimensionfrom google.analytics.data_v1beta.types import Metricfrom google.analytics.data_v1beta.types import RunReportRequestfrom google.analytics.data_v1beta.types import OrderByfrom google.auth.transport.requests import Requestfrom google.oauth2.service_account import Credentialsfrom google.auth.transport.requests import AuthorizedSessionos.environ["GOOGLE_APPLICATION_CREDENTIALS"] = 'ga4apiaccessforpython-411505-22338a3a7852.json'property_id = '360315337'client = BetaAnalyticsDataClient()def format_report(request):    response = client.run_report(request)    # Row index    row_index_names = [header.name for header in response.dimension_headers]    row_header = []    for i in range(len(row_index_names)):        row_header.append([row.dimension_values[i].value for row in response.rows])    row_index_named = pd.MultiIndex.from_arrays(np.array(row_header), names=np.array(row_index_names))    # Row flat data    metric_names = [header.name for header in response.metric_headers]    data_values = []    for i in range(len(metric_names)):        data_values.append([row.metric_values[i].value for row in response.rows])    output = pd.DataFrame(data=np.transpose(np.array(data_values, dtype='f')),                           index=row_index_named, columns=metric_names)    # Move 'date' dimension to columns    output.reset_index(inplace=True)    return outputrequest = RunReportRequest(    property='properties/'+property_id,    dimensions=[Dimension(name="date"),                Dimension(name='userId')],    metrics=[Metric(name="newUsers")],    order_bys=[OrderBy(dimension={'dimension_name': 'date'})],    date_ranges=[DateRange(start_date="2023-11-01", end_date=(datetime.today() - timedelta(days=3)).strftime("%Y-%m-%d"))],)df = format_report(request)df['date'] = df['date'].apply(lambda x: datetime.strptime(str(x), '%Y%m%d').strftime('%Y-%m-%d'))df

userID is not being recognisedI am gettingInvalidArgument: 400 Did you mean customEvent:userID? Field userId is not a valid dimension. For a list of valid dimensions and metrics, see https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema

Is there anyway to get this data?


Viewing all articles
Browse latest Browse all 23131

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>