I am using Google Ads API SDK for Python. I want to get some Ads data and put them into a Dataframe to transform a bit. I made a call with the code below:
client = GoogleAdsClient.load_from_storage("config.yaml") customer_id = '<customer_id>' ga_service = client.get_service("GoogleAdsService") query = """ SELECT campaign.id, campaign.name, customer.id FROM campaign """ response = ga_service.search_stream(customer_id=customer_id, query=query) for batch in response: for row in batch.results: print(row) df = pd.DataFrame(row) print(df)
Here is the response I receive:
customer { resource_name: "customers/<customer-id>" id: <customer-id> } campaign { resource_name: "customers/<customer-id>/campaigns/<campaign-id>" name: "Test_campaign_1" id: <campaign-id> } Traceback (most recent call last): File "c:\Users\User\main.py", line 36, in <module> print(dict(row)) TypeError: 'GoogleAdsRow' object is not iterable
I tried using google.protobuf.json_format to convert the result into json/dict format with the below code
from google.protobuf.json_format import MessageToJson response = ga_service.search_stream(customer_id=customer_id, query=query) for batch in response: for row in batch.results: print(row) jsonobj = MessageToJson(row)
But I got the below error message:
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site-packages\proto\message.py", line 605, in __getattr__ raise AttributeError(str(ex)) AttributeError: 'DESCRIPTOR'
Could you please help me with this? Thank you.