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 适用于必须成功配送包裹的物流公司和零售商。

我们知道,出行和配送类客户在执行行程和配送时也会使用 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 控制台, 代表不同环境(如质量检查)的云项目 (质量检查)和生产。在此之前,您可能只有一个环境,即开发环境。

要求

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

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

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

新项目设置

项目创建

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

项目配置

在 Google Cloud Console 中对项目完成以下步骤 在前面步骤中创建的:

  1. [您] 创建服务账号,包括关联正确的移动性 识别和访问管理 (IAM) 角色(旅行 基于任务 基于

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

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

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

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

结算配置

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

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

如需详细了解一般结算事宜,请点击此处此处

结算验证

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

结算验证包括以下步骤:

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

  2. 验证行程(或任务)是否已正确报告。这取决于所使用的 Mobility Package

    • 移动出行新手和优化或加速(基于行程):必须与 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"
    

    如果显示条目,则表示您的后端系统正确将任务设置为 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. 添加新的结算方式后,前往“概览 >付款概览”和“付款设置”部分,确认信息是否正确。如需详细了解如何更新结算和付款信息,请点击此链接。 如有任何与结算相关的问题,请提交结算 支持请求或咨询您的合作伙伴或 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 万次。但是,如果您的商家 5M 地理编码要求该差额 (4M),则可能会报告为超额。这里有两种可能的方案:

  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 请求都可以折叠到移动结算账号的拐点。

总结

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

后续操作