Google Maps Platform 和移动性结算指南

在生产环境中实现新的 Google 地图项目之前,您需要 确保您的设置正确无误,以便为商品支付适当金额 资源在本文档中,我们将介绍几个方面,确保您:(i) 结算透明度 - 因此可以在生成账单之前验证使用情况 以及 (ii) 正确的项目设置,以确保您可以使用我们的产品。

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

概念

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

在本文档中,我们会详细介绍您的 Google Cloud 项目。这是因为 Google 地图产品可以通过它获得。也就是说,本文档介绍的配置是在 Google Cloud 项目中进行的。

结算账号

如今,每家使用 Google 地图产品的公司都有一个与之相关联的 Google Cloud 项目。必须为此项目配置结算账号。结算账号负责累积所有 Google 地图用量,并根据该用量每月创建账单。

对于移动性,系统会预配一个特殊结算账号。此结算账号只能用于与出行相关的用例,例如拼车、送货和物流。

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

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

  • 具体用例(即移动用例)
  • 单独的账单
  • 折扣基于此单个项目的数量

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

  • 相同的用例
  • 汇总用量,充分利用折扣层级
  • 单一账单

如需了解有关结算账号的更多信息以及其他相关信息,请访问此链接

如上所述,一个结算账号可以指向多个项目。如果您有多个项目,则应确定哪些项目将使用我们的移动服务,并将它们指向移动结算账号。与移动用例没有关联的项目应继续指向您当前使用的常规 Google Maps Platform 结算账号。如需获取移动性结算账号,必须与 Google 或合作伙伴签署移动性交易。下面介绍了结算账号在整个架构中的作用以及不同的可能设置:

<ph type="x-smartling-placeholder">
</ph> 可能的结算账号设置
可能的结算账号设置

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"
    }
}'
<ph type="x-smartling-placeholder">

费用

在 Google Maps Platform 上,费用是根据 API 请求量计算的。对于移动服务,我们根据已成功完成行程或任务的可计费移动交易交易量收费。这在签订合同之前就已明确确定。如果您提供拼车或送餐服务,那么完成约车或送餐服务就是您的成功指标 - 该指标对应于“行程”。Tasks 适用于必须成功配送包裹的物流公司和零售商。

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

例如,如果您是一家食品配送公司,则对于每次成功的行程,您都可以调用 Geocoding API 10 次。如需详细了解这些限制,请参阅移动性文档中的使用限制。对上限的任何更改都需要修订合同,因此请与您的 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. [您] 创建服务账号,包括关联正确的移动识别和请参阅本部分。
  2. [您] 创建 API 密钥 - 具体做法是在开发环境中完成,或根据需要按产品、网域等进行更加结构化的访问权限隔离。
  3. [您] 启用“本地叫车和送货”等 API 以及所需的其他 Google Maps Platform API(例如地理编码、自动补全、地址验证)。
  4. [您] 配额:如果您需要提升某些 API 的 QPS(每秒查询次数),请提交支持服务工单。请点击此处了解具体方法。您必须添加业务理由,说明需要提升效果的原因。此处可查看预定义的配额。
  5. [您] 如果您开发的系统使用开发环境中的凭据,请确保这些系统能够指向为创建的新项目创建的新凭据。这包括将后端和前端系统指向新的凭据(例如 API 密钥、服务账号),并确保在每个相应环境中使用正确的项目 ID。

结算配置

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

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

如要详细了解总体结算情况,请点击此处此处

结算验证

结算验证对于确保系统正确扣款非常重要。有时,公司会无意中错误地实现 API,从而导致收费或漏报问题。

结算验证包括以下步骤:

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

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

    • 新手版和优化工具,或加速版(基于行程):需要与 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"
    

    如果显示条目,则表示您的后端系统正确将任务设置为 SUCCEEDED。

    注意:请务必检查成功完成的实际行程数或任务数是否与报告的来电次数相符。有时我们会看到报告了结算事件,但这些事件与现实生活中实际完成的行程或任务的总数并不对应(漏报)。

集成运行状况

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

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

jsonPayload.errorResponse.code:*

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

<ph type="x-smartling-placeholder">
</ph> 使用 Cloud Logging 查询错误
使用 Cloud Logging 查询错误

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

<ph type="x-smartling-placeholder">
</ph> 通过 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. 结算 >点击“管理结算账号”:
    <ph type="x-smartling-placeholder">
    </ph> 多个结算账号
    您的项目看起来可能与上述项目有所不同。
  5. 结算 >点击三点状图标 打开更多详情 紧邻已创建的生产项目,然后选择“更改结算账号”: <ph type="x-smartling-placeholder">
    </ph>
    选择项目
  6. 结算 >在结算账号的下拉列表中,选择您在欢迎函中收到的结算账号代码。然后,点击“设置账号”:
    <ph type="x-smartling-placeholder">
    </ph> 选择项目
  7. 该项目将关联到新的结算账号:
    <ph type="x-smartling-placeholder">
    </ph> 选择正确的结算账号
    重要提示:自此之后,此项目中报告的所有行程或任务都将按照上文所述结算。如果结算验证尚未进行,请勿关联结算账号。
  8. 添加新的结算方式后,前往“概览 >付款概览”和“付款设置”部分,确认信息是否正确。如需详细了解如何更新结算和付款信息,请参阅此链接
    如有任何与结算相关的问题,请提交结算 支持请求或咨询您的合作伙伴或 Google 代表。

结算报告

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

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

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

<ph type="x-smartling-placeholder">
</ph> 结算报告过滤条件
结算报告过滤条件

在这里,您需要记住的主要设置是按 SKU 分组的分组依据过滤器,其中将会显示有关“行程”和“任务”以及其他 API(如有使用)的详细信息,包括是否超额,如前所述:

<ph type="x-smartling-placeholder">
</ph> 结算报告过滤条件
项目中使用的产品示例

报告信息每天都会刷新。如果需要当日信息,可以使用 Cloud Logging 查询来查看当天发生的计费事件数量。有关详情,请参阅前几部分。

公开范围渐增方案

需要特别注意的一点是磨合计划。根据业务性质,并非所有流量都会迁移到移动项目,这是很常见的。例如,一些公司会花时间将新解决方案推广到其所有分支机构、特许经营店、商店、办公室等,这意味着一部分流量将使用旧系统,另一部分流量将用于新项目。

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

请务必遵守植入政策:

  • 基于行程的模式 -“按需乘车和送货解决方案旨在用于按需、商业叫车和送货服务。此类服务通常包括 (a) 消费者提交约车前往指定目的地(或配送特定物品)的请求,以及 (b) 与请求匹配并驾驶车辆完成服务的消费者。”
  • 基于任务的模型 -“Google Maps Platform 最后一公里车队解决方案旨在用于商业最后一公里配送和第一英里自提服务。此类服务通常包括:(a) 客户拥有或承包的货车车队;(b) 根据预先规划的航线进行交付;(c) 由运营团队组成的运营团队组成的配送中心网络,负责跟踪货物并接收货物。”

因此,您应该了解哪些系统应该指向 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。例如,预计到达时间在 Fleet Engine 上自动计算,您可能不再需要使用 Directions API 计算它们。 4. 确定将移动用例完全迁移到您手边的新移动平台需要多长时间。 5. 请仔细检查使用限额是否足以为您的用例提供支持。 6. 针对移动用例,确定何时所有 Google Maps Platform 请求都可以折叠到移动结算账号的拐点。

总结

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

后续操作