-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨Source Google Ads: Add possibility to sync all connected accounts #33707
✨Source Google Ads: Add possibility to sync all connected accounts #33707
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
Warning 🚨 Connector code freeze is in effect until 2024-01-02. This PR is changing connector code. Please contact the current OC engineers if you want to merge this change to master. |
Before Merging a Connector Pull RequestWow! What a great pull request you have here! 🎉 To merge this PR, ensure the following has been done/considered for each connector added or updated:
If the checklist is complete, but the CI check is failing,
|
@tolik0 could you please let me know if this is a bug fix or a new feature?
|
@alafanechere, this update is essentially a new feature crucial for a specific user scenario. Currently, our Google Ads connector syncs data exclusively from preselected accounts. The user who requested this feature manages over 100 connected customers, making it challenging to manually identify and input all the necessary IDs. The tree-like structure of the customer accounts further compounds this complexity. Therefore, this feature automates the process, enabling efficient synchronization across all connected customer accounts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As this is quite a substantial logic change, addressing a single customer issue, I feel it'd be safer to:
- Not merge this during the code freeze
- Publish a pre-release version
- Coordinate with the support team to make the customer create a new connection using this specific version and confirm their problem is addressed.
airbyte-integrations/connectors/source-google-ads/unit_tests/test_source.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-google-ads/source_google_ads/google_ads.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-google-ads/source_google_ads/google_ads.py
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-google-ads/source_google_ads/google_ads.py
Show resolved
Hide resolved
airbyte-integrations/connectors/source-google-ads/source_google_ads/source.py
Show resolved
Hide resolved
airbyte-integrations/connectors/source-google-ads/source_google_ads/source.py
Show resolved
Hide resolved
tz = Timezone(time_zone_name) if time_zone_name else "local" | ||
for account in accounts: | ||
time_zone_name = account.get(f"{table_name}.time_zone") | ||
tz = Timezone(time_zone_name) if time_zone_name else "local" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here tz
is either a string a or Timezone
, for type consistency can we make sure tz
type is invariant?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
airbyte-integrations/connectors/source-google-ads/source_google_ads/models.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your changes and replies. LGTM.
a0b6a3a
to
99ea4f6
Compare
e2689e4
to
a204c4c
Compare
Hi @nazariyme. Thank you for bringing this to our attention. I have created a PR to address the issue and will let you know as soon as it's merged. I'm very sorry for any inconvenience this has caused. |
I fixed it by removing that pending customer ID as it was not used by anyone. All works fine for us now but it worth fixing in the source itself. @tolik0 thanks for a quick response and the fix you prepared |
Hi @tolik0 |
@bachik-24 Hi, what do you mean by "Connection does not take a single line"? |
@tolik0 |
@bachik-24 Can you please share your |
|
@bachik-24 It looks like you should add the |
@tolik0 This helped, thank you very much! I think this should be indicated separately in the commit that now this parameter is worth specifying. |
@bachik-24 This change is described in the PR description and the docs, but actually, you don't need to modify your config manually, as it is updated using config migrations when you run connector with the old config: https://github.com/airbytehq/airbyte/blob/66ce98fdc4eacd6a3d69210630e3b3b9e0762ba9/airbyte-integrations/connectors/source-google-ads/source_google_ads/config_migrations.py |
@tolik0 thank you for your work! |
What
Implemented Account Synchronization: This update introduces the capability to sync all connected accounts, resolving the issue: https://github.com/airbytehq/oncall/issues/3741.
Removed
login_customer_id
Property: To simplify configuration, thelogin_customer_id
property has been removed from the spec. Previously, this property was essential for accessing client accounts under a manager account. The Google Ads connector automatically retrieves this information while requesting connected customers.Introduced
customer_status_filter
Property: A new property,customer_status_filter
, has been added. This feature enables users to filter out inactive accounts to speed up the sync.How
The
customer_id
property has been revised to be optional. In this new setup, the connector initially requests data from all accessible accounts and then proceeds to iterate over the child customers associated with these accounts. This enhancement significantly streamlines the configuration process, allowing for the aggregation of multiple customers into a single connection. Moreover, this update ensures minimal configuration, requiring only authentication. This simplification greatly reduces setup complexity and enhances user convenience.