我试图从谷歌广告API获取活动报告。但是,在尝试使用MCC获取数据时出错:
代码:
import sys,os
from google.ads.google_ads.client import GoogleAdsClient
from google.ads.google_ads.errors import GoogleAdsException
def get_data(client, customer_id):
ga_service = client.get_service("GoogleAdsService", version="v6")
query = """
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.average_cpc,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
"""
# Issues a search request using streaming.
response = ga_service.search_stream(customer_id, query=query)
try:
for batch in response:
for row in batch.results:
print(
row
)
except GoogleAdsException as ex:
print(
f'Request with ID "{ex.request_id}" failed with status '
f'"{ex.error.code().name}" and includes the following errors:'
)
for error in ex.failure.errors:
print(f'\tError with message "{error.message}".')
if error.location:
for field_path_element in error.location.field_path_elements:
print(f"\t\tOn field: {field_path_element.field_name}")
sys.exit(1)
if __name__ == "__main__":
# get client object with oauth2
credentials = {'developer_token': "xxxxxxxxxxxxxxx",
'refresh_token': "xxxxxxxxxxxxxxxx",
'client_id': "xxxxxxxxxxxxxxx",
'client_secret': "xxxxxxxxxxxxxxxx"
}
google_ads_client = GoogleAdsClient.load_from_dict(credentials)
get_data(google_ads_client, 'xxxxxxxxx')
Wehn使用MCC客户端ID运行代码:
get_data(google_ads_client, 'MANAGER(MCC)_CLIENT_ID')
我遇到了错误1:
请求:ClientCustomerId:xxxxxxxxx,主机:googleads。古格里皮斯。com:443,方法:/google。广告。v6。服务。请求流/请求流管理器不能为True,请求流管理器不能为True,请求流管理器不能为searchdss。要检索指标,请对manager帐户下的每个客户机帐户发出单独的请求。
我认为,解决方案是为帐户本身设置一个不同的ClientCustomerId,而不是MCC。于是我这样做了,并使用direct帐户的客户端id再次运行代码,结果发现另一个错误:
Wehn使用帐户客户端ID运行代码:
get_data(google_ads_client, 'ACCOUNT_CLIENT_ID')
我得到了错误2:
请求:ClientCustomerId:xxxxxxx,主机:googleads。古格里皮斯。com:443,方法:/google。广告。v6。服务。GoogleAddService/SearchStream,请求ID:XXXXXXXXX,IsFault:True,FaultMessage:用户没有访问客户的权限。注意:如果要访问客户,必须在“登录客户id”标题中设置经理的客户id。看见https://developers.google.com/google-ads/api/docs/concepts/call-structure#cid
这个错误本质上是说插入经理的客户id,我已经插入了,并且得到了错误1(!)。
我错过了什么?
解决了的:
应使用帐户客户端id启动该功能:
get_data(google_ads_client, 'ACCOUNT_CLIENT_ID')
并且,一个键值对应该被添加到凭据判决(MCC客户端ID):
credentials = {'developer_token': "xxxxxxxxxxxxxxx",
'refresh_token': "xxxxxxxxxxxxxxxx",
'client_id': "xxxxxxxxxxxxxxx",
'client_secret': "xxxxxxxxxxxxxxxx",
// Add this line below
'login_customer_id': 'mcc_client_id'
}
管理帐户数据 若要使用此机能,可能需先更新系统软件。 可确认或变更进入PlayStation®Network时建立的帐户数据。 仅能于已登入PlayStation®Network时操作。请进入(PlayStation®Netrowk)并选择(管理账户)。 可确认/变更的项目 账户管理 可确认/变更帐户数据。 信用卡数据 登入ID(电子邮件地址) 密码 姓名 地址 个人造型 个人资料 通知邮件设定
问题内容: 我需要能够从Go应用程序中管理Windows本地用户帐户,并且似乎没有使用CGo,就没有本机绑定。 我的最初搜索使人们说,最好使用“ exec.Command”运行“ net user”命令,但是在解析响应代码时,这似乎很混乱且不可靠。 我发现可以在netapi32.dll库中找到处理此类事件的函数,但是由于Go本身不支持Windows头文件,因此调用这些函数似乎并不容易。 以http
我正在使用Azure AD和Office 365 API在我的项目中执行OAuth。我的问题是我只能授权管理员帐户(如“user@project.onmicrosoft.com”)并获取数据,但非管理员常规帐户(如“user@hotmail.com”)不能。 我如何实现OAuth2 获取授权代码: https://login.microsoftonline.com/common/oauth2/au
问题内容: 我正在尝试使用Flask访问用户代理,但是我找不到有关它的文档,或者它没有告诉我。 问题答案: 您还可以使用包含以下属性的对象,这些属性是基于useragent字符串创建的: 平台(Windows,Linux,MacOS等) 浏览器(chrome,firefox,msie等) 版 语言 字串()
我的问题是:不使用powershell命令是否可以获得azure active directory租户id? 我找到了这两个博客,在这个帮助下,我已经能够从PowerShell获得承租人ID和订阅ID。这是找回房客的唯一方法吗? 在Windows PowerShell中获取Windows Azure Active Directory承租人ID 对PowerShell的Windows Azure A