Code: Select all
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
DateRange,
Dimension,
Filter,
FilterExpression,
Metric,
RunReportRequest,
)
def sample_run_report(property_id):
client = BetaAnalyticsDataClient()
request = RunReportRequest(
property=f"properties/{property_id}",
dimensions=[
Dimension(name="country"),
Dimension(name="region")
],
metrics=[Metric(name="activeUsers")],
date_ranges=[DateRange(start_date="2020-03-31", end_date="today")],
dimension_filter=FilterExpression(
filter=Filter(
field_name="country",
string_filter=Filter.StringFilter(
value="United States",
match_type=Filter.StringFilter.MatchType.EXACT
)
)
), # TODO: Add second filter for New York region
)
response = client.run_report(request)
print("Report result:")
for row in response.rows:
dimension_values = [dimension.value for dimension in row.dimension_values]
metric_values = [metric.value for metric in row.metric_values]
print(" | ".join(dimension_values + metric_values))
if __name__ == '__main__':
# property_id is user-specific
sample_run_report(property_id="236813742")
Bereitstellung einer Liste von Filter für filter =
Code: Select all
dimension_filter=FilterExpression(
filter=[
Filter(
field_name="country",
string_filter=Filter.StringFilter(
value="United States",
match_type=Filter.StringFilter.MatchType.EXACT
)
),
Filter(
field_name="region",
string_filter=Filter.StringFilter(
value="New York",
match_type=Filter.StringFilter.MatchType.EXACT
)
)
]
)
# TypeError: Message must be initialized with a dict: google.analytics.data.v1beta.FilterExpression
an
Code: Select all
dimension_filter=[
FilterExpression(
filter=Filter(
field_name="country",
string_filter=Filter.StringFilter(
value="United States",
match_type=Filter.StringFilter.MatchType.EXACT
)
)
),
FilterExpression(
filter=Filter(
field_name="region",
string_filter=Filter.StringFilter(
value="New York",
match_type=Filter.StringFilter.MatchType.EXACT
)
)
)
]
# TypeError: Message must be initialized with a dict: google.analytics.data.v1beta.FilterExpression
angegeben sind
Code: Select all
dimension_filter=FilterExpression(
and_group=FilterExpressionList(
expressions=[
Filter(
field_name="country",
string_filter=Filter.StringFilter(
value="United States",
match_type=Filter.StringFilter.MatchType.EXACT
)
),
Filter(
field_name="region",
string_filter=Filter.StringFilter(
value="New York",
match_type=Filter.StringFilter.MatchType.EXACT
)
)
]
)
)
# TypeError: Parameter to MergeFrom() must be instance of same class: expected got .
Wie kann ich mehr als einen Dimensionsfilter angeben, wenn die Google Analytics 4 -API aus der offiziellen Python -Client -Bibliothek verwendet wird?