Configura los informes de uso para Google

Si eliges precios basados en el uso para tu producto, debes informar el uso de la aplicación a la API de Service Control.

Para obtener más información sobre Control de servicios, consulta la guía de introducción.

Antes de comenzar

  • Configura el acceso a la API de Partner Procurement de Cloud Commerce, como se describe en Integra tu app.
  • Te recomendamos que uses Producer Portal para crear una cuenta de servicio que se use con el Control de servicio.

Informa el uso (para precios basados en el uso)

Cuando se crea una autorización, debes llamar a la API de Partner Procurement para recuperar un usageReportingId mediante la siguiente solicitud HTTP GET:

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

La respuesta contiene información sobre la autorización, en el siguiente formato:

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-messaging-service",
  "plan": "pro",
  "usageReportingId": "USAGE_REPORTING_ID",
  "state": "ENTITLEMENT_ACTIVATION_REQUESTED",
  "updateTime": "...",
  "createTime": "..."
}

Para informar el uso, primero debes realizar una llamada a la API de services.check a fin de verificar la configuración del servicio. En la respuesta, si el objeto checkErrors[] está vacío, realiza una llamada a la API de services.report para enviar el informe de uso.

El informe de uso es una API de Service Control Operation. El siguiente es un ejemplo de un informe de uso de example-messaging-service que envía información sobre el almacenamiento que usa el cliente:

POST https://servicecontrol.googleapis.com/v1/services/example-messaging-service.gcpmarketplace.example.com:report
{
  "operations": [{
    "operationId": "1234-example-operation-id-4567",
    "operationName": "Hourly Usage Report",
    "consumerId": "USAGE_REPORTING_ID",
    "startTime": "2019-02-06T12:00:00Z",
    "endTime": "2019-02-06T13:00:00Z",
    "metricValueSets": [{
      "metricName": "example-messaging-service/UsageInGiB",
      "metricValues": [{ "int64Value": "150" }]
    }],
    "userLabels": {
      "cloudmarketplace.googleapis.com/resource_name": "order_history_cache",
      "cloudmarketplace.googleapis.com/container_name": "storefront_prod",
      "environment": "prod",
      "region": "us-west2"
    }
  }]
}

Donde:

  • operationId es una string única que genera la instancia de servicio. Usa el mismo operationId para tus operaciones check y report.
  • consumerId es lo mismo que el usageReportingId del derecho.
  • startTime y endTime representan las horas de inicio y finalización del intervalo total para la operación report. En la mayoría de los casos, el valor startTime de un La operación report debe tener el mismo valor que endTime de las operación report anterior. Si el servicio de un cliente se inhabilita antes de la startTime de una operación report, la llamada a la API services.check envía un en el objeto checkErrors[], y no se cobra al cliente por el en el intervalo correspondiente.
  • MetricValueSet contiene uno o más intervalos de tiempo intermedios y las actualizaciones correspondientes de las métricas. Define las métricas de tu servicio cuando eliges y envías tu modelo de precios. Puedes ver los identificadores de tus métricas y hacer referencia a ellos en la Sección Integración técnica de Producer Portal.
  • userLabels son etiquetas creadas por el usuario, definidas como cadenas clave-valor que cumplen con requisitos de sintaxis específicos. Estas etiquetas se reenvían a las herramientas de administración de costos de la Facturación de Cloud para la atribución. Para recomendaciones relacionadas con el etiquetado de uso, consulta Prácticas recomendadas para el etiquetado de uso.

Si la API services.check muestra uno o más de los siguientes errores, te recomendamos que dejes de proporcionar tu servicio al cliente hasta que se resuelva el error:

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED