Google Maps Platform 和移动性结算指南

在生产环境中实现新的 Google 地图项目之前,您需要确保设置正确无误,以便为您使用的各项产品支付正确的费用。本文档将介绍一些方面,以确保您拥有 (i) 透明的账单结算流程(以便在生成账单之前验证使用情况)和 (ii) 正确的项目设置(以确保您可以使用我们的产品)。

虽然这应该是一个相对简单的过程,但 Google 地图合作伙伴可以与您合作,确保您的项目正确迁移。

概念

在本部分中,我们希望确保您了解有关 Google 地图结算和可能存在的不同设置的基本信息。在很多情况下,这并无对错之分,具体取决于您想要实现的结果类型。

在本文档中,我们会大量提及您的 Google Cloud 项目。这是因为您可以通过该应用使用 Google 地图产品。这意味着,本文档中介绍的配置是在您的 Google Cloud 项目中进行的。

结算账号

目前,每家使用 Google 地图产品的公司都有一个关联的 Google Cloud 项目。此项目必须已配置结算账号。结算账号负责累计所有 Google 地图使用量,并根据这些使用量每月创建账单。

对于移动,系统会预配一个特殊的结算账号。此结算账号仅适用于与移动出行相关的用例,例如:共享出行、配送和物流。

一个结算账号可以由多个 Google Cloud 项目共用,也可以仅由一个项目使用。

指向同一结算账号的单个项目:

  • 特定用例(例如移动用例)
  • 单独的账单
  • 折扣是根据单个项目的量计算的

多个项目指向同一结算账号:

  • 相同的用例
  • 通过汇总使用量来享受折扣层级
  • 单个账单

如需详细了解结算账号和其他相关信息,请点击此链接

如上所述,一个结算账号可以指向多个项目。如果您有多个项目,则应确定哪些项目将使用我们的移动出行服务,并将其指向一个移动出行结算账号。与没有关联的移动出行用例的项目应继续指向您目前使用的常规 Google Maps Platform 结算账号。如需获得移动出行结算账号,您必须与 Google 签订移动出行交易协议,或通过合作伙伴签订此类协议。下方显示了结算账号在整个架构中的位置以及可能的不同设置:

可能的结算账号设置
可能的结算账号设置

Cloud 资源、结算账号和账单生成

说到价格,Google Maps Platform 提供不同层级的折扣,在某些情况下,您可以通过 Google 地图合作伙伴或直接与 Google 联系来获取折扣。这些层级基于使用量,因此您使用我们的产品越多,付费越少(折扣会单独应用于每个 SKU)。我们的结算系统会根据您用于调用我们产品的凭据来识别您的项目,对于某些移动出行 API,此凭据可以是 API 密钥或服务账号:

API 密钥

Google Maps Platform API 使用 API 密钥进行身份验证。Google 会根据此 API 密钥识别相应 Google Cloud 项目的结算账号,并在该账号中记录消耗情况。

Geocoding API 发出请求的示例

https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJeRpOeF67j4AR9ydy_PIzPuM&key=YOUR_API_KEY

JWT

某些 API 要求网址中包含 Google Cloud 项目 ID,并使用 JWT 进行身份验证。因此,请务必确保正确的系统使用正确的身份验证方法,以确保正常结算。

Fleet Engine API 发出请求的示例

curl -X GET \ https://fleetengine.googleapis.com/v1/providers/project_id/deliveryVehicles/vehicle-1234 \
  -H 'authorization: Bearer eyJ0eXAiOi...' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
    "lastLocation": {
        "location": {
            "latitude": 37.432,
            "longitude": -122.094
        },
        "updateTime": "2022-11-13T17:55:00Z"
    }
}'

费用

在 Google Maps Platform 上,费用是根据 API 请求量计算的。对于移动出行服务,我们会根据可结算的移动出行交易量(即成功完成的行程或任务 [运输,而非上门取件])收费。此值是在签署合同之前定义的。如果您是共享车或外卖公司,完成行程或送达是您的成功指标,这对应于行程任务适用于必须成功配送包裹的物流公司和零售商。

我们知道,出行和配送服务客户在执行行程和配送时也会使用 Google Maps Platform 产品。因此,如果您使用的是移动出行结算账号,只要在同一移动出行用例中遵守预定义的限制,就可以免费调用 Google Maps Platform。

例如,如果您是一家餐饮外卖公司,那么对于您完成的每一次成功配送,您都可以调用 Geocoding API 十次。如需详细了解这些限制,请参阅移动性文档中的使用限制。如需更改上限,您需要修改合同,因此请与您的 Google 代表或合作伙伴代表讨论您的具体需求。

