Skip to content

Commit

Permalink
Merge pull request #21 from railsware/CPL-16804/Only-RESPONSIVE_SEARC…
Browse files Browse the repository at this point in the history
…H_AD-ad-types-are-returned-in-Ad-performance-report

[CPL-16804]: Add `responsive_search_ad_performance_report` report
  • Loading branch information
akoikelov authored Oct 4, 2024
2 parents fcef515 + 7d400dd commit c200a46
Show file tree
Hide file tree
Showing 2 changed files with 279 additions and 17 deletions.
289 changes: 272 additions & 17 deletions tap_google_ads/report_definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,19 +257,73 @@
"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",
"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.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",
Expand All @@ -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",
Expand All @@ -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",
Expand Down Expand Up @@ -407,7 +500,6 @@
"segments.day_of_week",
"segments.device",
"segments.external_conversion_source",
"segments.keyword.ad_group_criterion",
"segments.month",
"segments.month_of_year",
"segments.quarter",
Expand Down Expand Up @@ -1692,6 +1784,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",
Expand Down
7 changes: 7 additions & 0 deletions tap_google_ads/streams.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"],
Expand Down

0 comments on commit c200a46

Please sign in to comment.