问题标签 [bing-ads-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
395 浏览

azure-active-directory - API 身份验证错误 - 为 code 参数提供的值无效。代码已过期

我们的应用程序本月停止授权新用户连接到 Bing Ads。我们尝试调试,并了解到我们需要升级到 Microsoft 标识平台端点。我们的旧应用程序使用 login.live.com,我们一直收到错误“远程服务器返回错误:(400) 错误请求。”

我们在 portal.azure.com 中注册了一个新应用程序,从 powershell 运行快速入门,并使用测试本机应用程序成功检索了刷新令牌。作为下一步,我们

  1. 在 portal.azure.com 中使用新的 clientID 创建了一个新应用程序。将身份验证类型分配为 Web 而不是 Native,并使用我们的应用程序重定向 URI

  2. 在 Quick Start 测试文件 Get-Tokens-Production.ps1 中,我们替换了 clientID 和 redirectURI,并添加了 clientsecret 变量

  3. 使用新值运行快速启动 powershell 脚本

...现在我们不断收到这条消息,上面写着“代码已过期”。我正在将 code=parameter 从浏览器复制到控制台,就像我们在本地应用程序测试中所做的那样,我可能需要 15 秒来复制和粘贴。有人可以帮助解释我们如何测试并获得有效的刷新令牌吗?

Invoke-WebRequest : {"error":"invalid_grant","error_description":"AADSTS70000: 为 'code' 参数提供的值无效。代码已过期。\r\n跟踪 ID: 348801cc-9dce-4147- aded-d52910f93000\r\n相关 ID: 2438635c-7cd6-4a3f-9cdf-d3206db0409b\r\n时间戳: 2019-12-04 19:47:05Z","error_codes":[70000],"timestamp":"2019- 12-04 19:47:05Z","trace_id":"348801cc-9dce-4147-aded-d52910f93000","correlation_id":"2438635c-7cd6-4a3f-9cdf-d3206db0409b","e rror_uri":"https: //login.microsoftonline.com/error?code=70000"}

0 投票
1 回答
79 浏览

python - CampaignPerformanceReportRequest 能否返回所有广告系列?

尝试使用 Bing Ads API 复制我在每小时报告中看到的内容。

在此处输入图像描述

不幸的是,即使我通过了正确的身份验证,我返回的数据也仅适用于一个广告系列(一个每天有 1 次展示的广告系列)。我可以很好地看到 UI 中的数据,但通过 API 以同一用户身份进行身份验证,我似乎只能取回较小的数据集。我正在使用https://github.com/BingAds/BingAds-Python-SDK并将我的代码基于示例:

我对这些广告数据 API 不是很熟悉,因此任何见解都会有所帮助,即使您没有解决方案。

0 投票
0 回答
266 浏览

xml - 使用 Bing Ads SOAP API 时如何调试 202 HTTP 状态代码?

我正在尝试使用 Microsoft Bing Ads 的报告 API以编程方式收集广告效果数据,例如点击次数、支出等。下面,我描述了所采取的步骤。

问题是,按照这些步骤后,我没有得到预期的 SOAP 响应。相反,我得到一个带有HTTP 202 Accepted状态的空身体。

我正在使用 Postman 来测试服务,我的最终目标是httr在 R 中做同样的事情。

验证

我遵循了他们的OAuth 2.0 身份验证流程,我有:

  • 注册我的应用程序(使用开发者帐户)
  • 请求用户同意(通过广告帐户)
  • 生成访问令牌和刷新令牌

每次我点击 API 时,我都会使用 Refresh Token 生成一个新的 Access Token,因为 Access Token 是短暂的。

提出请求

该文档描述了遵循异步方法的报告服务操作。首先我们需要使用SubmitGenerateReport 向 Reporting Service 发出请求。这将返回一个ResponseRequestId,然后我们可以使用它来重复轮询服务,PollGenerateReport直到我们得到请求的报告作为响应。

提交生成报告

SubmitGenerateReport必须采用 SOAP XML 格式,如此所述。以下是我为我的用例生成的文档,查看文档中提供的示例。

生成此 XML 后,我试图通过使用 Postman 来访问他们的Reporting Service Endopoint (Production)。

邮递员配置

我正在关注这篇关于如何使用 Postman 发出 SOAP 请求的文章。

  • 我正在发出 POST 请求:https://reporting.api.bingads.microsoft.com/Api/Advertiser/Reporting/V13/ReportingService.svc以上述 SOAP XML 作为正文
  • 已将正文编码设置为Raw
  • 已按照文章中的建议添加了Content-Type = text/xml标题(将其设置为application/xml,返回505 Internal Server Error

根据文档,我应该得到一个 SOAP 响应:

然后,ResponseRequestId我将使用该服务来轮询实际报告的服务。

但是,当我发布这个时,我得到一个HTTP 202 Accepted响应和一个空的正文。邮递员的回应意味着:

请求已被接受处理,但处理尚未完成。该请求最终可能会或可能不会被执行,因为当处理实际发生时它可能会被禁止。

我已经多次重做身份验证步骤,并且通常确信那里没有问题。这让我对如何进行调试没有方向。当我在删除后尝试进行 POST 时,比如说身份验证令牌或客户帐户 ID,请求仍然被接受并返回 202。

我以前从未使用过 SOAP API,所以我可能没有遵循正确的流程。任何帮助或指示将不胜感激。

谢谢!

0 投票
0 回答
14 浏览

javascript - 使用 Bing 脚本报告设备类型

我正在尝试使用 Bing Ads 脚本进行设备细分。

我正在尝试执行以下操作

但是我似乎无法获得设备。我发现以下内容:https ://docs.microsoft.com/en-us/advertising/ad-insight-service/devicecriterion?view=bingads-13但它不起作用。

任何人都知道我怎样才能使这项工作?

0 投票
1 回答
874 浏览

azure-active-directory - 如何从 Microsoft Bing Ads API 获取数据

我正在尝试从我的公司获得 Bing 广告支出。根据 Microsoft 文档,我了解到必须使用 Microsoft Azure 门户、get developer_tokenclient_idtenant_idclient_secret和访问/刷新令牌来下载csv包含我想要的数据的文件。

所以,这就是我所做的:

  1. 我收到了来自我公司的邀请,让微软在这个电子邮件地址上做广告: abc@myfirm.fr,并且我已经生成了我的开发者令牌。

  2. 使用这个电子邮件地址,我在 Microsoft Azure 门户上创建了一个 Web 应用程序,它允许所有用户王。获取client_id,tenant_id并生成client_secret.

  3. 我选择的重定向 URL 是http://localhost(根据文档但不确定这是选择的好 URL)。

  4. 使用 Postman,我已尝试使用此端点: https ://login.microsoftonline.com/common/oauth2/v2.0/authorize 以及 OAuth 2.0 身份验证获取我的访问令牌所需的参数(先前获得的)。没有成功。

问题就在这里。

当我请求访问令牌时,会打开一个新的浏览器窗口,并要求提供一个用于进行身份验证的电子邮件地址。我正在使用我的电子邮件地址abc@myfirm.fr并且我收到authentication completed了 Postman,但我收到了回复正文access_token: invalid

我帐户的角色是超级管理员。

因此,我尝试使用专业的 Microsoft Azure 帐户进行身份验证,这次我收到了浏览器Invalid redirect url

我还尝试使用不同的电子邮件地址重新开始,例如我的个人电子邮件地址或 Microsoft Advertising 帐户创建者的电子邮件地址,但我contact your system Admin在浏览器中收到错误消息。

我还尝试过使用文档中给出的 Python SDK 项目,并带有错误消息。

我一定是忘记或误解了什么。

我们是否应该在 Microsoft Advertising、Microsoft Azure 以及获取访问令牌时使用相同的电子邮件地址(或相同的帐户)?

您是否需要付费并订阅 Azure 订阅?(已经完成但没有成功)

提前谢谢,对不起我的英语。

编辑:

感谢您的回复。完整的请求是:https ://login.microsoftonline.com/common/oauth2/v2.0/authorize ,带有以下参数:

-类型:OAuth 2.0

- 标头前缀:承载

-授权类型:授权码

-回调地址:https://localhost

-Auth URL:https ://login.microsoftonline.com/{my-tenant_id}/oauth2/v2.0/authorize

-访问令牌 URL:https ://login.microsoftonline.com/{my-tenant_id}/oauth2/v2.0/token

-我的客户ID

-我的客户秘密

-scope:https ://ads.microsoft.com/ads.manage或者也使用https://graph.microsoft.com/User.Read进行测试

-状态:无

-客户端身份验证:在正文中发送客户端凭据

给我一个 access_token 但是当我点击使用令牌并发送请求时,我没有得到刷新令牌

0 投票
0 回答
94 浏览

bing - Bing Ads 刷新令牌 - 不会自动刷新

目前,我们正在使用刷新令牌来访问 Bing Ads API。我们的应用程序预计将完全自动化,但我们无法预测刷新令牌何时到期,这真的很烦人。(如this other thread所述)

目前,我们只知道刷新令牌只有在我们的应用程序崩溃时才过期,因此我们手动生成一个新的刷新令牌。这对我们不利,因为我们无法承受这样的停机时间。那么也许有一种方法可以生成永不过期的刷新令牌或自动生成新的刷新令牌,而无需人工交互?

0 投票
0 回答
75 浏览

amp-html - AMP 上的 Bing 标签

我有一个基于 AMP 的网站,我正在尝试在其上安装 Bing Ads 通用事件跟踪。

我收到的代码是:

我想知道是否可以在 AMP 网站上添加此内容?

0 投票
0 回答
28 浏览

http - 是否可以将 HTTP 用于 Bing Ads Report API?

我想使用 HTTP 调用与 Bing Ads Report API 交互,但我找不到这样做的端点。LinkedIn 也是微软的一个产品,它提供了这种可能性,所以我认为 Bing Ads 是可能的。

0 投票
1 回答
83 浏览

python - 有没有办法在 Airflow 运营商中调用 BingAds API?

我需要从 Airflow 下载我公司在 Bing Ads 上的营销活动。我已经看到 Python 中有一个 Bing Ads SDK,它可能是构建自定义运算符的一个很好的起点,该运算符将对 Bing Ads 进行 API 调用,并使用 s3 挂钩将生成的 csv 上传到 S3。我之前使用 Google Ads 客户端库将广告系列下载为 PythonOperator 中的 Python 对象列表,但这个库比 BingAds 更直观。

不幸的是,Airflow 中没有 BingAds 挂钩,所以我必须完全依赖这个 Python 库并将其包装在 PythonOperator 中。过去是否有人构建了类似的解决方案,可以为我指明正确的方向?

最好的,

0 投票
1 回答
27 浏览

bing-ads-api - Bing Ads API,如何找到 CustomerAccountId

我正在尝试使用SubmitGenerateReport生成AdGroupPerformanceReport,看起来我需要将 aCustomerId和 a添加CustomerAccountId到标题中,以及其他端点所需的DeveloperTokenand 。AuthenticationToken

我很确定从 getUser 端点返回的结果CustomerId是一样CustomerId的,但是什么是 aCustomerAccountId以及在哪里可以找到它?

或者我在看错误的东西,我的请求的问题不在于它缺少CustomerAccountId?