月底,系统会根据 (i) 系统中报告的成功行程或任务数量,以及 (ii) 超出预设限制的 Google Maps Platform API 调用量(“超额”)生成账单。我们的限制是根据市场普遍需求而制定的。

建议您仔细阅读此处提供的官方移动流量结算文档。

小规模测试和评估

在签订合同之前,客户可以在 Google Maps Platform 结算账号上开展小规模的试点计划(概念验证、评估),试点期为期有限。如果您想开展试点计划,请与您的 Google 地图合作伙伴或 Google 对接人联系。

如前所述,在测试阶段,由于合同尚未签署,因此没有可用的移动流量结算账号。这意味着,每当使用 Google Maps Platform 产品时,都需要支付相应费用,但移动出行专用产品除外。换句话说,这意味着在测试阶段,结算方式不是基于任务或行程,因此在此阶段不适用使用限制。

测试版正式发布后,必须按照合同进行付款。

总结:

  • 测试 / 开发阶段:您只需为公开提供的 Google Maps API 付费。在项目中使用移动流量结算账号之前,您无需为非公开 API 和 SDK 支付费用。请注意,Google 会向创建的任何新结算账号提供 200 美元的 Google Maps Platform API 赠金。这对于评估期间的受控环境应该足够了。

  • 生产阶段:您需要按行程或任务付费。只有在使用量超出合约的用量上限(“上限”)时,才会产生与 Google Maps Platform 相关的费用。如果是这样,您需要支付超额费用。超额用量将按照此处所述的价格计费。

如何迁移到移动流量结算账号

迁移到生产环境时,您通常需要创建其他 Google Cloud 项目来表示不同的环境,例如质量检查 (QA) 和生产环境。在此之前,您可能只有一个环境,即开发环境。

要求

您团队中的人员,需要具备以下条件:

  1. 管理 Google Cloud 上的结算账号,通常由结算账号管理员或项目所有者完成。
  2. 您可以访问签署合约后生成的欢迎信中提供的新结算账号 ID。
  3. 对要报告行程或任务的生产环境对应的 Google Cloud 项目的访问权限。

请按照以下步骤设置新项目并为其配置结算。

新项目设置

项目创建

  1. [您] 在 Google Cloud 控制台中为每个新环境创建一个新的 GCP 项目。例如,生产、预演和质量保证。
  2. [合作伙伴或 Google 团队] 将新项目添加到许可名单中,以便访问移动产品。与 Google 或合作伙伴的销售代表联系,并提供在上一步中创建的项目 ID。
  3. [您] 更新项目的重要联系人。此步骤非常重要,可确保 Google 支持团队在需要时能够联系到负责您项目的正确人员。

项目配置

