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'))dfuserID 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?