diff --git a/agents/marketing-seo/scripts/ga4-direct.py b/agents/marketing-seo/scripts/ga4-direct.py index bc9f457..d91b752 100644 --- a/agents/marketing-seo/scripts/ga4-direct.py +++ b/agents/marketing-seo/scripts/ga4-direct.py @@ -54,35 +54,34 @@ def get_engagement_data(): result['engagementRate'] = float(row.metric_values[5].value) result['screenPageViews'] = int(row.metric_values[6].value) - # Get scroll depth events - scroll_request = RunReportRequest( - property=f"properties/{GA_PROPERTY_ID}", - dimensions=[Dimension(name="eventName")], - metrics=[Metric(name="eventCount")], - date_ranges=[DateRange(start_date="1daysAgo", end_date="today")], - dimension_filter=FilterExpression( - filter=Filter( - field_name="eventName", - string_filter=Filter.StringFilter( - match_type=Filter.StringFilter.MatchType.BEGINS_WITH, - value="scroll" + # Get scroll depth events - query each specific scroll event + scroll_events = {} + for scroll_type in ['scroll_25', 'scroll_50', 'scroll_75']: + scroll_request = RunReportRequest( + property=f"properties/{GA_PROPERTY_ID}", + metrics=[Metric(name="eventCount")], + date_ranges=[DateRange(start_date="1daysAgo", end_date="today")], + dimension_filter=FilterExpression( + filter=Filter( + field_name="eventName", + string_filter=Filter.StringFilter( + match_type=Filter.StringFilter.MatchType.EXACT, + value=scroll_type + ) ) ) - ), - limit=10 - ) + ) + + scroll_response = client.run_report(scroll_request) + count = 0 + for row in scroll_response.rows: + count += int(row.metric_values[0].value) + scroll_events[scroll_type] = count - scroll_response = client.run_report(scroll_request) - scroll_data = {} - for row in scroll_response.rows: - event_name = row.dimension_values[0].value - count = int(row.metric_values[0].value) - scroll_data[event_name] = count - - result['scroll_25'] = scroll_data.get('scroll_25', 0) - result['scroll_50'] = scroll_data.get('scroll_50', 0) - result['scroll_75'] = scroll_data.get('scroll_75', 0) - result['scroll_total'] = sum(scroll_data.values()) + result['scroll_25'] = scroll_events.get('scroll_25', 0) + result['scroll_50'] = scroll_events.get('scroll_50', 0) + result['scroll_75'] = scroll_events.get('scroll_75', 0) + result['scroll_total'] = sum(scroll_events.values()) # Get form interactions form_request = RunReportRequest(