谷歌 DFA 报告 - 错误请求 (400) 配置文件 ID 无效



我正在尝试使用双击广告商API(DFA)。我已经探索了"试用"并通过谷歌开发人员控制台测试了 API,它按预期工作。我能够捕获授权令牌并执行获取和发布请求(通过浏览器和编程方式)。但是,当我尝试使用 donet api 2.4 以编程方式执行完全相同的操作时,生成的身份验证令牌不允许我执行任何请求,它始终返回 HTTP 400 错误请求,原因为无效配置文件 ID。

我不确定 client_secrets.json 是否正确,但我使用有权访问报告的同一电子邮件帐户创建了它。

{
  "installed": {
    "client_id": "<client_id>.apps.googleusercontent.com",
    "project_id": "<project_id>",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "<secret>",
    "redirect_uris": [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost" ]
  }
}

我使用了下面的凭据代码:

private static readonly IEnumerable<string> scopes = new[] {
  DfareportingService.Scope.Dfareporting,
  DfareportingService.Scope.Dfatrafficking
};    
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.Load(stream).Secrets,
                      scopes,
                        "dfa-user", CancellationToken.None,
                        new FileDataStore("DfaReporting.Samples")).Result;

生成的令牌为我提供了以下信息:

{
 "issued_to": "<client_id>.apps.googleusercontent.com",
 "audience": "<client_id>.apps.googleusercontent.com",
 "scope": "https://www.googleapis.com/auth/dfareporting https://www.googleapis.com/auth/dfatrafficking",
 "expires_in": 3073,
 "access_type": "offline"
}

我上面提到的库可以在GitHub上找到:https://github.com/googleads/googleads-dfa-reporting-samples/tree/master/dotnet/v2.4

我错过了什么?

首先,请确保您已正确设置。

  1. 您必须拥有 DCM 帐户。有关注册信息,请参阅广告商/代理机构。
  2. 您的 DCM 帐户必须启用 API 访问。请联系您的 DoubleClick 代表或 DCM 支持团队寻求帮助。(dcm-support@google.com)
  3. 您必须具有有权访问此帐户的用户配置文件。让您的 DCM 帐户管理员创建与此帐户关联的用户配置文件。
在我看来,您尝试用于

身份验证的人无法访问您尝试请求的配置文件。

回应评论:

如果您使用的是 .net 客户端库,我不明白为什么您会在评论时手动调用以下请求

https://www.googleapis.com/dfareporting/v2.4/userprofiles?access_token=<access token> 

我也不明白如果您使用的是 .Net 客户端库,并且当您不发送配置文件时,以下请求可能会返回无效的配置文件 ID。 如果用户无权访问任何配置文件,则它可能不返回任何配置文件。

service.UserProfiles.List().Execute();

如果您发送的配置文件 ID 无效,这可能会返回无效的配置文件 ID。

service.UserProfiles.Get(profileId).Execute();

运行报表

为了能够运行报表,用户必须有权访问该配置文件和报表。 您的错误消息意味着用户无权访问该配置文件,您需要使用具有访问权限的用户登录或授予用户访问权限。

service.Reports.Run(profileId,reportId).Execute();

相关内容

  • 没有找到相关文章

最新更新