Some questions about download performance report via google ads api restful endpoint

47 views
Skip to first unread message

Daniel Chen

unread,
Jun 21, 2021, 8:28:06 PM6/21/21
to AdWords API and Google Ads API Forum
Hi there,
I have some questions when trying to download performance report via google ads api, restful endpoint: https://googleads.googleapis.com/v8/customers/$clientCustomerId/googleAds:searchStream
My query is like bellow:
SELECT
segments.date,
campaign.id,
ad_group.id,
ad_group_criterion.criterion_id,
segments.device,
segments.ad_network_type,
metrics.clicks,
metrics.cost_micros,
metrics.impressions,
ad_group_criterion.effective_cpc_bid_micros,
ad_group_criterion.position_estimates.first_page_cpc_micros,
ad_group_criterion.quality_info.quality_score,
metrics.search_impression_share,
metrics.search_exact_match_impression_share,
metrics.search_rank_lost_impression_share,
metrics.top_impression_percentage,
metrics.absolute_top_impression_percentage,
metrics.search_top_impression_share,
metrics.search_absolute_top_impression_share
FROM keyword_view
WHERE segments.date BETWEEN 'START_DATE' AND 'END_DATE'
AND campaign.id in (CAMPAIGN_IDS)
AND metrics.impressions > 0


The return result is a json string like this:
[
{
"results": [
{
"campaign": {
"resourceName": "customers/2786116170/campaigns/1053569228",
"id": "1053569228"
},
"adGroup": {
"resourceName": "customers/2786116170/adGroups/53369497842",
"id": "53369497842"
},
"metrics": {
"clicks": "0",
"searchAbsoluteTopImpressionShare": 0.625,
"searchExactMatchImpressionShare": 0.875,
"searchImpressionShare": 0.875,
"searchRankLostImpressionShare": 0.125,
"searchTopImpressionShare": 0.875,
"topImpressionPercentage": 1,
"costMicros": "0",
"absoluteTopImpressionPercentage": 0.7142857142857143,
"impressions": "7"
},
"adGroupCriterion": {
"resourceName": "customers/2786116170/adGroupCriteria/53369497842~1298530505",
"positionEstimates": {
"firstPageCpcMicros": "180000"
},
"criterionId": "1298530505",
"effectiveCpcBidMicros": "1000000"
},
"keywordView": {
"resourceName": "customers/2786116170/keywordViews/53369497842~1298530505"
},
"segments": {
"device": "DESKTOP",
"adNetworkType": "SEARCH",
"date": "2020-10-11"
}
},
{
"campaign": {
"resourceName": "customers/2786116170/campaigns/1053569228",
"id": "1053569228"
},
"adGroup": {
"resourceName": "customers/2786116170/adGroups/53369497842",
"id": "53369497842"
},
"metrics": {
"clicks": "3",
"searchAbsoluteTopImpressionShare": 0.83333333333333337,
"searchExactMatchImpressionShare": 1,
"searchImpressionShare": 1,
"searchRankLostImpressionShare": 0,
"searchTopImpressionShare": 1,
"topImpressionPercentage": 1,
"costMicros": "2090000",
"absoluteTopImpressionPercentage": 0.83333333333333337,
"impressions": "6"
},
"adGroupCriterion": {
"resourceName": "customers/2786116170/adGroupCriteria/53369497842~296824961709",
"positionEstimates": {
"firstPageCpcMicros": "140000"
},
"criterionId": "296824961709",
"effectiveCpcBidMicros": "690000"
},
"keywordView": {
"resourceName": "customers/2786116170/keywordViews/53369497842~296824961709"
},
"segments": {
"device": "DESKTOP",
"adNetworkType": "SEARCH",
"date": "2020-10-11"
}
}
],
"fieldMask": "segments.date,campaign.id,adGroup.id,adGroupCriterion.criterionId,segments.device,segments.adNetworkType,metrics.clicks,metrics.costMicros,metrics.impressions,adGroupCriterion.effectiveCpcBidMicros,adGroupCriterion.positionEstimates.firstPageCpcMicros,adGroupCriterion.qualityInfo.qualityScore,metrics.searchImpressionShare,metrics.searchExactMatchImpressionShare,metrics.searchRankLostImpressionShare,metrics.topImpressionPercentage,metrics.absoluteTopImpressionPercentage,metrics.searchTopImpressionShare,metrics.searchAbsoluteTopImpressionShare",
"requestId": "8UVf4B6uosuLVrb5t9Fk8A"
}
]

My questions are:
1) Can we get a result as xml or csv format? if yes, how to pass the parameter?
2) In the json result, some values are not string, this made it hard to parser it.
searchAbsoluteTopImpressionShare": 0.625,
3) The json node have multiple levels, like adGroupCriterion.positionEstimates.effectiveCpcBidMicros, can we get a normalized json node which has only 2 levels. I have tried using "AS" to rename the query columns, but it does not work.

Google Ads API Forum Advisor

unread,
Jun 23, 2021, 11:27:05 AM6/23/21
to adwor...@googlegroups.com
Hi Daniel,

Thank you for reaching out to Google Ads API support. Download formats states "The API does not support formatting or file output". There are examples there of outputting client side the desired format. There are standard libraries available in any popular language to convert output from JSON to any popular format, the non string format and multi level JSON can easily be taken care of with those libraries. Can you state your use case, particularly your design constraints?

Regards,

Google Logo
Aryeh Baker
Google Ads API Team
 

 

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