Aggiornamenti in tempo reale

Gli aggiornamenti in tempo reale ti consentono di mantenere sincronizzato l'inventario delle offerte con Google. Puoi eseguire il push degli aggiornamenti incrementali quasi in tempo reale. Il nostro sistema compilerà le modifiche apportate da Feed + RTU per mostrare agli utenti le informazioni più recenti.

Endpoint API

Per eseguire il push o eliminare gli aggiornamenti in tempo reale, utilizza i seguenti endpoint dell'API REST:

Batch Push

  • Sandbox: https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush
  • Produzione: https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchPush

Eliminazione batch

  • Sandbox: https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete
  • Produzione: https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partner_id}/feeds/google.offer/record:batchDelete

Per maggiori informazioni sulla definizione dell'oggetto JSON dell'offerta, consulta Offer. Per maggiori dettagli sulle proprietà delle offerte, visita la pagina di riferimento delle offerte.

Come autenticarsi nell'API

Per connetterti all'API, consulta Autenticarsi con l'API Mapsbooking.

Limitazioni

Quando utilizzi l'API per gli aggiornamenti in tempo reale, tieni presente le seguenti limitazioni:

  • Solo protoRecord: l'API è configurata per utilizzare solo protoRecord (non dataRecord).
  • Limiti di quota: queste API hanno una quota di 1500 richieste al minuto per account partner. Ogni richiesta è limitata all'invio di 1000 record per l'upsert o l'eliminazione.
  • Limitazioni della mappatura delle entità: per ogni offerta, i partner possono inviare un aggiornamento per un ID entità. Se vuoi aggiornare la stessa offerta su più ID entità, il partner deve inviare 1 record per entityId. I entityId devono essere sempre singolari per record.
  • Offerte di componenti aggiuntivi: a causa della limitazione della mappatura delle entità, le offerte di componenti aggiuntivi che sono addOnOfferApplicableToAllEntities non sono realmente supportate per l'aggiornamento RTU e non possono essere aggiornate in questo modo (solo tramite feed).

Esempio

Esempio di aggiornamenti batch

Ecco un esempio di push di un aggiornamento in tempo reale tramite curl:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token --impersonate-service-account=test@myproject.gserviceaccount.com --scopes=https://www.googleapis.com/auth/mapsbooking)" \
  -H "Content-Type: application/json" \
  -d '{
  "records": [
    {
      "generationTimestamp": {
        "seconds": 100
      },
      "protoRecord": {
        "@type": "type.googleapis.com/madden.ingestion.offer.Offer",
        "offerId": "1",
        "entityIds": [
          "1234567890"
        ],
        "addOnOfferApplicableToAllEntities": false,
        "offerSource": "OFFER_SOURCE_AGGREGATOR",
        "actionType": "ACTION_TYPE_FOOD_DELIVERY",
        "offerModes": [
          "OFFER_MODE_WALK_IN"
        ],
        "offerCategory": "OFFER_CATEGORY_BASE_OFFER",
        "tags": [
          "OFFER_TAG_NEW_YEAR_SPECIAL"
        ],
        "offerDetails": {
          "offerDisplayText": "FLAT 10% off",
          "offerSummaryText": "MONDAY TO FRIDAY",
          "discountPercent": 10
        },
        "offerRestrictions": {
          "combinableWithOtherOffers": true,
          "inclusions": [
            {
              "description": "complementary drink"
            },
            {
              "description": " starters"
            }
          ],
          "exclusions": [
            {
              "description": "taxes and Tips"
            }
          ]
        },
        "validityPeriods": [
          {
            "timeOfDay": {
              "timeWindows": [
                {
                  "openTime": {
                    "hours": 10
                  },
                  "closeTime": {
                    "hours": 20
                  }
                }
              ]
            },
            "validPeriod": {
              "validFromTime": {
                "seconds": 10
              }
            }
          }
        ],
        "offerUrl": "https://www.google.com/offer"
      }
    }
  ]
}' \
  https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/20000123/feeds/google.offer/record:batchPush

Esempio di eliminazione batch

Ecco un esempio di eliminazione di un'offerta tramite curl:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token --impersonate-service-account=test@myproject.gserviceaccount.com --scopes=https://www.googleapis.com/auth/mapsbooking)" \
  -H "Content-Type: application/json" \
  -d '{
  "records": [
    {
      "deleteTime": {
        "seconds": 150
      },
      "protoRecord": {
        "@type": "type.googleapis.com/madden.ingestion.offer.Offer",
        "offerId": "1",
        "entityIds": [
          "1234567890"
        ]
      }
    }
  ]
}' \
  https://partnerdev-mapsbooking.googleapis.com/v1alpha/inventory/partners/20000123/feeds/google.offer/record:batchDelete