Code Monkey home page Code Monkey logo

tap-googleads's People

Contributors

jlloyd-widen avatar sebastianswms avatar visch avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

tap-googleads's Issues

Service Account

  • Had some issues with accounts expiring
  • Would like to add service accounts feature to this

400 Client Error: Bad Request for path: /customers:listAccessibleCustomers

Hi,

First of all, thanks for the tap! I've been trying to set it up and bumped into an issue fairly early on. I'm seeing singer_sdk.exceptions.FatalAPIError: 400 Client Error: Bad Request for path: /customers:listAccessibleCustomers.
In the API console, I can see the google.ads.googleads.v8.services.CustomerService.ListAccessibleCustomers requests erroring out at a 100% rate.

Mind you, I haven't had an AdWords tap setup previously, this is my first attempt and right now it seems you can't even enable the AdWords endpoints through the console anymore.

Below is a relevant section of the run, happy to provide more details.

2022-04-06T17:31:33.245485Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=tap-googleads v0.0.8, Meltano SDK v0.3.17) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.250424Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Skipping parse of env var settings... cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.252183Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Config validation passed with 0 errors and 0 warnings. cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.259158Z [info     ] time=2022-04-06 17:31:33 name=root level=INFO message=Operator '__else__=None' was not found. Unmapped streams will be included in output. cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.298158Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'campaign' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.299411Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'adgroups' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.300673Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'adgroupsperformance' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.301823Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'customer_hierarchystream' as child stream to 'accessible_customers' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.304356Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'campaign_performance' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.305435Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'campaign_performance_by_age_range_and_device' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.306853Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'campaign_performance_by_gender_and_device' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.309275Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'campaign_performance_by_location' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.312789Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'conversion_by_location' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.314891Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Added 'campaign_label' as child stream to 'customer_hierarchystream' cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.316696Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Beginning full_table sync of 'accessible_customers'... cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.319023Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=Tap has custom mapper. Using 1 provided map(s). cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.320395Z [debug    ] {"type": "SCHEMA", "stream": "accessible_customers", "schema": {"properties": {"resourceNames": {"items": {"type": ["string"]}, "type": ["array", "null"]}}, "type": "object"}, "key_properties": []} cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads (out) run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stdout
2022-04-06T17:31:33.490997Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=OAuth authorization attempt was successful. cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.733141Z [info     ] time=2022-04-06 17:31:33 name=tap-googleads level=INFO message=INFO METRIC: {'type': 'timer', 'metric': 'http_request_duration', 'value': 0.239989, 'tags': {'endpoint': '/customers:listAccessibleCustomers', 'http_status_code': 400, 'status': 'failed', 'url': '/v8/customers:listAccessibleCustomers'}} cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.772301Z [info     ] Traceback (most recent call last): cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.774294Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/bin/tap-googleads", line 8, in <module> cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.775389Z [info     ]     sys.exit(TapGoogleAds.cli()) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.777227Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/click/core.py", line 1130, in __call__ cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.779541Z [info     ]     return self.main(*args, **kwargs) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.782108Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/click/core.py", line 1055, in main cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.784585Z [info     ]     rv = self.invoke(ctx)      cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.786501Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/click/core.py", line 1404, in invoke cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.788280Z [info     ]     return ctx.invoke(self.callback, **ctx.params) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.789610Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/click/core.py", line 760, in invoke cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.791425Z [info     ]     return __callback(*args, **kwargs) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.792669Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/singer_sdk/tap_base.py", line 476, in cli cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.794325Z [info     ]     tap.sync_all()             cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.796105Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/singer_sdk/tap_base.py", line 345, in sync_all cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.797660Z [info     ]     stream.sync()              cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.799520Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/singer_sdk/streams/core.py", line 1010, in sync cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.802393Z [info     ]     self._sync_records(context) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.803761Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/singer_sdk/streams/core.py", line 937, in _sync_records cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.805264Z [info     ]     for record_result in self.get_records(current_context): cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.806816Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/tap_googleads/client.py", line 123, in get_records cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.808242Z [info     ]     for record in self.request_records(context): cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.809775Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/singer_sdk/streams/rest.py", line 293, in request_records cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.811444Z [info     ]     resp = decorated_request(prepared_request, context) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.813973Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/backoff/_sync.py", line 94, in retry cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.815616Z [info     ]     ret = target(*args, **kwargs) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.817097Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/singer_sdk/streams/rest.py", line 209, in _request cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.819078Z [info     ]     self.validate_response(response) cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.820978Z [info     ]   File "/project/.meltano/extractors/tap-googleads/venv/lib/python3.8/site-packages/tap_googleads/client.py", line 102, in validate_response cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.822722Z [info     ]     raise FatalAPIError(msg)   cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.824592Z [info     ] singer_sdk.exceptions.FatalAPIError: 400 Client Error: Bad Request for path: /customers:listAccessibleCustomers cmd_type=extractor job_id=2022-04-06T173122--tap-googleads--target-redshift name=tap-googleads run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:31:33.919382Z [info     ] time=2022-04-06 17:31:33 name=target_redshift level=INFO message=Getting catalog objects from table cache... cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.034463Z [info     ] Traceback (most recent call last): cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.039760Z [info     ]   File "/project/.meltano/loaders/target-redshift/venv/bin/target-redshift", line 8, in <module> cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.041302Z [info     ]     sys.exit(main())           cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.042714Z [info     ]   File "/project/.meltano/loaders/target-redshift/venv/lib/python3.8/site-packages/target_redshift/__init__.py", line 444, in main cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.044336Z [info     ]     table_cache = load_table_cache(config) cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.045726Z [info     ]   File "/project/.meltano/loaders/target-redshift/venv/lib/python3.8/site-packages/target_redshift/__init__.py", line 108, in load_table_cache cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.047039Z [info     ]     table_cache = db.get_table_columns( cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.048219Z [info     ]   File "/project/.meltano/loaders/target-redshift/venv/lib/python3.8/site-packages/target_redshift/db_sync.py", line 632, in get_table_columns cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.049778Z [info     ]     return self.query(sql)     cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.051377Z [info     ]   File "/project/.meltano/loaders/target-redshift/venv/lib/python3.8/site-packages/target_redshift/db_sync.py", line 333, in query cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.052934Z [info     ]     with self.open_connection() as connection: cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.054903Z [info     ]   File "/project/.meltano/loaders/target-redshift/venv/lib/python3.8/site-packages/target_redshift/db_sync.py", line 329, in open_connection cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.056490Z [info     ]     return psycopg2.connect(conn_string) cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.057939Z [info     ]   File "/project/.meltano/loaders/target-redshift/venv/lib/python3.8/site-packages/psycopg2/__init__.py", line 127, in connect cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.059401Z [info     ]     conn = _connect(dsn, connection_factory=connection_factory, **kwasync) cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.062110Z [info     ] psycopg2.OperationalError: could not connect to server: Connection refused cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.063313Z [info     ] 	Is the server running on host "reportiv.chy9qh3mxgx9.us-east-1.redshift.amazonaws.com" (52.0.140.187) and accepting cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.064663Z [info     ] 	TCP/IP connections on port 5439? cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.066115Z [info     ]                                cmd_type=loader job_id=2022-04-06T173122--tap-googleads--target-redshift name=target-redshift run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7 stdio=stderr
2022-04-06T17:32:50.211361Z [debug    ] Deleted configuration at /project/.meltano/run/elt/2022-04-06T173122--tap-googleads--target-redshift/aa915d62-7ead-4578-9e29-6481ff6c22f7/target.d87709ee-3f0d-4e09-a13b-056579b41edf.config.json
2022-04-06T17:32:50.215714Z [debug    ] Deleted configuration at /project/.meltano/run/elt/2022-04-06T173122--tap-googleads--target-redshift/aa915d62-7ead-4578-9e29-6481ff6c22f7/tap.42ea2ef2-7198-4888-8e81-172376955ec1.config.json
2022-04-06T17:32:50.216957Z [error    ] Extraction failed              code=1 job_id=2022-04-06T173122--tap-googleads--target-redshift message=singer_sdk.exceptions.FatalAPIError: 400 Client Error: Bad Request for path: /customers:listAccessibleCustomers name=meltano run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7
2022-04-06T17:32:50.218226Z [error    ] Loading failed                 code=1 job_id=2022-04-06T173122--tap-googleads--target-redshift message=(see above) name=meltano run_id=aa915d62-7ead-4578-9e29-6481ff6c22f7
2022-04-06T17:32:50.223251Z [debug    ] ELT could not be completed: Extractor and loader failed.

