From c394d92f38f88ecafdc0e10b4062a674d8cbb0dd Mon Sep 17 00:00:00 2001 From: Aikol Koikelov Date: Thu, 3 Oct 2024 16:17:04 +0600 Subject: [PATCH 1/2] [CPL-16804]: Added `responsive_search_ad_performance_report` report --- tap_google_ads/report_definitions.py | 164 ++++++++++++++++++++++++++- tap_google_ads/streams.py | 7 ++ 2 files changed, 170 insertions(+), 1 deletion(-) diff --git a/tap_google_ads/report_definitions.py b/tap_google_ads/report_definitions.py index 7ba051b..c782235 100644 --- a/tap_google_ads/report_definitions.py +++ b/tap_google_ads/report_definitions.py @@ -407,7 +407,6 @@ "segments.day_of_week", "segments.device", "segments.external_conversion_source", - "segments.keyword.ad_group_criterion", "segments.month", "segments.month_of_year", "segments.quarter", @@ -1692,6 +1691,169 @@ "segments.week", "segments.year", ] +RESPONSIVE_SEARCH_AD_PERFORMANCE_REPORT_FIELDS = [ + "ad_group.base_ad_group", + "ad_group.id", + "ad_group.name", + "ad_group.status", + "ad_group_ad.ad.added_by_google_ads", + "ad_group_ad.ad.app_ad.descriptions", + "ad_group_ad.ad.app_ad.headlines", + "ad_group_ad.ad.app_ad.html5_media_bundles", + "ad_group_ad.ad.app_ad.images", + "ad_group_ad.ad.app_ad.mandatory_ad_text", + "ad_group_ad.ad.app_ad.youtube_videos", + "ad_group_ad.ad.call_ad.description1", + "ad_group_ad.ad.call_ad.description2", + "ad_group_ad.ad.call_ad.phone_number", + "ad_group_ad.ad.device_preference", + "ad_group_ad.ad.display_url", + "ad_group_ad.ad.expanded_dynamic_search_ad.description", + "ad_group_ad.ad.expanded_text_ad.description", + "ad_group_ad.ad.expanded_text_ad.description2", + "ad_group_ad.ad.expanded_text_ad.headline_part1", + "ad_group_ad.ad.expanded_text_ad.headline_part2", + "ad_group_ad.ad.expanded_text_ad.headline_part3", + "ad_group_ad.ad.expanded_text_ad.path1", + "ad_group_ad.ad.expanded_text_ad.path2", + "ad_group_ad.ad.final_mobile_urls", + "ad_group_ad.ad.final_urls", + "ad_group_ad.ad.id", + "ad_group_ad.ad.image_ad.image_url", + "ad_group_ad.ad.image_ad.mime_type", + "ad_group_ad.ad.image_ad.name", + "ad_group_ad.ad.image_ad.pixel_height", + "ad_group_ad.ad.image_ad.pixel_width", + "ad_group_ad.ad.legacy_responsive_display_ad.accent_color", + "ad_group_ad.ad.legacy_responsive_display_ad.allow_flexible_color", + "ad_group_ad.ad.legacy_responsive_display_ad.business_name", + "ad_group_ad.ad.legacy_responsive_display_ad.call_to_action_text", + "ad_group_ad.ad.legacy_responsive_display_ad.description", + "ad_group_ad.ad.legacy_responsive_display_ad.format_setting", + "ad_group_ad.ad.legacy_responsive_display_ad.logo_image", + "ad_group_ad.ad.legacy_responsive_display_ad.long_headline", + "ad_group_ad.ad.legacy_responsive_display_ad.main_color", + "ad_group_ad.ad.legacy_responsive_display_ad.marketing_image", + "ad_group_ad.ad.legacy_responsive_display_ad.price_prefix", + "ad_group_ad.ad.legacy_responsive_display_ad.promo_text", + "ad_group_ad.ad.legacy_responsive_display_ad.short_headline", + "ad_group_ad.ad.legacy_responsive_display_ad.square_logo_image", + "ad_group_ad.ad.legacy_responsive_display_ad.square_marketing_image", + "ad_group_ad.ad.responsive_display_ad.accent_color", + "ad_group_ad.ad.responsive_display_ad.allow_flexible_color", + "ad_group_ad.ad.responsive_display_ad.business_name", + "ad_group_ad.ad.responsive_display_ad.call_to_action_text", + "ad_group_ad.ad.responsive_display_ad.descriptions", + "ad_group_ad.ad.responsive_display_ad.format_setting", + "ad_group_ad.ad.responsive_display_ad.headlines", + "ad_group_ad.ad.responsive_display_ad.logo_images", + "ad_group_ad.ad.responsive_display_ad.long_headline", + "ad_group_ad.ad.responsive_display_ad.main_color", + "ad_group_ad.ad.responsive_display_ad.marketing_images", + "ad_group_ad.ad.responsive_display_ad.price_prefix", + "ad_group_ad.ad.responsive_display_ad.promo_text", + "ad_group_ad.ad.responsive_display_ad.square_logo_images", + "ad_group_ad.ad.responsive_display_ad.square_marketing_images", + "ad_group_ad.ad.responsive_display_ad.youtube_videos", + "ad_group_ad.ad.responsive_search_ad.descriptions", + "ad_group_ad.ad.responsive_search_ad.headlines", + "ad_group_ad.ad.responsive_search_ad.path1", + "ad_group_ad.ad.responsive_search_ad.path2", + "ad_group_ad.ad.system_managed_resource_source", + "ad_group_ad.ad.text_ad.description1", + "ad_group_ad.ad.text_ad.description2", + "ad_group_ad.ad.text_ad.headline", + "ad_group_ad.ad.tracking_url_template", + "ad_group_ad.ad.type", + "ad_group_ad.ad.url_custom_parameters", + "ad_group_ad.ad_strength", + "ad_group_ad.policy_summary.approval_status", + "ad_group_ad.policy_summary.approval_status", + "ad_group_ad.policy_summary.policy_topic_entries", + "ad_group_ad.policy_summary.review_status", + "ad_group_ad.status", + "campaign.base_campaign", + "campaign.id", + "campaign.labels", + "campaign.name", + "campaign.status", + "customer.currency_code", + "customer.descriptive_name", + "customer.descriptive_name", + "customer.id", + "customer.time_zone", + "metrics.absolute_top_impression_percentage", + "metrics.active_view_cpm", + "metrics.active_view_ctr", + "metrics.active_view_impressions", + "metrics.active_view_measurability", + "metrics.active_view_measurable_cost_micros", + "metrics.active_view_measurable_impressions", + "metrics.active_view_viewability", + "metrics.all_conversions", + "metrics.all_conversions_from_interactions_rate", + "metrics.all_conversions_value", + "metrics.average_cost", + "metrics.average_cpc", + "metrics.average_cpe", + "metrics.average_cpm", + "metrics.average_cpv", + "metrics.average_page_views", + "metrics.average_time_on_site", + "metrics.bounce_rate", + "metrics.clicks", + "metrics.conversions", + "metrics.conversions_from_interactions_rate", + "metrics.conversions_value", + "metrics.cost_micros", + "metrics.cost_per_all_conversions", + "metrics.cost_per_conversion", + "metrics.cost_per_current_model_attributed_conversion", + "metrics.cross_device_conversions", + "metrics.ctr", + "metrics.current_model_attributed_conversions", + "metrics.current_model_attributed_conversions_value", + "metrics.engagement_rate", + "metrics.engagements", + "metrics.gmail_forwards", + "metrics.gmail_saves", + "metrics.gmail_secondary_clicks", + "metrics.impressions", + "metrics.interaction_event_types", + "metrics.interaction_rate", + "metrics.interactions", + "metrics.percent_new_visitors", + "metrics.top_impression_percentage", + "metrics.value_per_all_conversions", + "metrics.value_per_conversion", + "metrics.value_per_current_model_attributed_conversion", + "metrics.video_quartile_p100_rate", + "metrics.video_quartile_p25_rate", + "metrics.video_quartile_p50_rate", + "metrics.video_quartile_p75_rate", + "metrics.video_view_rate", + "metrics.video_views", + "metrics.view_through_conversions", + "segments.ad_network_type", + "segments.click_type", + "segments.conversion_action", + "segments.conversion_action_category", + "segments.conversion_action_name", + "segments.conversion_adjustment", + "segments.conversion_lag_bucket", + "segments.conversion_or_adjustment_lag_bucket", + "segments.date", + "segments.day_of_week", + "segments.device", + "segments.external_conversion_source", + "segments.keyword.ad_group_criterion", + "segments.month", + "segments.month_of_year", + "segments.quarter", + "segments.slot", + "segments.week", + "segments.year", +] SEARCH_QUERY_PERFORMANCE_REPORT_FIELDS = [ "ad_group.id", "ad_group.name", diff --git a/tap_google_ads/streams.py b/tap_google_ads/streams.py index 09a6801..bbe38a4 100644 --- a/tap_google_ads/streams.py +++ b/tap_google_ads/streams.py @@ -1220,6 +1220,13 @@ def initialize_reports(resource_schema): "ad_group_id", }, ), + "responsive_search_ad_performance_report": ReportStream( + report_definitions.RESPONSIVE_SEARCH_AD_PERFORMANCE_REPORT_FIELDS, + ["ad_group_ad"], + resource_schema, + ["_sdc_record_hash"], + {"id"}, + ), "search_query_performance_report": ReportStream( report_definitions.SEARCH_QUERY_PERFORMANCE_REPORT_FIELDS, ["search_term_view"], From 7d400dd15bd75b0fd2b20a720e1023c97acd0359 Mon Sep 17 00:00:00 2001 From: Aikol Koikelov Date: Thu, 3 Oct 2024 17:48:34 +0600 Subject: [PATCH 2/2] [CPL-16804]: Added fields for `Ad performance` report --- tap_google_ads/report_definitions.py | 125 +++++++++++++++++++++++---- 1 file changed, 109 insertions(+), 16 deletions(-) diff --git a/tap_google_ads/report_definitions.py b/tap_google_ads/report_definitions.py index c782235..b50515b 100644 --- a/tap_google_ads/report_definitions.py +++ b/tap_google_ads/report_definitions.py @@ -257,6 +257,7 @@ "ad_group.id", "ad_group.name", "ad_group.status", + "ad_group_ad.action_items", "ad_group_ad.ad.added_by_google_ads", "ad_group_ad.ad.app_ad.descriptions", "ad_group_ad.ad.app_ad.headlines", @@ -264,12 +265,65 @@ "ad_group_ad.ad.app_ad.images", "ad_group_ad.ad.app_ad.mandatory_ad_text", "ad_group_ad.ad.app_ad.youtube_videos", + "ad_group_ad.ad.app_engagement_ad.descriptions", + "ad_group_ad.ad.app_engagement_ad.headlines", + "ad_group_ad.ad.app_engagement_ad.images", + "ad_group_ad.ad.app_engagement_ad.videos", + "ad_group_ad.ad.app_pre_registration_ad.descriptions", + "ad_group_ad.ad.app_pre_registration_ad.headlines", + "ad_group_ad.ad.app_pre_registration_ad.images", + "ad_group_ad.ad.app_pre_registration_ad.youtube_videos", + "ad_group_ad.ad.call_ad.business_name", + "ad_group_ad.ad.call_ad.call_tracked", + "ad_group_ad.ad.call_ad.conversion_action", + "ad_group_ad.ad.call_ad.conversion_reporting_state", + "ad_group_ad.ad.call_ad.country_code", "ad_group_ad.ad.call_ad.description1", "ad_group_ad.ad.call_ad.description2", + "ad_group_ad.ad.call_ad.disable_call_conversion", + "ad_group_ad.ad.call_ad.headline1", + "ad_group_ad.ad.call_ad.headline2", + "ad_group_ad.ad.call_ad.path1", + "ad_group_ad.ad.call_ad.path2", "ad_group_ad.ad.call_ad.phone_number", + "ad_group_ad.ad.call_ad.phone_number_verification_url", + "ad_group_ad.ad.demand_gen_carousel_ad.business_name", + "ad_group_ad.ad.demand_gen_carousel_ad.call_to_action_text", + "ad_group_ad.ad.demand_gen_carousel_ad.carousel_cards", + "ad_group_ad.ad.demand_gen_carousel_ad.description", + "ad_group_ad.ad.demand_gen_carousel_ad.headline", + "ad_group_ad.ad.demand_gen_carousel_ad.logo_image", + "ad_group_ad.ad.demand_gen_multi_asset_ad.business_name", + "ad_group_ad.ad.demand_gen_multi_asset_ad.call_to_action_text", + "ad_group_ad.ad.demand_gen_multi_asset_ad.descriptions", + "ad_group_ad.ad.demand_gen_multi_asset_ad.headlines", + "ad_group_ad.ad.demand_gen_multi_asset_ad.lead_form_only", + "ad_group_ad.ad.demand_gen_multi_asset_ad.logo_images", + "ad_group_ad.ad.demand_gen_multi_asset_ad.marketing_images", + "ad_group_ad.ad.demand_gen_multi_asset_ad.portrait_marketing_images", + "ad_group_ad.ad.demand_gen_multi_asset_ad.square_marketing_images", + "ad_group_ad.ad.demand_gen_product_ad.breadcrumb1", + "ad_group_ad.ad.demand_gen_product_ad.breadcrumb2", + "ad_group_ad.ad.demand_gen_product_ad.business_name", + "ad_group_ad.ad.demand_gen_product_ad.call_to_action", + "ad_group_ad.ad.demand_gen_product_ad.description", + "ad_group_ad.ad.demand_gen_product_ad.headline", + "ad_group_ad.ad.demand_gen_product_ad.logo_image", + "ad_group_ad.ad.demand_gen_video_responsive_ad.breadcrumb1", + "ad_group_ad.ad.demand_gen_video_responsive_ad.breadcrumb2", + "ad_group_ad.ad.demand_gen_video_responsive_ad.business_name", + "ad_group_ad.ad.demand_gen_video_responsive_ad.call_to_actions", + "ad_group_ad.ad.demand_gen_video_responsive_ad.descriptions", + "ad_group_ad.ad.demand_gen_video_responsive_ad.headlines", + "ad_group_ad.ad.demand_gen_video_responsive_ad.logo_images", + "ad_group_ad.ad.demand_gen_video_responsive_ad.long_headlines", + "ad_group_ad.ad.demand_gen_video_responsive_ad.videos", "ad_group_ad.ad.device_preference", + "ad_group_ad.ad.display_upload_ad.display_upload_product_type", + "ad_group_ad.ad.display_upload_ad.media_bundle", "ad_group_ad.ad.display_url", "ad_group_ad.ad.expanded_dynamic_search_ad.description", + "ad_group_ad.ad.expanded_dynamic_search_ad.description2", "ad_group_ad.ad.expanded_text_ad.description", "ad_group_ad.ad.expanded_text_ad.description2", "ad_group_ad.ad.expanded_text_ad.headline_part1", @@ -279,31 +333,35 @@ "ad_group_ad.ad.expanded_text_ad.path2", "ad_group_ad.ad.final_mobile_urls", "ad_group_ad.ad.final_urls", + "ad_group_ad.ad.final_app_urls", + "ad_group_ad.ad.final_url_suffix", "ad_group_ad.ad.id", "ad_group_ad.ad.image_ad.image_url", "ad_group_ad.ad.image_ad.mime_type", "ad_group_ad.ad.image_ad.name", "ad_group_ad.ad.image_ad.pixel_height", "ad_group_ad.ad.image_ad.pixel_width", - "ad_group_ad.ad.legacy_responsive_display_ad.accent_color", - "ad_group_ad.ad.legacy_responsive_display_ad.allow_flexible_color", - "ad_group_ad.ad.legacy_responsive_display_ad.business_name", - "ad_group_ad.ad.legacy_responsive_display_ad.call_to_action_text", - "ad_group_ad.ad.legacy_responsive_display_ad.description", - "ad_group_ad.ad.legacy_responsive_display_ad.format_setting", - "ad_group_ad.ad.legacy_responsive_display_ad.logo_image", - "ad_group_ad.ad.legacy_responsive_display_ad.long_headline", - "ad_group_ad.ad.legacy_responsive_display_ad.main_color", - "ad_group_ad.ad.legacy_responsive_display_ad.marketing_image", - "ad_group_ad.ad.legacy_responsive_display_ad.price_prefix", - "ad_group_ad.ad.legacy_responsive_display_ad.promo_text", - "ad_group_ad.ad.legacy_responsive_display_ad.short_headline", - "ad_group_ad.ad.legacy_responsive_display_ad.square_logo_image", - "ad_group_ad.ad.legacy_responsive_display_ad.square_marketing_image", + "ad_group_ad.ad.hotel_ad", + "ad_group_ad.ad.image_ad.image_asset.asset", + "ad_group_ad.ad.image_ad.preview_image_url", + "ad_group_ad.ad.image_ad.preview_pixel_height", + "ad_group_ad.ad.image_ad.preview_pixel_width", + "ad_group_ad.ad.local_ad.call_to_actions", + "ad_group_ad.ad.local_ad.descriptions", + "ad_group_ad.ad.local_ad.headlines", + "ad_group_ad.ad.local_ad.logo_images", + "ad_group_ad.ad.local_ad.marketing_images", + "ad_group_ad.ad.local_ad.path1", + "ad_group_ad.ad.local_ad.path2", + "ad_group_ad.ad.local_ad.videos", + "ad_group_ad.ad.name", + "ad_group_ad.ad.resource_name", "ad_group_ad.ad.responsive_display_ad.accent_color", "ad_group_ad.ad.responsive_display_ad.allow_flexible_color", "ad_group_ad.ad.responsive_display_ad.business_name", "ad_group_ad.ad.responsive_display_ad.call_to_action_text", + "ad_group_ad.ad.responsive_display_ad.control_spec.enable_asset_enhancements", + "ad_group_ad.ad.responsive_display_ad.control_spec.enable_autogen_video", "ad_group_ad.ad.responsive_display_ad.descriptions", "ad_group_ad.ad.responsive_display_ad.format_setting", "ad_group_ad.ad.responsive_display_ad.headlines", @@ -320,19 +378,54 @@ "ad_group_ad.ad.responsive_search_ad.headlines", "ad_group_ad.ad.responsive_search_ad.path1", "ad_group_ad.ad.responsive_search_ad.path2", + "ad_group_ad.ad.shopping_comparison_listing_ad.headline", + "ad_group_ad.ad.shopping_product_ad", + "ad_group_ad.ad.shopping_smart_ad", + "ad_group_ad.ad.smart_campaign_ad.descriptions", + "ad_group_ad.ad.smart_campaign_ad.headlines", "ad_group_ad.ad.system_managed_resource_source", "ad_group_ad.ad.text_ad.description1", "ad_group_ad.ad.text_ad.description2", "ad_group_ad.ad.text_ad.headline", "ad_group_ad.ad.tracking_url_template", + "ad_group_ad.ad.travel_ad", "ad_group_ad.ad.type", "ad_group_ad.ad.url_custom_parameters", "ad_group_ad.ad_strength", "ad_group_ad.policy_summary.approval_status", - "ad_group_ad.policy_summary.approval_status", "ad_group_ad.policy_summary.policy_topic_entries", "ad_group_ad.policy_summary.review_status", "ad_group_ad.status", + "ad_group_ad.ad.url_collections", + "ad_group_ad.ad.video_ad.bumper.action_button_label", + "ad_group_ad.ad.video_ad.bumper.action_headline", + "ad_group_ad.ad.video_ad.bumper.companion_banner.asset", + "ad_group_ad.ad.video_ad.in_feed.description1", + "ad_group_ad.ad.video_ad.in_feed.description2", + "ad_group_ad.ad.video_ad.in_feed.headline", + "ad_group_ad.ad.video_ad.in_feed.thumbnail", + "ad_group_ad.ad.video_ad.in_stream.action_button_label", + "ad_group_ad.ad.video_ad.in_stream.action_headline", + "ad_group_ad.ad.video_ad.in_stream.companion_banner.asset", + "ad_group_ad.ad.video_ad.non_skippable.action_button_label", + "ad_group_ad.ad.video_ad.non_skippable.action_headline", + "ad_group_ad.ad.video_ad.non_skippable.companion_banner.asset", + "ad_group_ad.ad.video_ad.out_stream.description", + "ad_group_ad.ad.video_ad.out_stream.headline", + "ad_group_ad.ad.video_ad.video.asset", + "ad_group_ad.ad.video_responsive_ad.breadcrumb1", + "ad_group_ad.ad.video_responsive_ad.breadcrumb2", + "ad_group_ad.ad.video_responsive_ad.call_to_actions", + "ad_group_ad.ad.video_responsive_ad.companion_banners", + "ad_group_ad.ad.video_responsive_ad.descriptions", + "ad_group_ad.ad.video_responsive_ad.headlines", + "ad_group_ad.ad.video_responsive_ad.long_headlines", + "ad_group_ad.ad.video_responsive_ad.videos", + "ad_group_ad.ad_group", + "ad_group_ad.labels", + "ad_group_ad.primary_status", + "ad_group_ad.primary_status_reasons", + "ad_group_ad.resource_name", "campaign.base_campaign", "campaign.id", "campaign.labels",