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 请求数量计算的。对于移动服务,我们根据成功完成的行程或任务(运输而非取货)的可计费出行交易量收费。这是在签署合同之前定义的。如果您经营拼车或送餐服务,那么完成拼车或送餐就是您的成功指标,它对应于行程Tasks 适用于必须成功配送包裹的物流公司和零售商。

我们了解,Mobility 客户在执行行程和送货时也会使用 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 Platform (GCP) 项目来代表不同的环境,例如 QA(质量检查)和生产环境。在那之前,您可能只有一个环境,即开发环境。

要求

您这边的人员,可以:

  1. 在 Google Cloud 上管理结算账号,通常由 Billing Account Administrator 或 Project Owner 执行。
  2. 对新结算账号 ID 的访问权限,该 ID 包含在合同签署后生成的欢迎邮件中。
  3. 可访问与用于报告行程或任务的生产环境对应的 Google Cloud 项目。

下面我们展示了设置新项目所需的步骤,以及如何为这些新项目配置结算功能。

新建项目设置

项目创建

  1. [您] 为新环境创建新的 GCP 项目(即生产、质量保证等)。此操作通过 Google Cloud 控制台完成,点击此处直接链接即可。
  2. [合作伙伴或 Google 团队] 此项目必须列入许可名单,才能使用移动产品。为此,请与您的 Google 销售代表或合作伙伴代表联系。提供在上一步中创建的项目 ID。
  3. [您] 更新您项目的重要联系人。这对确保 Google 支持团队能够联系到您这边的人员非常重要。

项目配置

您应该在 Google Cloud 控制台中针对之前步骤中创建的项目执行以下步骤:

  1. [您] 创建服务账号,包括关联正确的移动识别和访问管理 (IAM) 角色(基于行程基于任务),就像在开发环境中执行的操作一样,或者根据需要采用更结构化的访问权限隔离 - 请参阅此部分。
  2. [您] 创建 API 密钥 - 与在开发环境中操作相同,或根据需要采用更结构化的访问权限隔离(例如按产品、网域等)。
  3. [您] 启用“本地行程和送货”等 API 以及所需的其他 Google Maps Platform API(即地理编码、自动补全、地址验证)。
  4. [您] 配额:如果您需要提升某些 API 的 QPS(每秒查询次数),请提交支持服务工单。点击此处了解具体方法。您必须添加业务理由,说明需要提升效果的原因。如需查看预定义配额,请点击此处
  5. [您] 如果您开发的系统使用开发环境中的凭据,请确保这些系统能够指向已为创建的新项目创建的新凭据。这包括将后端和前端系统指向新凭据(例如 API 密钥、服务帐号),并确保在每个环境中使用正确的项目 ID。

结算配置

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

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

如需了解一般结算的详细信息,请点击此处此处

结算验证

结算验证对于确保您被正确扣款非常重要。有时,公司会无意间错误地实现 API,从而导致收费增加或漏报。

结算验证包括以下步骤:

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

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

    • 移动办公入门和优化或加速(基于行程):必须集成 ReportBillableEvent API。这意味着,每当行程成功完成时,都必须向此 API 发出请求。要验证上述操作是否正确,您必须按照此处所述的步骤操作。
    • 移动加速(基于任务):无需通过 API 调用触发结算。当传送任务中的任务结果设置为 SUCCEEDED 时,系统会自动执行此操作。因此,请务必将任务结果正确设置为 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 不会失败。对于移动服务,请务必验证与 Fleet Engine (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. 添加新的结算方式后,依次转到“概览 > 付款概览”和“付款设置”,确认信息是否正确。如需详细了解如何更新结算信息和付款信息,请参阅此链接
    如有任何与结算相关的问题,请提交billing 支持请求,或者咨询您的合作伙伴或 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 - 例如,在 Fleet Engine 上自动计算预计到达时间,但您可能不再需要使用 Directions API 计算这些 API。 4. 确定将移动用例完全迁移到您方的新移动平台所需的时间。5. 仔细检查使用限制是否足以支持您的用例。 6. 确定拐点,确定何时可以将所有 Google Maps Platform 请求折叠到针对移动用例的移动结算帐号中。

总结

总而言之,正确配置结算账号对于价格可预测性和透明度至关重要。通过采用了一流位置信息服务的移动技术,公司可以确信他们的结算流程准确而高效。这不仅有助于降低成本,还能提供做出明智业务决策所需的必要数据和数据洞见。此外,这种系统提供的透明度使公司可以清楚了解自己的开支,从而实现更好的预算管理。

后续操作