相关文章推荐
被表白的日记本  ·  python openpyxl ...·  4 月前    · 
温暖的鸵鸟  ·  Java 8 から Java 11 ...·  1 年前    · 
重感情的西装  ·  pandas.df.pivot()_Jenn ...·  1 年前    · 

使用 批量服务 ,可以在后台异步下载和上传市场活动设置。 建议使用批量服务来管理大规模数据,尤其是在需要跨帐户中的多个广告组或市场活动添加或更新广告和关键字时。 对于某些实体,还可以下载出价建议和质量分数数据。 无论同一文件中的其他记录是否包含错误,都可以成功上传每个记录。 有关用于下载和上传文件的架构的信息,包括有关哪些实体、出价建议和质量分数数据可用的详细信息,请参阅 批量文件架构

可以随时添加) (行) 和字段 (列,不应依赖于批量下载或批量上传结果文件中的记录或字段顺序。 同样,除非参考文档中另有说明,否则不应依赖于每个字段中返回的一组固定值。

如果使用 .NET 语言、Java 或 Python,则应使用 必应广告 API 客户端库 。 .NET、Java 和 Python SDK 提取下面所述的低级别详细信息。 例如,你可以对 BulkServiceManager 类使用一种方法,而不是调用 DownloadCampaignsByAccountIds GetBulkDownloadStatus 来下载文件。 有关对 SDK 使用批量下载和上传的详细信息,请参阅 批量Service Manager

若要下载帐户的市场活动数据,请调用 DownloadCampaignsByAccountIds 操作。 若要下载特定市场活动的数据,请调用 DownloadCampaignsByCampaignIds 操作。

下载批量文件

可以请求市场活动的所有数据,或者仅请求自上次下载市场活动数据以来已更改的数据。 对于任一下载操作,下面概述了请求设置和下载工作流。

对于下载请求操作,必须使用相同的用户凭据, ( DownloadCampaignsByAccountIds DownloadCampaignsByCampaignIds ) 和 GetBulkDownloadStatus 轮询操作。

  • 设置请求的 DataScope 元素,并指定除了实体数据外,是否包括出价建议或质量评分数据。 有关可能值的列表,请参阅 DataScope 值集。

  • 将请求的 DownloadFileType 元素设置为下载文件格式选择 Csv Tsv

    下载的 Csv Tsv 文件将采用 ZIP 或 GZIP 压缩,具体取决于指定的 CompressionType 。 如果未指定 CompressionType ,则 ZIP 为默认值。

  • 设置请求的 Entities 元素以包括市场活动、广告组、广告和关键字 (keyword) 实体。 可以选择在下载中包含其他实体,例如否定关键字和目标。 有关可以请求的实体列表,请参阅 DownloadEntity 值集。

  • 将请求的 LastSyncTimeInUTC 元素设置为上一次下载的时间戳,以便仅请求自上次下载以来已更新或删除的那些实体。

    如果这是你第一次请求下载指定的实体,请将请求的 LastSyncTimeInUTC 元素设置为 NULL 以下载所有可用的实体。

  • 使用 DownloadCampaignsByAccountIds DownloadCampaignsByCampaignIds 操作提交下载请求。

  • 下载请求返回传递给 GetBulkDownloadStatus 操作的标识符。 在循环中调用 GetBulkDownloadStatus 操作,直到下载完成或失败。 下载完成所需的时间取决于许多变量,例如请求的活动数和队列中已有的请求数。 由于这些变量,使用的轮询间隔可能会有所不同。 从提交下载请求开始,有两天的时间下载文件。 如果在此期限内未成功下载文件,则会从下载站点中删除该文件,并且需要再次调用其中一个下载操作。

    当 GetBulkDownloadStatus 操作成功完成时,它将返回下载文件的 URL。 使用 URL 在本地复制下载文件。 必须在 GetBulkDownloadStatus 操作返回 “成功” 状态代码后的五分钟内使用该 URL。 如果未在此时间段内开始下载,则需要再次调用 GetBulkDownloadStatus 以获取新 URL。

  • 下载文件以 zip 格式压缩,因此必须解压缩文件才能访问数据。 有关用于下载文件的架构的信息,请参阅 批量文件架构

    下载最佳做法

    请遵循最佳做法,确保为自己和所有 Microsoft Advertising 客户端公平使用。

    虽然确切的并发下载和上传限制可能会更改,但已提交的挂起请求数是有限的。 如果观察到 4204 BulkServiceNoMoreCallsPermittedForTheTimePeriod 错误,则可以在等待最多 15 分钟后重新提交请求,具体取决于提交的请求的频率和大小。 有关详细信息,请参阅 批量 API 限制

  • 仅请求所需的批量下载实体。 可以随时添加) (行) 和字段 (列,不应依赖于批量下载或批量上传结果文件中的记录或字段顺序。

  • 仅执行一次完整下载。 此后,执行增量下载。 将 LastSyncTimeInUTC 设置为上次下载的时间戳。 下载文件包含 帐户 记录的 SyncTime 列中下载的时间戳。 每次执行完全下载没有优势,并且会降低每个人的性能,包括你的。

  • 按合理的间隔轮询下载。 你比任何人都更了解你的数据。 如果下载的关键字远远少于 100 万的帐户,请考虑以 15 到 20 秒的间隔进行轮询。 如果帐户包含大约 100 万个关键字,请考虑在等待五分钟后每隔一分钟轮询一次。 对于具有大约 400 万个关键字的帐户,请考虑在等待 10 分钟后每隔一分钟轮询一次。

  • 如果帐户包含超过 400 万个关键字,请调用 DownloadCampaignsByCampaignIds 操作。 使用包含 400 多万个关键字的帐户调用 DownloadCampaignsByAccountIds 操作将失败。

  • 你可能希望在 DownloadCampaignsByCampaignIds 请求中包含更少的市场活动。 使用包含超过 800 万个关键字的帐户调用 DownloadCampaignsByCampaignIds 操作将失败。 指定每次调用的市场活动次数较少的请求通常比指定允许的最大数量的呼叫完成时间早。

    可以使用 HTTP POST 将批量上传文件提交到批量服务提供的 URL。

    生产环境中上传的文件大小限制为 100MB,最多为 400 万行。 对于 沙盒 ,限制为 20K 行。

    有关应用于上传文件的架构的信息,请参阅 批量文件架构

    上传批量文件

    下面是请求设置和上传工作流的概述。

    必须在 GetBulkUploadUrl 、HTTP POST 和 GetBulkUploadStatus 工作流中使用相同的用户凭据。

  • GetBulkUploadUrl 请求的 AccountId 元素设置为与要上传的数据对应的帐户标识符。

  • 设置 GetBulkUploadUrl 请求的 ResponseMode 元素,以指定服务是应返回错误及其相应数据,还是仅返回结果文件中的错误。 有关详细信息,请参阅 ResponseMode

  • 使用返回的 UploadUrl GetBulkUploadUrl 响应通过 HTTP POST 提交批量上传文件。 内容类型必须为 multipart/form-data 。 UTF-8 文件必须包含 BOM) (字节顺序标记。 ZIP 压缩上传应包含一个格式为 Csv Tsv 的 文件。 ZIP 文件的结构必须正确,包括中央目录记录的末尾。

    不使用 HTTP 标准授权标头。 若要进行身份验证,必须添加和设置 HTTP 客户端的 Microsoft Advertising 自定义标头元素,包括 DeveloperToken CustomerId CustomerAccountId 标头。 还必须通过 AuthenticationToken 标头元素设置用户凭据。 有关详细信息,请参阅 使用 OAuth 进行身份验证 API 凭据的使用位置

    必须在 GetBulkUploadUrl 、HTTP POST 和 GetBulkUploadStatus 工作流中使用相同的用户凭据。

    以下是示例。

    POST <UploadUrl> HTTP/1.1
    AuthenticationToken: <AuthenticationToken>
    DeveloperToken: <DeveloperToken>
    CustomerId: <CustomerId>
    AccountId: <AccountId>
    Content-Type: multipart/form-data;
    
  • 检查 HTTP 响应状态代码。 如果 HTTP 响应状态代码为 200,则表示 Microsoft Advertising 已成功收到该文件。 如果 HTTP 响应状态代码为 401,则身份验证失败,例如 AuthenticationTokenDeveloperToken 无效。 如果 HTTP 响应状态代码为 400,则还应在 3220 - 3227 范围内检查必应广告 API 操作错误代码的响应流。

    下面是一个示例错误响应消息,指出 URL 已用于上传批量文件。

    HTTP/1.1 400 Bad Request
    Cache-Control: private
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/8.0
    X-AspNetMvc-Version: 3.0
    X-AspNet-Version: 4.0.30319
    X-Powered-By: ASP.NET
    Date: Tue, 12 Jan 2016 17:07:23 GMT
    Content-Length: 224
    {"TrackingId":"16bd93cc-22fb-4d3c-94be-25adefd06fae","RequestId":"26c3fbf6-3e24-4569-ada3-d4e8b3d0aecc","Code":3224,"ErrorCode":"BulkServiceUrlAlreadyUsedForUpload","Message":"The URL has already been used for file upload."}
                  GetBulkUploadUrl 响应还包括传递给 GetBulkUploadStatus 操作的 RequestId。 上传处于挂起状态时,可以在循环中调用 GetBulkUploadStatus 操作,直到上传完成或失败。 从提交上传请求开始,有 15 分钟的时间下载上传结果文件。 如果在此期限内未成功下载文件,则会从下载站点中删除该文件,并且可能无法检索该文件。 如果错过了此机会时段,可以调用下载操作之一来获取最新的实体数据。

    当 GetBulkUploadStatus 操作成功完成时,它将返回上传结果文件的 URL。 使用 URL 在本地复制结果文件。 该 URL 必须在 GetBulkUploadStatus 操作返回 Completed 状态响应字符串后 15 分钟内使用。 如果未在此时间段内开始下载,则需要再次调用 GetBulkUploadStatus 以获取新 URL。

    上传结果文件的格式将为 CsvTsv,并且将与您提交以供上传的文件格式匹配。

    上传最佳做法

    请遵循最佳做法,确保为自己和所有 Microsoft Advertising 客户端公平使用。

    虽然确切的并发下载和上传限制可能会更改,但已提交的挂起请求数是有限的。 如果观察到 4204 BulkServiceNoMoreCallsPermittedForTheTimePeriod 错误,则可以在等待最多 15 分钟后重新提交请求,具体取决于提交的请求的频率和大小。 有关详细信息,请参阅 批量 API 限制

  • 大型文件可能会降低上传性能。 这是可选的,建议压缩文件以上传。 如果已压缩,则必须使用相应的扩展名将其格式设置为 ZIP。 生产环境中上传的文件大小限制为 100MB,最多为 400 万行。 对于 沙盒 ,限制为 20K 行。 如果可以将每个客户的并发上传数限制在 5 或 6 以下,请考虑拆分文件,而不是接近文件大小限制。

  • 将并发上传限制为每个客户 5 或 6 个,以并行上传文件。 在每个线程上等待,直到处理上一个文件,然后可以重复使用该线程来上传另一个文件。 例如,一个线程可以上传文件,在上传状态为“已完成”、“已完成”或“失败”后,该线程可以上传另一个文件。

  • 仅上传要添加或更新的实体和字段。 如果提供,将忽略只读字段,例如投标建议和质量分数数据。

  • 为每个文件上传一个实体类型,以最大程度地提高性能。 有一些例外,例如,在创建新的市场活动、广告和关键字时,可以更高效地将它们与 参考键一起上传。 另一个示例是,如果仅更新 10 个市场活动、500 个广告和 800 个关键字,则可以将它们包含在一次上传中,而不是按类型拆分上传。

  • 考虑是否需要在上传结果文件中请求错误和结果 (ResponseMode = ErrorsAndResults) ,或者仅 (ResponseMode = ErrorsOnly) 即可满足这些错误。 考虑是否应将结果与本地数据同步。 例如,如果要更新实体,则可能只需要知道是否发生了任何错误,在这种情况下,可以在 GetBulkUploadUrl 请求中指定 ResponseMode = ErrorsOnly。 如果要添加新实体,则可以在 GetBulkUploadUrl 请求中指定 ResponseMode = ErrorsAndResults 以接收生成的实体标识符。

  • 对于部分重试尝试,如果只有一部分记录导致错误,请不要上传整个文件。 仅上传要重试的记录。

  • 在上传状态为“已完成”、“已完成”或“失败”之前,请勿重试。 如果偶然的性能不符合预期,请等待结果。

  • 按合理的间隔轮询上传结果。 最初,每上传 10000 行,应等待一分钟。 在初始等待时间过后,请考虑每隔一分钟轮询一次。

    批量服务参考
    必应广告 API Web 服务地址

  •