gpt4 book ai didi

google-analytics - 尝试将网络媒体资源链接到 AdWords (Google Ads) 帐户时出现权限不足 (403)

转载 作者:行者123 更新时间:2023-12-02 11:08:27 29 4
gpt4 key购买 nike

我尝试寻找解决方案来解决使用 Analytics Management API 时相对常见的问题,但不幸的是,没有一个答案有帮助。

我开始通过一个服务帐户使用 Analytics Management API,该服务帐户对我的 Analytics 帐户具有完全访问权限。它被授予帐户级别的编辑、协作、读取和分析以及管理用户权限,这意味着它们也在媒体资源级别和 View 级别继承。

我可以成功获取我有权访问的帐户,并插入新的网络资源。

但是,我无法将我的 Google Ads 帐户关联到任何网络媒体资源。每当我调用 API 时,都会收到 403 错误:

{"error":{"errors":[{"domain":"global","reason":"insufficientPermissions","message":"User does not have sufficient permissions for this web property."}],"code":403,"message":"User does not have sufficient permissions for this web property."}}

我检查了很多次,对于每个级别(帐户、属性甚至 View )我的服务帐户拥有哪些权限,总是有编辑、协作、读取和分析以及管理用户。

以下是我尝试关联 Google Ads 帐户的方法:

<?php
require_once __DIR__ . '/vendor/autoload.php';
$KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';
$client = new Google_Client();
$client->setApplicationName("Hello Analytics Management API");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes([
'https://www.googleapis.com/auth/plus.login',
'https://www.googleapis.com/auth/analytics',
'https://www.googleapis.com/auth/analytics.edit',
'https://www.googleapis.com/auth/analytics.provision',
'https://www.googleapis.com/auth/analytics.manage.users',
'https://www.googleapis.com/auth/analytics.readonly'
]);
$analytics = new Google_Service_Analytics($client);
$adWordsAccount = new Google_Service_Analytics_AdWordsAccount();
$adWordsAccount->setCustomerId("XXX-XXX-XXXX");
$adWordsLink = new Google_Service_Analytics_EntityAdWordsLink();
$adWordsLink->setName("TestLink");
$adWordsLink->setAdWordsAccounts([$adWordsAccount]);
try {
$analytics->management_webPropertyAdWordsLinks->insert(
999999999, // Analytics Account ID
"UA-999999999-1", // Tracking ID
$adWordsLink
);
} catch (apiServiceException $e) {
print 'There was an Analytics API service error '
. $e->getCode() . ':' . $e->getMessage();

} catch (apiException $e) {
print 'There was a general API error '
. $e->getCode() . ':' . $e->getMessage();
}

我知道我使用的范围肯定超出了我的需要,但仅使用 https://www.googleapis.com/auth/analytics.edit 会得到相同的结果。

下面是我使用的 service-account-credentials.json(使用我通过 Google API 控制台生成的 key ):

{
"type": "service_account",
"project_id": "...-230314",
"private_key_id": "<PRIVATE_KEY_ID>",
"private_key": "<PRIVATE_KEY>",
"client_email": "dev-...@ga-....iam.gserviceaccount.com",
"client_id": "<CLIENT_ID>",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dev-...%40...-230314.iam.gserviceaccount.com"
}

预先感谢您的支持!

最佳答案

为了能够链接 Google Analytics(分析)和 Google Ads,执行链接的帐户必须是 Google Analytics 网络媒体资源中的编辑者(显然您已经这样做了),而且还需要是 Google Ads 帐户中的管理员.

不是您的个人/公司 Google 帐户,在本例中是服务帐户本身。您在凭据的 client_email 属性中包含的电子邮件地址。

引用号:Google Help Center

警告:

我不能 100% 确定您能够做到这一点。 Google Ads 可能需要用户确认才能将其添加到帐户中,而您无权访问服务帐户的邮箱可能会导致您无法执行该确认。同样,我对此也不确定,所以我会尝试,但如果您无法将该用户添加到 Google Ads 帐户,则必须找到另一种方法来使用您自己的电子邮件而不是电子邮件来验证 API 调用。服务帐户。

关于google-analytics - 尝试将网络媒体资源链接到 AdWords (Google Ads) 帐户时出现权限不足 (403),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54596058/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com