API Version update to 14

Update to version 14

At least these things are broken right now:

  1. Unrecognized field in the query
response.json() {'error': {'code': 400, 'message': 'Request contains an invalid argument.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.ads.googleads.v13.errors.GoogleAdsFailure', 'errors': [{'errorCode': {'queryError': 'UNRECOGNIZED_FIELD'}, 'message': "Unrecognized field in the query: 'ad_group.explorer_auto_optimizer_setting.opt_in'."}], 'requestId': 's8EJceWZuYmQ1QZcy7mk-w'}]}}:
tap_googleads/client.py

2.listaccesiblecustomers doesn't exist

Auto add _sdc_primary_key to schema

#28

Each schema file needs to add the _sdc_primary_key field. We could auto add this, or at least write a test to be sure this was added to the schema for the stream. Not a huge deal, but a nice quality of life thing!

primary_key incorrect - causes failures in target-postgres, and target-snowflake (probably more)

As the tap stands there are a couple of issues when using target-postgres, both variant Meltano and Transferwise.


1. Using target-postgres causing errors.

Meltano variant of target-postgres results in a psycopg2 error of UndefinedColumn, as it unpackages the json objects with different names to the expected.
Transferwise variant errors out with key_properties field is required.

The work around in my use case was to remove primary_keys all together (to have it work with multiple target-postgres variants), but realise that isn't a great solution, and not suitable in general.

