Я новичок в Google AdWords API.
У меня 7 платформ на моей платформе Google AdWords, я пытаюсь запустить ACCOUNT_PERFORMANCE_REPORT, так как информация берется из файла googleads.yaml, я могу только добавьте туда 1 идентификатор учетной записи.
Чтобы получить клиента клиента и проанализировать его в списке, который я использую:
def get_google_ads_client():
credentials = google.oauth2.credentials.Credentials(
None,
refresh_token='xxxx',
client_id='xxxx',
client_secret='xxxx',
token_uri='https://accounts.google.com/o/oauth2/token')
credentials.refresh(google.auth.transport.requests.Request())
google_ads_client = google.ads.google_ads.client.GoogleAdsClient(
credentials=credentials,
developer_token='xxxx',
login_customer_id='xxxx'
)
return google_ads_client
def get_client_accounts():
client = get_google_ads_client()
ga_service = client.get_service('GoogleAdsService', version='v1')
query = 'SELECT customer_client.client_customer, customer_client.level FROM customer_client'
results = ga_service.search('xxxx', query=query)
account_list = []
try:
for row in results:
if (row.customer_client.level.value == 1):
customer_id = str(row.customer_client.client_customer.value).replace(
'customers/', '')
account_list.append(customer_id)
except google.ads.google_ads.errors.GoogleAdsException as ex:
print('Request with ID "%s" failed with status "%s" and includes the '
'following errors:' % (ex.request_id, ex.error.code().name))
for error in ex.failure.errors:
print('\tError with message "%s".' % error.message)
if error.location:
for field_path_element in error.location.field_path_elements:
print('\t\tOn field: %s' % field_path_element.field_name)
sys.exit(1)
return account_list
Чтобы получить отчет для 1 учетной записи, которую я использую:
def main(client):
# Initialize appropriate service.
report_downloader = client.GetReportDownloader(version='v201809')
# Create report query.
report_query = (adwords.ReportQueryBuilder()
.Select('AbsoluteTopImpressionPercentage', 'AllConversions', 'InvalidClickRate', 'Impressions')
.From('ACCOUNT_PERFORMANCE_REPORT')
.During('LAST_7_DAYS')
.Build())
# You can provide a file object to write the output to. For this
# demonstration we use sys.stdout to write the report to the screen.
report_downloader.DownloadReportWithAwql(
report_query, 'CSV', sys.stdout, skip_report_header=False,
skip_column_header=False, skip_report_summary=False,
include_zero_impressions=True)
if __name__ == '__main__':
# Initialize client object.
adwords_client = adwords.AdWordsClient.LoadFromStorage()
main(adwords_client)
Каким будет правильный способ продвижения вперед, чтобы загрузить отчет для всех учетных записей, а не тот, который назван в файле googleads.yaml
?
Спасибо за ваши предложения.