Wie verwende ich mehrere Filter in der Google Analytics 4 -API von Python?Python

Python-Programme
Anonymous
 Wie verwende ich mehrere Filter in der Google Analytics 4 -API von Python?

Post by Anonymous »

Ich verwende die Google Analytics 4 -Daten -API mit der Python Client Library, um Berichte auszuführen. Ich kann einen Bericht mit einer einzelnen Filterexpression ausführen, um den Verkehr zu filtern, in dem das Land "Vereinigte Staaten" entspricht. Jetzt möchte ich einen zweiten Filter hinzufügen, um Zeilen zurückzugeben, bei dem Country gleich "USA" und Region gleich "New York". Der Versuch, mehrere Filter zu übergeben, hat zu Fehlern geführt.

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")
Was ich ausprobiert habe:
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
Geben Sie eine Liste der Filterexpression s für Dimension_Filter =
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
Angabe eines und group mit einer Filterexpressionsliste mit Filtern, die in Expressions = .
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 .
Frage:
Wie kann ich mehr als einen Dimensionsfilter angeben, wenn die Google Analytics 4 -API aus der offiziellen Python -Client -Bibliothek verwendet wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post