Utiliser les données sur les établissements

Ce tutoriel vous explique comment créer et modifier les données sur les établissements. L'API My Business Business Information vous permet d'effectuer les actions suivantes :

Vous pouvez utiliser des établissements dans Ads, mais ils doivent être validés pour apparaître dans la recherche Google et sur Maps. Les données sur les établissements sont représentées par la collection accounts.locations.

Avant de commencer

Avant d'utiliser l'API My Business Business Information, vous devez enregistrer votre application et obtenir des identifiants OAuth 2.0. Pour savoir comment utiliser l'API My Business Business Information, consultez Configuration de base.

Créer un établissement

Vous pouvez utiliser l'API My Business Business Information afin de créer un établissement pour une entreprise à l'aide de accounts.locations.create.

Pour créer un établissement, utilisez le code suivant :

HTTP
POST
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?requestId=requestId&validateOnly=True|False

{
    "storeCode": "GOOG-SYD",
    "languageCode": "en-AU",
    "title": "Google Sydney",
    "phoneNumbers": {
      "primaryPhone": "02 9374 4000"
     }
    "storefrontAddress": {
      "addressLines": [
        "Level 5",
        "48 Pirrama Road"
      ],
      "locality": "Pyrmont",
      "postalCode": "2009",
      "administrativeArea": "NSW",
      "regionCode": "AU"
    },
    "websiteUri": "https://www.google.com.au/",
    "regularHours": {
      "periods": [
        {
          "openDay": "MONDAY",
          "closeDay": "MONDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "TUESDAY",
          "closeDay": "TUESDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "WEDNESDAY",
          "closeDay": "WEDNESDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "THURSDAY",
          "closeDay": "THURSDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "FRIDAY",
          "closeDay": "FRIDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        }
      ]
    },
    "categories": {
      "primaryCategory": {
        "name": "gcid:software_company"
      }
     }
}

Supprimer un établissement

Vous pouvez utiliser l'API My Business Business Information pour supprimer un établissement à l'aide de locations.delete.

Pour supprimer un établissement, utilisez le code suivant :

HTTP
DELETE
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}

Obtenir un établissement par son nom

Si de nombreux établissements sont associés à votre compte, vous avez la possibilité de n'en obtenir qu'un seul. Vous pouvez filtrer les résultats par nom pour obtenir un établissement spécifique à l'aide de locations.get.

Pour obtenir un établissement par son nom, utilisez le code suivant : Vous devez spécifier un readMask pour récupérer des champs spécifiques. :

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?readMask={commaSeparatedFieldsToRetrieve}

Renvoyer la version Google Maps

HTTP

Pour renvoyer la version Google Maps d'un établissement, ajoutez googleUpdated à l'URL de la requête, comme dans l'exemple suivant :

GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}:googleUpdated?readMask={commaSeparatedFieldsToRetrieve}

En l'absence de résultats, un code d'état HTTP 404 NOT FOUND s'affiche. Pour savoir comment gérer les mises à jour Google, cliquez ici.

Lister les établissements

Si vous gérez un ou plusieurs établissements, vous pouvez lister tous ceux associés à votre compte. Utilisez l'API accounts.locations.list pour lister tous les établissements associés à un utilisateur.

Pour lister tous ceux directement détenus ou gérés par un utilisateur authentifié, utilisez le code suivant :

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}

Utilisez le caractère générique '-' pour le compte dans l'URL de la requête afin d'inclure les fiches détenues indirectement (détenues ou gérées par un groupe) :

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/-/locations?readMask={commaSeparatedFieldsToRetrieve}

Filtrer les résultats lorsque vous listez des établissements

HTTP

Vous pouvez utiliser des filtres pour limiter les résultats renvoyés lorsque vous appelez accounts.locations.list. Pour filtrer une requête, ajoutez une expression de filtre à l'URL de base comme dans l'exemple suivant :

GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter={FIELD_NAME}=%22{YOUR_QUERY}%22

Syntaxe des requêtes de base

Utilisez la syntaxe suivante pour définir une restriction : <field><operator><value>, où l'opérateur est soit EQUALS (=), soit HAS (:). Les opérateurs EQUALS (=) et HAS (:) sont les mêmes pour tous les champs, sauf le champ locationName (voir le tableau ci-dessous).

Les guillemets sont encodés avec "%22", et les espaces avec le signe plus (+).

