Comments (5)
From that stack trace it doesn't look like you're actually using this client library. Can you provide some kind of code to reproduce that shows how you're invoking the call through our library?
from google-api-ads-ruby.
@mcloonan This is how we're invoking the call through the ruby library:
report_utils = adwords_authentication.report_utils(:v201809)
Log.info("Downloading report for #{@adwords_authentication.customer_id} on #{interval.start_date}")
csv_payload = report_utils.download_report(interval.report_definition)
interval.report_definition
is
{:selector=>
{:fields=>
["AdFormat", "AdGroupId", "AdNetworkType1", "CampaignId", "ClickType", "CreativeId", "CriteriaId", "CriteriaParameters", "Date", "Device", "GclId", "Page", "Slot"],
:date_range=>{:min=>"20210211", :max=>"20210211"}},
:report_name=>"AdWords Performance Report",
:report_type=>"CLICK_PERFORMANCE_REPORT",
:download_format=>"CSV",
:date_range_type=>"CUSTOM_DATE"}
from google-api-ads-ruby.
Production stack trace:
[2021-02-18 00:08:41,537] {pod_launcher.py:136} INFO - Caused by:
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - Zlib::BufError: buffer error
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - org/jruby/ext/zlib/ZStream.java:135:in `finish'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/httpi-2.4.2/lib/httpi/adapter/net_http.rb:70:in `perform'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/httpi-2.4.2/lib/httpi/adapter/net_http.rb:47:in `block in request'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/httpi-2.4.2/lib/httpi/adapter/net_http.rb:87:in `block in do_request'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/httpi-2.4.2/lib/httpi/adapter/net_http.rb:85:in `do_request'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/httpi-2.4.2/lib/httpi/adapter/net_http.rb:38:in `request'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/httpi-2.4.2/lib/httpi.rb:161:in `request'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/httpi-2.4.2/lib/httpi.rb:133:in `post'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/google-ads-common-1.0.2/lib/ads_common/http.rb:59:in `post_response'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/google-adwords-api-1.4.0/lib/adwords_api/report_utils.rb:231:in `make_adhoc_request'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/google-adwords-api-1.4.0/lib/adwords_api/report_utils.rb:209:in `get_report_response'
[2021-02-18 00:08:41,538] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/google-adwords-api-1.4.0/lib/adwords_api/report_utils.rb:56:in `download_report'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/extractors/adwords/adwords_page_fetcher.rb:17:in `fetch'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/api/payload_enumerator.rb:23:in `block in build'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/api/payload_processor.rb:29:in `run'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/extractors/adwords/report_extractor.rb:39:in `block in extract'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/extractors/adwords/report_extractor.rb:17:in `block in extract'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/extractors/adwords/report_extractor.rb:16:in `extract'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/extractor.rb:385:in `block in extract_pipeline'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/statsd-instrument-2.1.0/lib/statsd/instrument.rb:284:in `block in measure'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/statsd-instrument-2.1.0/lib/statsd/instrument.rb:53:in `duration'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/statsd-instrument-2.1.0/lib/statsd/instrument.rb:284:in `measure'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/extractor.rb:384:in `extract_pipeline'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /app/lib/longboat/extractor.rb:568:in `block in run'
[2021-02-18 00:08:41,539] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/statsd-instrument-2.1.0/lib/statsd/instrument.rb:284:in `block in measure'
[2021-02-18 00:08:41,540] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/statsd-instrument-2.1.0/lib/statsd/instrument.rb:53:in `duration'
[2021-02-18 00:08:41,540] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/statsd-instrument-2.1.0/lib/statsd/instrument.rb:284:in `measure'
[2021-02-18 00:08:41,540] {pod_launcher.py:136} INFO - /app/lib/longboat/extractor.rb:565:in `run'
[2021-02-18 00:08:41,540] {pod_launcher.py:136} INFO - /app/lib/longboat.rb:125:in `run_job'
[2021-02-18 00:08:41,540] {pod_launcher.py:136} INFO - /app/lib/longboat.rb:89:in `run_with_manifest'
[2021-02-18 00:08:41,540] {pod_launcher.py:136} INFO - /app/Rakefile:36:in `block in <main>'
[2021-02-18 00:08:41,540] {pod_launcher.py:136} INFO - /artifacts/jruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<main>'
from google-api-ads-ruby.
It looks like it's some kind of issue with JRuby's interaction with HTTP requests. Neither our HTTP library nor our library directly uses "zlib" so I'm not really familiar with what might be going wrong here.
I think the easiest way to move forward would actually be to use the new Google Ads API client library instead of this one: https://github.com/googleads/google-ads-ruby
The new API is nearly feature complete with the AdWords API (including this use case) and is fully compatible with this client library (meaning you can use both in the same process without issue during your migration). Additionally, the AdWords API will be shut down at some point in the future, while we plan to support the Google Ads API going forward. So any work done to get this working on the AdWords API would have to be duplicated in the future to move to the Google Ads API.
If you do switch to that library, you could use a query on the click_view
resource to fetch equivalent information, and since we're actively developing that library any issues would be a higher priority on our side.
from google-api-ads-ruby.
Hello, I've taken over this issue on our side. The stack trace as you mention is not anything to do with the Google Adwords library, but rather is a "side effect" of limitations with JRuby and how our application was processing the result of the API call.
I have worked around this in our application. You can close this issue.
Thanks
from google-api-ads-ruby.
Related Issues (20)
- Support for incremental oauth
- ReportableType is unexpected when creating CustomTargetingKey HOT 1
- Creating Callout Extensions in Adwords HOT 1
- Occurred error after entering verification code
- How to perform authentication client side? HOT 2
- Got "Unable to parse response body" from Ruby ad manager api HOT 3
- File permissions issue in google-dfp-api-1.11.0 and google-dfp-api-1.12.0 gems HOT 6
- `download_report_as_stream` ignores HTTP status code HOT 1
- GoogleAdsSavon::SOAP::InvalidResponseError Unable to parse response body HOT 2
- process GoogleAdsService.Search() never ends HOT 1
- Support Rails 6.1 HOT 5
- Will this library be sunset with Google AdWords API? HOT 1
- google-dfp-api gem 1.15.0 not compatible with Rails 5.2 HOT 1
- How to install google-adwords-api for version of Ruby lower than 2.2.2 HOT 1
- Default branch is now main
- My dreams officiall pakistan
- Out-Of-Band EOL
- Passing stateful information in initial authorization request? HOT 1
- 2.4.0 uses v202305 API version of Google Ad Manager, not v202308 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from google-api-ads-ruby.