diff --git a/airbyte-integrations/connectors/source-amazon-ads/integration_tests/configured_catalog_report.json b/airbyte-integrations/connectors/source-amazon-ads/integration_tests/configured_catalog_report.json index 8db7507d02d2..f7f14dc9952c 100644 --- a/airbyte-integrations/connectors/source-amazon-ads/integration_tests/configured_catalog_report.json +++ b/airbyte-integrations/connectors/source-amazon-ads/integration_tests/configured_catalog_report.json @@ -2,7 +2,7 @@ "streams": [ { "stream": { - "name": "sponsored_products_report_stream", + "name": "sponsored_brands_report_stream", "json_schema": {}, "supported_sync_modes": ["full_refresh", "incremental"], "source_defined_primary_key": [ diff --git a/airbyte-integrations/connectors/source-amazon-ads/integration_tests/spec.json b/airbyte-integrations/connectors/source-amazon-ads/integration_tests/spec.json index ab8a073d6c60..b340dc6869fd 100644 --- a/airbyte-integrations/connectors/source-amazon-ads/integration_tests/spec.json +++ b/airbyte-integrations/connectors/source-amazon-ads/integration_tests/spec.json @@ -86,7 +86,8 @@ "campaigns", "keywords", "productAds", - "targets" + "targets", + "searchTerm" ] }, "type": "array", diff --git a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/spec.yaml b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/spec.yaml index 90ab0a6076e6..83f73c5bbe57 100644 --- a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/spec.yaml +++ b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/spec.yaml @@ -105,6 +105,7 @@ connectionSpecification: - keywords - productAds - targets + - searchTerm type: array uniqueItems: true order: 9 diff --git a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report.py b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report.py index 2776a35bdb33..03d9a631f202 100644 --- a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report.py +++ b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report.py @@ -78,7 +78,7 @@ "attributedUnitsOrdered14dSameSKU", "attributedUnitsOrdered30dSameSKU", ], - "keywords": [ + "keywords_donotuse": [ "campaignName", "campaignId", "adGroupName", diff --git a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report_v3.py b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report_v3.py index 6fc5ca77095f..0542bd513e33 100644 --- a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report_v3.py +++ b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/products_report_v3.py @@ -89,15 +89,10 @@ "unitsSoldSameSku30d", ], "keywords": [ - "campaignName", - "campaignId", - "adGroupName", - "adGroupId", - "keywordId", - "keyword", - "matchType", "impressions", "clicks", + "costPerClick", + "clickThroughRate", "cost", "purchases1d", "purchases7d", @@ -123,6 +118,32 @@ "unitsSoldSameSku7d", "unitsSoldSameSku14d", "unitsSoldSameSku30d", + "kindleEditionNormalizedPagesRead14d", + "kindleEditionNormalizedPagesRoyalties14d", + "salesOtherSku7d", + "unitsSoldOtherSku7d", + "acosClicks7d", + "acosClicks14d", + "roasClicks7d", + "roasClicks14d", + "keywordId", + "keyword", + "campaignBudgetCurrencyCode", + "startDate", + "endDate", + "portfolioId", + "campaignName", + "campaignId", + "campaignBudgetType", + "campaignBudgetAmount", + "campaignStatus", + "keywordBid", + "adGroupName", + "adGroupId", + "keywordType", + "matchType", + "targeting", + "adKeywordStatus", ], "targets": [ "campaignName", @@ -247,6 +268,64 @@ "keywordId", "targeting", "keywordType", + ], + "searchTerm": [ + "impressions", + "clicks", + "costPerClick", + "clickThroughRate", + "cost", + "purchases1d", + "purchases7d", + "purchases14d", + "purchases30d", + "purchasesSameSku1d", + "purchasesSameSku7d", + "purchasesSameSku14d", + "purchasesSameSku30d", + "unitsSoldClicks1d", + "unitsSoldClicks7d", + "unitsSoldClicks14d", + "unitsSoldClicks30d", + "sales1d", + "sales7d", + "sales14d", + "sales30d", + "attributedSalesSameSku1d", + "attributedSalesSameSku7d", + "attributedSalesSameSku14d", + "attributedSalesSameSku30d", + "unitsSoldSameSku1d", + "unitsSoldSameSku7d", + "unitsSoldSameSku14d", + "unitsSoldSameSku30d", + "kindleEditionNormalizedPagesRead14d", + "kindleEditionNormalizedPagesRoyalties14d", + "salesOtherSku7d", + "unitsSoldOtherSku7d", + "acosClicks7d", + "acosClicks14d", + "roasClicks7d", + "roasClicks14d", + "keywordId", + "keyword", + "campaignBudgetCurrencyCode", + "startDate", + "endDate", + "portfolioId", + "searchTerm", + "campaignName", + "campaignId", + "campaignBudgetType", + "campaignBudgetAmount", + "campaignStatus", + "keywordBid", + "adGroupName", + "adGroupId", + "keywordType", + "matchType", + "targeting", + "adKeywordStatus", ] } @@ -297,7 +376,30 @@ def _get_init_report_body(self, report_date: str, record_type: str, profile): filters = [{"field": "keywordType", "values": ["TARGETING_EXPRESSION", "TARGETING_EXPRESSION_PREDEFINED"]}] if record_type == "keywords": - filters = [{"field": "keywordType", "values": ["BROAD", "PHRASE", "EXACT"]}] + filters = [ + { + "field": "keywordType", + "values": ["BROAD", "PHRASE", "EXACT", "TARGETING_EXPRESSION", "TARGETING_EXPRESSION_PREDEFINED"] + }, + { + "field": "adKeywordStatus", + "values": [ + "ENABLED", + "PAUSED", + "ARCHIVED" + ] + } + ] + + elif record_type == "searchTerm": + group_by = ["searchTerm"] + reportTypeId = "spSearchTerm" + filters = [ + { + "field": "keywordType", + "values": ["BROAD", "PHRASE", "EXACT", "TARGETING_EXPRESSION", "TARGETING_EXPRESSION_PREDEFINED"] + } + ] body = { "name": f"{record_type} report {report_date}", diff --git a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py index 22fddb01b72a..abf645593482 100644 --- a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py +++ b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py @@ -31,6 +31,7 @@ class RecordType(str, Enum): PRODUCTADS = "productAds" TARGETS = "targets" ASINS = "asins" + SEARCHTERM = "searchTerm" class Status(str, Enum):