From 56f9c6168bcfc5a27a3dd3f50b76f2a051ed9f15 Mon Sep 17 00:00:00 2001 From: po3na4skld Date: Thu, 13 May 2021 11:46:19 +0300 Subject: [PATCH 1/6] added new field --- .../source_facebook_marketing/spec.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/spec.json b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/spec.json index 1af177b11d7da..a196fbb89a698 100644 --- a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/spec.json +++ b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/spec.json @@ -26,6 +26,14 @@ "type": "boolean", "description": "Include data from deleted campaigns, ads, and adsets.", "default": "false" + }, + "insights_lookback_window": { + "type": "integer", + "title": "Insights Lookback Window", + "description": "The attribution window for the actions", + "minimum": 0, + "maximum": 28, + "default": 28 } } } From 6783dcf5c13503b7136e8791383b169a93f3e157 Mon Sep 17 00:00:00 2001 From: po3na4skld Date: Fri, 14 May 2021 10:48:30 +0300 Subject: [PATCH 2/6] lookback window field added to client --- .../source_facebook_marketing/client/api.py | 4 +- .../client/client.py | 53 ++++++++++++++++--- 2 files changed, 48 insertions(+), 9 deletions(-) diff --git a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/api.py b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/api.py index 72a601cdddb26..d7f6e9fa996d3 100644 --- a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/api.py +++ b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/api.py @@ -326,11 +326,11 @@ class AdsInsightAPI(IncrementalStreamAPI): level = "ad" action_attribution_windows = ALL_ACTION_ATTRIBUTION_WINDOWS time_increment = 1 - buffer_days = 28 - def __init__(self, api, start_date, breakdowns=None): + def __init__(self, api, start_date, breakdowns=None, buffer_days=28): super().__init__(api=api) self.start_date = start_date + self.buffer_days = buffer_days self._state = start_date self.breakdowns = breakdowns diff --git a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py index 94df60e74febf..53a205aec52b0 100644 --- a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py +++ b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py @@ -38,9 +38,17 @@ class Client(BaseClient): - def __init__(self, account_id: str, access_token: str, start_date: str, include_deleted: bool = False): + def __init__( + self, + account_id: str, + access_token: str, + start_date: str, + include_deleted: bool = False, + insights_lookback_window: int = 28 + ): self._account_id = account_id self._start_date = pendulum.parse(start_date) + self._insights_lookback_window = insights_lookback_window self._api = FacebookAdsApi.init(access_token=access_token) self._apis = { @@ -48,13 +56,44 @@ def __init__(self, account_id: str, access_token: str, start_date: str, include_ "adsets": AdSetsAPI(self, include_deleted=include_deleted), "ads": AdsAPI(self, include_deleted=include_deleted), "adcreatives": AdCreativeAPI(self), - "ads_insights": AdsInsightAPI(self, start_date=self._start_date), - "ads_insights_age_and_gender": AdsInsightAPI(self, start_date=self._start_date, breakdowns=["age", "gender"]), - "ads_insights_country": AdsInsightAPI(self, start_date=self._start_date, breakdowns=["country"]), - "ads_insights_region": AdsInsightAPI(self, start_date=self._start_date, breakdowns=["region"]), - "ads_insights_dma": AdsInsightAPI(self, start_date=self._start_date, breakdowns=["dma"]), + "ads_insights": AdsInsightAPI( + self, + start_date=self._start_date, + buffer_days=self._insights_lookback_window + ), + "ads_insights_age_and_gender": AdsInsightAPI( + self, + start_date=self._start_date, + breakdowns=["age", "gender"], + buffer_days=self._insights_lookback_window + ), + "ads_insights_country": AdsInsightAPI( + self, + start_date=self._start_date, + breakdowns=["country"], + buffer_days=self._insights_lookback_window + ), + "ads_insights_region": AdsInsightAPI( + self, + start_date=self._start_date, + breakdowns=["region"], + buffer_days=self._insights_lookback_window + ), + "ads_insights_dma": AdsInsightAPI( + self, + start_date=self._start_date, + breakdowns=["dma"], + buffer_days=self._insights_lookback_window + ), "ads_insights_platform_and_device": AdsInsightAPI( - self, start_date=self._start_date, breakdowns=["publisher_platform", "platform_position", "impression_device"] + self, + start_date=self._start_date, + breakdowns=[ + "publisher_platform", + "platform_position", + "impression_device" + ], + buffer_days=self._insights_lookback_window ), } super().__init__() From 54e8634f7e97afa27c47d5aae4b377b66d9abb86 Mon Sep 17 00:00:00 2001 From: po3na4skld Date: Fri, 14 May 2021 16:07:59 +0300 Subject: [PATCH 3/6] changes after gradlew --- .../source_facebook_marketing/client/client.py | 1 - 1 file changed, 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py index 53a205aec52b0..f9e57c86909c4 100644 --- a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py +++ b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py @@ -25,7 +25,6 @@ import pendulum as pendulum from base_python import BaseClient - # FIXME (Eugene K): register logger as standard python logger from base_python.entrypoint import logger from cached_property import cached_property From b8e782c497a41164757136b0f710b3c440881c50 Mon Sep 17 00:00:00 2001 From: po3na4skld Date: Tue, 18 May 2021 20:09:04 +0300 Subject: [PATCH 4/6] gradlew changes --- .../client/client.py | 42 ++++--------------- 1 file changed, 9 insertions(+), 33 deletions(-) diff --git a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py index f9e57c86909c4..fdc35ce5db01c 100644 --- a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py +++ b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/client/client.py @@ -25,6 +25,7 @@ import pendulum as pendulum from base_python import BaseClient + # FIXME (Eugene K): register logger as standard python logger from base_python.entrypoint import logger from cached_property import cached_property @@ -38,12 +39,7 @@ class Client(BaseClient): def __init__( - self, - account_id: str, - access_token: str, - start_date: str, - include_deleted: bool = False, - insights_lookback_window: int = 28 + self, account_id: str, access_token: str, start_date: str, include_deleted: bool = False, insights_lookback_window: int = 28 ): self._account_id = account_id self._start_date = pendulum.parse(start_date) @@ -55,44 +51,24 @@ def __init__( "adsets": AdSetsAPI(self, include_deleted=include_deleted), "ads": AdsAPI(self, include_deleted=include_deleted), "adcreatives": AdCreativeAPI(self), - "ads_insights": AdsInsightAPI( - self, - start_date=self._start_date, - buffer_days=self._insights_lookback_window - ), + "ads_insights": AdsInsightAPI(self, start_date=self._start_date, buffer_days=self._insights_lookback_window), "ads_insights_age_and_gender": AdsInsightAPI( - self, - start_date=self._start_date, - breakdowns=["age", "gender"], - buffer_days=self._insights_lookback_window + self, start_date=self._start_date, breakdowns=["age", "gender"], buffer_days=self._insights_lookback_window ), "ads_insights_country": AdsInsightAPI( - self, - start_date=self._start_date, - breakdowns=["country"], - buffer_days=self._insights_lookback_window + self, start_date=self._start_date, breakdowns=["country"], buffer_days=self._insights_lookback_window ), "ads_insights_region": AdsInsightAPI( - self, - start_date=self._start_date, - breakdowns=["region"], - buffer_days=self._insights_lookback_window + self, start_date=self._start_date, breakdowns=["region"], buffer_days=self._insights_lookback_window ), "ads_insights_dma": AdsInsightAPI( - self, - start_date=self._start_date, - breakdowns=["dma"], - buffer_days=self._insights_lookback_window + self, start_date=self._start_date, breakdowns=["dma"], buffer_days=self._insights_lookback_window ), "ads_insights_platform_and_device": AdsInsightAPI( self, start_date=self._start_date, - breakdowns=[ - "publisher_platform", - "platform_position", - "impression_device" - ], - buffer_days=self._insights_lookback_window + breakdowns=["publisher_platform", "platform_position", "impression_device"], + buffer_days=self._insights_lookback_window, ), } super().__init__() From 8de7dee2b3758fdd2b6030732720f3364b05c2e1 Mon Sep 17 00:00:00 2001 From: po3na4skld Date: Wed, 19 May 2021 15:28:27 +0300 Subject: [PATCH 5/6] gradlew changes --- docs/reference/api/generated-api-html/index.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/reference/api/generated-api-html/index.html b/docs/reference/api/generated-api-html/index.html index 0ff0a670d0756..f8080ab4bf9e5 100644 --- a/docs/reference/api/generated-api-html/index.html +++ b/docs/reference/api/generated-api-html/index.html @@ -2410,6 +2410,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -2518,6 +2519,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -2588,6 +2590,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -2601,6 +2604,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -2671,6 +2675,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -3918,6 +3923,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -3931,6 +3937,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -4070,6 +4077,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -4083,6 +4091,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -4165,6 +4174,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -4178,6 +4188,7 @@

Example data

"option" : "basic" }, "dbt" : { + "gitRepoBranch" : "gitRepoBranch", "dockerImage" : "dockerImage", "dbtArguments" : "dbtArguments", "gitRepoUrl" : "gitRepoUrl" @@ -5357,6 +5368,7 @@

OperatorDbt -
gitRepoUrl
+
gitRepoBranch (optional)
dockerImage (optional)
dbtArguments (optional)
From a3c70cdbe8f0c60701e6a9e3fc512412ad8c5136 Mon Sep 17 00:00:00 2001 From: po3na4skld Date: Thu, 20 May 2021 09:02:24 +0300 Subject: [PATCH 6/6] version bump --- .../e7778cfc-e97c-4458-9ecb-b4f2bba8946c.json | 2 +- .../init/src/main/resources/seed/source_definitions.yaml | 2 +- .../connectors/source-facebook-marketing/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e7778cfc-e97c-4458-9ecb-b4f2bba8946c.json b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e7778cfc-e97c-4458-9ecb-b4f2bba8946c.json index ef5f7d248a4ad..90cdf6e8efe2a 100644 --- a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e7778cfc-e97c-4458-9ecb-b4f2bba8946c.json +++ b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/e7778cfc-e97c-4458-9ecb-b4f2bba8946c.json @@ -2,7 +2,7 @@ "sourceDefinitionId": "e7778cfc-e97c-4458-9ecb-b4f2bba8946c", "name": "Facebook Marketing", "dockerRepository": "airbyte/source-facebook-marketing", - "dockerImageTag": "0.2.4", + "dockerImageTag": "0.2.5", "documentationUrl": "https://hub.docker.com/r/airbyte/source-facebook-marketing", "icon": "facebook.svg" } diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 8ad53cde19c36..4d541f1ad3a16 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -91,7 +91,7 @@ - sourceDefinitionId: e7778cfc-e97c-4458-9ecb-b4f2bba8946c name: Facebook Marketing dockerRepository: airbyte/source-facebook-marketing - dockerImageTag: 0.2.4 + dockerImageTag: 0.2.5 documentationUrl: https://hub.docker.com/r/airbyte/source-facebook-marketing icon: facebook.svg - sourceDefinitionId: 36c891d9-4bd9-43ac-bad2-10e12756272c diff --git a/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile b/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile index 64449692669ac..c64b07e25d8d7 100644 --- a/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile +++ b/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile @@ -12,5 +12,5 @@ COPY $CODE_PATH ./$CODE_PATH COPY setup.py ./ RUN pip install . -LABEL io.airbyte.version=0.2.4 +LABEL io.airbyte.version=0.2.5 LABEL io.airbyte.name=airbyte/source-facebook-marketing