Extending Example by metrics.conversions breaks request

41 views
Skip to first unread message

Developer

unread,
May 23, 2019, 5:04:11 PM5/23/19
to AdWords API and Google Ads API Forum
Hello,

we're running version 1.3.0 of the new ads API and I have been able to run the example query in this link. However, when I try to modify the query and add metrics.conversion I run into a strange error.

Unknown error (0) Error: Call to a member function jsonByteSize() on float in /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php:1687
Stack trace:
#0 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1828): Google\Protobuf\Internal\Message->fieldDataOnlyJsonByteSize(Object(Google\Protobuf\Internal\FieldDescriptor), 0)
#1 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1936): Google\Protobuf\Internal\Message->fieldJsonByteSize(Object(Google\Protobuf\Internal\FieldDescriptor))
#2 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1687): Google\Protobuf\Internal\Message->jsonByteSize()
#3 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1828): Google\Protobuf\Internal\Message->fieldDataOnlyJsonByteSize(Object(Google\Protobuf\Internal\FieldDescriptor), Object(Google\Ads\GoogleAds\V1\Common\Metrics))
#4 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1936): Google\Protobuf\Internal\Message->fieldJsonByteSize(Object(Google\Protobuf\Internal\FieldDescriptor))
#5 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1687): Google\Protobuf\Internal\Message->jsonByteSize()
#6 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1818): Google\Protobuf\Internal\Message->fieldDataOnlyJsonByteSize(Object(Google\Protobuf\Internal\FieldDescriptor), Object(Google\Ads\GoogleAds\V1\Services\GoogleAdsRow))
#7 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1936): Google\Protobuf\Internal\Message->fieldJsonByteSize(Object(Google\Protobuf\Internal\FieldDescriptor))
#8 /data/home/conrad/www/adwords.winlocal.de/vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php(1491): Google\Protobuf\Internal\Message->jsonByteSize()
#9 /data/home/conrad/www/adwords.winlocal.de/vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/Lib/V1/LogMessageFormatter.php(127): Google\Protobuf\Internal\Message->serializeToJsonString()
#10 /data/home/conrad/www/adwords.winlocal.de/vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/Lib/V1/GoogleAdsUnaryCallLogger.php(93): Google\Ads\GoogleAds\Lib\V1\LogMessageFormatter->formatDetail(Array, Array, 'googleads.googl...')
#11 /data/home/conrad/www/adwords.winlocal.de/vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/Lib/V1/GoogleAdsLoggingUnaryCall.php(60): Google\Ads\GoogleAds\Lib\V1\GoogleAdsUnaryCallLogger->logDetails(Array, Array)
#12 /data/home/conrad/www/adwords.winlocal.de/vendor/google/gax/src/Transport/GrpcTransport.php(242): Google\Ads\GoogleAds\Lib\V1\GoogleAdsLoggingUnaryCall->wait()
#13 /data/home/conrad/www/adwords.winlocal.de/vendor/guzzlehttp/promises/src/Promise.php(246): Google\ApiCore\Transport\GrpcTransport->Google\ApiCore\Transport\{closure}(true)
#14 /data/home/conrad/www/adwords.winlocal.de/vendor/guzzlehttp/promises/src/Promise.php(223): GuzzleHttp\Promise\Promise->invokeWaitFn()
#15 /data/home/conrad/www/adwords.winlocal.de/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending()
#16 /data/home/conrad/www/adwords.winlocal.de/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList()
#17 /data/home/conrad/www/adwords.winlocal.de/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()
#18 /data/home/conrad/www/adwords.winlocal.de/vendor/google/gax/src/GapicClientTrait.php(591): GuzzleHttp\Promise\Promise->wait()
#19 /data/home/conrad/www/adwords.winlocal.de/vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V1/Services/Gapic/GoogleAdsServiceGapicClient.php(268): Google\Ads\GoogleAds\V1\Services\Gapic\GoogleAdsServiceGapicClient->getPagedListResponse('Search', Array, 'Google\\Ads\\Goog...', Object(Google\Ads\GoogleAds\V1\Services\SearchGoogleAdsRequest))
#20 /data/home/conrad/www/adwords.winlocal.de/app/components/AdwordsClientComponent.php(152): Google\Ads\GoogleAds\V1\Services\Gapic\GoogleAdsServiceGapicClient->search(1680026166, 'SELECT campaign...', Array)

Final query sent is:

$query =
"SELECT campaign.id, "
. "ad_group_criterion.criterion_id, "
. "ad_group_criterion.keyword.text, "
. "ad_group_criterion.keyword.match_type, "
. "metrics.impressions, "
. "metrics.all_conversions, "
. "metrics.clicks, "
. "metrics.cost_micros "
. "FROM keyword_view "
. "WHERE segments.date DURING LAST_7_DAYS "
. "AND campaign.advertising_channel_type = 'SEARCH' "
. "AND ad_group.status = 'ENABLED' "
. "AND ad_group_criterion.status IN ('ENABLED', 'PAUSED') "
// Limits to the 50 keywords with the most impressions in the date range.
. "ORDER BY metrics.impressions DESC "
. "LIMIT 50";

Thank you for helping.

Google Ads API Forum Advisor Prod

unread,
May 24, 2019, 1:50:56 AM5/24/19
to adwor...@googlegroups.com
Hi,

Thanks for reaching out.

I tried running the same query on my Java client library. However, I did not encounter an error on my end and was able to pull the report. This could be an issue with the PHP client library. With that said, I suggest you open your issue to the PHP GitHub Issue tracker as the client library owners are better equipped in answering your concerns.

Regards,
Dannison
Google Ads API Team

ref:_00D1U1174p._5001UAqSzR:ref
Reply all
Reply to author
Forward
0 new messages