target-postgres Transferwise error

target-postgres |   File "/home/dw/Documents/hahaha/tap-googleads/.meltano/loaders/target-postgres/venv/lib/python3.8/site-packages/target_postgres/__init__.py", line 209, in persist_lines
target-postgres |     raise Exception("key_properties field is required")
target-postgres | Exception: key_properties field is required
meltano         | Loading failed (1): Exception: key_properties field is required

target-postgres Meltano error

target-postgres |     return super(DictCursor, self).execute(query, vars)
target-postgres | psycopg2.errors.UndefinedColumn: column "customer_client.id" named in key does not exist
target-postgres | LINE 1: ..., "customer_client__time_zone" character varying, PRIMARY KE...
target-postgres |                                                              ^
target-postgres | 
meltano         | Loading failed (1): (see above)
meltano         | ELT could not be completed: Loader failed


2. If you do delete the primary keys, then use the Meltano variant of target-postgres you only get your last synced customer data.

Using the Meltano variant seems to make it so each time a customer's data is looped and added to the postgres table, that the table is just completely re-created, so you only ever get the last customers data. Also when the tap loops through the customers, all the postgres tables are created over and over for each customer.

I didn't end up looking too much into this issue, and it could be a more of a loader issue rather than tap, but I've never run into the loader behaving like this before so thought I mention it.

For us, we use the Meltano variant of target-postgres for some other reasons by default, so my work around was just to sync a single customer, no looping, no overwriting. Again more a fix for our use case than in general.

Would be awesome to hear some thoughts/ideas on these issues, not sure if anyone has seen a target-postgres creating tables over and over? I'm guessing its some quirk with the child streams?

Add Conversions by Location Stream

SELECT campaign_criterion.location.geo_target_constant, campaign.name, campaign_criterion.bid_modifier, segments.date, segments.conversion_action_category, metrics.conversions FROM location_view WHERE segments.date DURING LAST_7_DAYS AND campaign_criterion.status != 'REMOVED'

Add a license

Was looking through my forks and happened to notice there wasn't a license.

Implement State

This is a new feature request. It would be good to be able to control the number of days pulled from Google Ads in certain taps. Most of time this is controlled in the Google Ads query with something like WHERE segments.date DURING LAST_7_DAYS. Changing to a segments.date BETWEEN '2019-01-01' AND '2019-01-31' strategy controlled by the configuration parameters start_date and end_date would be ideal.

State file contains duplicate entries for partition

ValueError: State file contains duplicate entries for partition: {state_partition_context}. cmd_type=extractor job_id=googleads2jsonl_3 name=tap-googleads run_id=2fc9a784-47be-4217-99a5-13318a70c330 stdio=stderr 2022-03-22T19:39:15.932107Z [info ] Matching state values were:

To replicate

  1. Run meltano elt tap-googleads target-jsonl --job_id=abcd
  2. Run meltano elt tap-googleads target-jsonl --job_id=abcd

You'll see the failure on run 2.

Roadmap

  • CI
  • POC (0.0.1)
  • POC (0.1.1) - 5 more streams
  • 1.0.0 Release - All Streams, with Discovery and everything
  • Rate Limiting
  • Error Handling
  • Testing with actual data
  • Be sure documentation is clear (Should happen along the way)
  • Add MIT License
  • Release 1.0.0 to PyPi
  • Submit to Meltano Hub

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.