在 Google Cloud 控制台中,针对在上一步骤中创建的项目完成以下步骤:

  1. [您] 创建服务账号,包括关联正确的 Mobility Identity and Access Management (IAM) 角色(基于行程基于任务

    • 如同在开发环境中所做的那样,或者根据需要采用更有条理的访问权限分离方式(请参阅本部分)。
  2. [您] 创建 API 密钥 - 就像在开发环境中创建一样,或者根据需要采用更有条理的访问权限分隔(例如按产品、网域等)。

  3. [您] 启用“本地乘车和送货”等 API 以及所需的其他 Google Maps Platform API(例如地理编码、自动补全、地址验证)。

  4. [您] 配额:如果您需要为某些 API 提高 QPM(每分钟查询次数),请向支持团队开具工单。如需了解具体方法,请点击此处。您必须添加业务理由,说明为何需要提高预算。您可以点击此处查看预定义配额。

  5. [您] 如果您开发的系统使用的是开发环境中的凭据,请确保这些系统能够指向为新创建的项目创建的新凭据。这包括将后端和前端系统指向新的凭据(例如 API 密钥、服务账号),并确保在各个环境中使用正确的项目 ID。

结算配置

我们假设您已直接(如适用)或通过合作伙伴与 Google 签订了合同。这是接收欢迎信中包含的移动流量结算账号的前提条件,您将在后续步骤中使用该账号。

  1. [您] 确认是否已在 Google 签署并执行合同后通过电子邮件发送的欢迎信中收到了移动流量结算账号 ID。重要提示:欢迎信会发送给合同订单表单上列出的技术和财务联系人。与您的项目团队合作,了解可能收到该电子邮件的人,并请对方向您提供结算账号 ID(一系列由连字符分隔的字符和数字)。
  2. [您] 与 Google 或合作伙伴合作,确保执行结算验证,这意味着您的系统已正确向 Google 报告行程或任务。如需了解详情,请参阅下一部分。
  3. [您] 使用 Cloud 控制台将 Google Cloud 项目指向新的结算账号 - 请参阅本文档后面的结算账号配置部分。

如需详细了解常规结算方式,请点击此处此处

结算验证

结算信息验证非常重要,有助于确保您的扣款正确无误。有时,公司会意外错误地实现 API,导致扣款增加或报告数据不足。

结算验证包括以下步骤:

  1. 验证向 Google Maps Platform API 发出的请求是否在请求标头中包含 tripId(或 taskId)- 如需了解详情,请点击此处

  2. 验证行程(或任务)是否已正确报告。这取决于所使用的移动流量套餐

    • 移动出行起步版和优化版,或加速版(基于行程):必须与 ReportBillableEvent API 集成。这意味着,每当行程成功完成时,都必须向此 API 发出请求。如需验证此过程是否正常进行,您必须按照此处所述的步骤操作。
    • Mobility Accelerate(基于任务):结算不必由 API 调用触发。当提交任务的任务结果设为“已成功”时,系统会自动执行此操作。因此,请务必将任务结果正确设置为 FAILED 或 SUCCEEDED。客户工程师(合作伙伴或 Google)会与您合作,验证植入是否正确完成。您可以通过 Cloud Logging 运行以下 Cloud Logging 查询,验证任务是否正在正确更新:
    resource.type="fleetengine.googleapis.com/DeliveryFleet"
    jsonPayload.@type="type.googleapis.com/maps.fleetengine.delivery.log.v1.UpdateTaskLog"
    jsonPayload.request.task.taskOutcome="TASK_OUTCOME_LOG_SUCCEEDED"
    

    如果系统显示了条目,则表示您的后端系统已正确将任务设置为“已成功”。

    注意:不过,请务必检查实际行程或成功完成的任务的数量是否与报告的调用次数相符。有时,我们会看到系统报告了结算事件,但这些事件与实际完成的行程或任务总数不符(报告不足)。

集成运行状况

成功迁移到生产环境不仅应保证结算正常运行,还应保证 API 不会执行失败。对于出行服务,请务必验证是否已正确实现与车队引擎 (Local Rides and Deliveries API) 的集成。

为此,您可以打开 Cloud Logging 并使用以下查询:

jsonPayload.errorResponse.code:*

这应列出所有存在问题的日志条目。例如:

使用 Cloud Logging 查询错误
使用 Cloud Logging 查询错误

这些问题可以导出到 BigQuery 等其他 Cloud 产品。您可以根据 Cloud Logging 查询配置指标提醒

通过 Cloud Logging 查询创建指标
根据 Cloud Logging 查询创建指标

由于这些是 Google Cloud 产品,因此可能会产生额外费用。您可以与您的合作伙伴或 Google 代表联系,以了解详情。

结算账号配置

如果您的所有系统现在都能正确报告行程或任务,并且没有任何集成错误,那么您可以将项目指向您在欢迎信中收到的收款账号(本文件前面部分已介绍过)。

注意:如果您与 Google 地图合作伙伴合作,他们可以在此时为您提供帮助,您无需单独按照以下步骤操作。如果您是直接与 Google 合作(在某些地区可能会出现这种情况),则可以按照以下步骤操作:

为此,请执行以下操作:

  1. 打开 Google Cloud 控制台 (https://console.cloud.google.com)。
  2. 选择将在生产环境中使用的新项目。
  3. 前往该项目的“结算”部分。您可以通过以下链接快速访问:https://console.cloud.google.com/billing
  4. 结算 > 点击“管理结算账号”:
    多个结算账号
    您的项目可能与上图有所不同。
  5. 依次点击“结算”> 已创建的正式版项目旁边的三点状图标 打开更多详情,然后选择“更改结算账号”:
    选择项目
  6. 依次选择“结算”>“结算账号”,然后在下拉列表中选择您在欢迎信中收到的结算账号代码。然后,点击“设置账号”:
    选择项目
  7. 该项目将与新结算账号相关联:
    选择正确的结算账号
    重要提示:从此时起,此项目中报告的所有行程或任务都将按前面所述的方式结算费用。如果结算信息验证尚未完成,请勿关联结算账号。
  8. 添加新的结算方式后,请依次前往“概览 > 付款概览”和“付款设置”,确认信息是否正确。如需详细了解如何更新结算和付款信息,请点击此链接。 如有任何与结算相关的问题,请提交结算 支持请求,或与您的合作伙伴或 Google 代表联系。

结算报告

结算报告可帮助您了解与已与项目关联的结算账号相关的费用。

注意:如果您与 Google 地图合作伙伴合作,请与他们合作,确保他们向您提供所需的相关结算信息。

打开项目的关联结算账号,然后选择“报告”。然后,您可以使用以下一组过滤条件:

结算报告过滤条件
结算报告过滤条件

这里要注意的主要设置是按 SKU 的分组依据过滤条件,该过滤条件会显示有关行程和任务以及其他 API(如果使用)的详细信息,包括是否超额,如前所述:

结算报告过滤条件
项目中使用的商品示例

报告信息每天刷新一次。如果需要了解日内信息,您可以使用 Cloud Logging 查询来查看当天发生了多少可结算事件。如需了解详情,请参阅前面部分。

公开范围渐增计划

需要注意的一个重要方面是您的扩展计划。通常,并非所有流量都会迁移到移动项目,具体取决于您的业务性质。例如,有些公司需要花时间将新解决方案推广到所有分支机构、特许经营店、商店、办公室等,这意味着部分流量将使用旧系统,部分流量将流向新项目。

此外,在许多情况下,并非所有流量都属于出行用例,例如实体店定位工具、路边自提服务和其他内部解决方案。这些账号应指向 Google Maps Platform 结算账号,因为相应流量应与移动流量结算账号分开结算。

请务必遵守实施政策:

  • 基于行程的模型 - “按需乘车和送货解决方案适用于按需商业乘车和送货服务。此类服务通常包括:(a) 提交前往给定目的地的乘车请求(或配送特定物品)的消费者;(b) 与请求匹配并驾驶车辆来完成服务的司机。”
  • 基于任务的模型 - “Google Maps Platform 最后一公里车队解决方案适用于商用最后一公里配送和第一公里上门取件服务。此类服务通常包括:(a) 由客户拥有或承包的配送车队、(b) 基于预先规划的路线进行配送、(c) 由配送执行支持团队组成的配送中心网络,以及 (d) 跟踪并接收运输的消费者。”

因此,您应了解哪些系统应指向 Google Maps Platform 结算账号,哪些系统应指向移动出行结算账号。通常,您会拥有多个项目,每个项目都指向正确的结算账号。

例如,假设根据使用限制,今天每项行程 / 任务包含 10 个地理编码请求。如果迁移需要几个月的时间,并且您在第一个月开始报告 10 万次行程 / 任务,则意味着您可以调用 Geocoding API 100 万次。但是,如果您的商家有 500 万次地理编码请求,那么差值 (400 万次) 可能会被报告为超额。这里有两种可能的方案:

  1. 您增加向我们报告的行程 / 任务数量(加快扩展计划的实施),因此上限会更高,在这种情况下,您需要每月报告 50 万次行程 / 任务。
  2. 如前所述,您可以在合同谈判期间协商更高的上限。
  3. 您可以将 Geocoding API 请求转到 Google Maps Platform API,以享受更高的折扣层级,并比超额付费更便宜。

我们知道,由于您的业务规模和用例可能非常复杂,因此成本估算可能很难。请与您的合作伙伴或 Google 同事合作,确定如何利用现有项目为正式发布做好准备。

总的来说,若要制定适当的逐步扩展计划,您需要执行以下步骤: 1. 根据实现政策确定哪些用例与移动性相关,哪些用例不相关。 2. 确定目前用于相关用例的 Google Maps Platform API 以及其使用量。 3. 确定在部署移动解决方案后是否仍需要 Google Maps Platform API。例如,如果 ETA 计算在车队引擎上自动进行,您可能不再需要使用 Directions API 进行计算。 4. 确定将移动出行用例完全迁移到您所用的新移动出行平台需要多长时间。5. 仔细检查使用限制是否足以支持您的用例。 6. 确定何时可以将所有 Google Maps Platform 请求折叠到移动出行结算账号,以便用于移动出行用例。

总结

总而言之,正确配置结算账号对价格的可预测性和透明度至关重要。借助我们集成了一流位置服务的移动技术,企业可以放心地让其结算流程准确高效。这不仅有助于降低成本,还能提供做出明智业务决策所需的数据和分析洞见。此外,这种系统提供的透明度有助于公司清楚地了解自己的支出,从而更好地管理预算。

后续操作