Sauf indication contraire, toutes les comparaisons sont des comparaisons de jetons non sensibles à la casse. Par exemple, "4 république" peut être mis en correspondance avec "4, Place de la République".

Combiner plusieurs champs dans une requête de filtre

L'API vous permet d'utiliser AND pour associer toutes les restrictions applicables aux champs. Toutefois, si vous utilisez le mot clé OR, toutes les restrictions doivent s'appliquer au même champ. Par exemple, locationName=A OR labels=B n'est pas autorisé.

Exemple

Dans l'exemple suivant, une expression de filtre renvoie tous les établissements portant le nom "Pepé Le Pew". Elle indique les catégories correspondant à "french_restaurant" ou "european_restaurant", ainsi que le libellé "newly open".

locationName=%22Pepé+Le+Pew%22+AND+
(categories=%22french_restaurant%22+OR+
categories=%22european_restaurant%22)+AND+
labels=%22newly+open%22

Rechercher par distance ou par compte

L'exemple suivant vous montre comment rechercher des établissements situés dans un certain périmètre à partir d'un point géographique :

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint({latitude}, {longitude}))<{distance}

Pour filtrer les établissements situés dans un rayon de 1 000 miles autour de Boulder, Colorado, aux États-Unis :

GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(40.01, -105.27))<1000.0

Liste de tous les champs de filtre acceptés

La liste exhaustive suivante présente tous les champs pouvant être utilisés pour le filtrage :

Champs Description et exemple
Champs de mise en correspondance de chaînes
title

Nom réel de l'entreprise

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title:"Bajis" (correspond à n'importe quel nom d'établissement comportant "Bajis" en tant que sous-chaîne)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title="Bajis" (correspond à n'importe quel nom d'établissement comportant "Bajis" en tant que jeton/terme)

categories

Combinaison de la catégorie principale et des catégories supplémentaires. Notez que le "gcid:" doit être omis. S'il existe plusieurs catégories, ce filtre correspond si au moins une catégorie correspond au modèle.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=categories="french_restaurant"

phone_numbers.primary_phone

Numéro de téléphone principal au format E.164 (par exemple, "+441234567890").

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=phone_numbers.primary_phone="+441234567890"

storefront_address.region_code

Code CLDR du pays ou de la région associés à l'adresse

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.region_code="US"

storefront_address.administrative_area

Subdivision administrative la plus élevée utilisée pour les adresses postales d'un pays ou d'une région

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.administrative_area="CA"

storefront_address.locality

La partie ville de l'adresse

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.locality="New York"

storefront_address.postal_code

Le code postal de l'adresse

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.postal_code="12345"

metadata.place_id

Si cet établissement a été validé et s'il est associé à/apparaît sur Google Maps, ce champ correspond à l'identifiant du lieu.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=metadata.place_id="12345"

openInfo.status

Indique si l'établissement est actuellement ouvert (OPEN ou CLOSED_PERMANENTLY)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=openInfo.status="OPEN"

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=openInfo.status="CLOSED_PERMANENTLY"

labels

Ensemble de chaînes au format libre pour vous permettre d'ajouter des tags à votre établissement. Contrairement à tous les autres champs, cette valeur doit correspondre exactement à un libellé complet (en respectant la casse) et pas seulement à un jeton. Par exemple, si un libellé est "XX YY", ni "XX", ni "xx yy" ne correspondront.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=labels="newly open"

storeCode

Identifiant externe associé à cet établissement, qui doit être unique au sein d'un compte donné

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storeCode="12345"

Fonctions
distance

Permet de filtrer les données en fonction de la distance entre l'établissement et un point géographique

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(1.0, -25.0))<1000.0

Trier par champ de requête

Vous pouvez trier les résultats par nom d'entreprise ou code de magasin, par ordre croissant ou décroissant. Plusieurs critères de tri sont séparés par une virgule dans la chaîne orderBy, comme dans l'exemple suivant :

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&orderBy=locationName,storeCode

Appliquer un correctif à un établissement

Utilisez l'API My Business Business Information pour mettre à jour un ou plusieurs champs d'un établissement à l'aide de locations.patch.

Pour modifier un ou plusieurs champs d'un établissement, utilisez le code suivant :

HTTP

Ajoutez les champs et les valeurs mises à jour avec le champ "location", et utilisez une liste de champs mis à jour séparés par une virgule comme valeur pour fieldMask.

PATCH
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?languageCode=language&validateOnly=True|False&updateMask=title
{
    "title": "Google Shoes"
}