import argparse
import sys
import pandas as pd
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException
customer_id = '*****'
client = GoogleAdsClient.load_from_storage("ga.yaml")
ga_service = client.get_service("GoogleAdsService")
customer_service = client.get_service("CustomerService")
resource_name = customer_service.customer_path(customer_id)
customer = customer_service.get_customer(resource_name=resource_name)
ga_service = client.get_service("GoogleAdsService")
query = """
SELECT
customer.descriptive_name,
campaign.status,
ad_group.status,
ad_group_ad.ad.final_urls,
ad_group_ad.ad.tracking_url_template
FROM ad_group_ad
WHERE segments.date DURING TODAY AND campaign.status = 'ENABLED' AND ad_group.status = 'ENABLED' """
search_request = client.get_type("SearchGoogleAdsRequest")
search_request.customer_id = customer_id
search_request.query = query
results = ga_service.search(request=search_request)
df1 = []
for row in results:
campaign = row.campaign
ad_group = row.ad_group
ad_group_ad = row.ad_group_ad
print(
customer.descriptive_name,
campaign.status,
ad_group.status,
ad_group_ad.ad.final_urls,
ad_group_ad.ad.tracking_url_template
)
df1.append(df2)
df3 = pd.concat(df1, ignore_index=True)
1) Why do I get proto.marshal.collections.repeated.Repeated type? * In the Adwords API it was a list.