Fiches

Récupérez les fiches d’annuaires premium, vocales et en double, gérez la suppression des doublons et connectez des profils via le SDK listingsapi-js.

Les fiches représentent la présence d'un établissement sur différents annuaires (Google, Yelp, Bing, Alexa, Siri, etc.). Toutes les méthodes relatives aux fiches sont disponibles sur l'instance du client ListingsAPI et s'appliquent à un identifiant d'établissement. Les identifiants numériques des établissements sont encodés automatiquement ; 16808 et 'TG9jYXRpb246MTY4MDg=' sont donc interchangeables.

fetchPremiumListings

Récupérez les fiches d'un établissement sur les annuaires premium : Google, Yelp, Facebook et les autres annuaires du réseau principal. Renvoie un tableau d'objets Listing contenant des champs tels que id, site, syncStatus, displayStatus et listingUrl.

TypeScript
const listings = await client.fetchPremiumListings(16808); for (const l of listings) {console.log(l.site, l.syncStatus, l.listingUrl);}

Les valeurs possibles de syncStatus incluent SYNCED, PENDING, ERROR et NOT_CONNECTED.

fetchVoiceListings

Récupérez les fiches des assistants vocaux : Google Assistant, Amazon Alexa, Apple Siri et les assistants similaires. Renvoie un tableau d'objets VoiceListing contenant des champs tels que name, voiceIdentifier et syncStatus.

TypeScript
const voice = await client.fetchVoiceListings(16808); console.log(voice.length + ' voice listings');for (const v of voice) {console.log(v.name, v.syncStatus);}

fetchDuplicateListings

Récupérez les fiches en double détectées pour un établissement donné. Renvoie un tableau d'objets DuplicateListing contenant des champs tels que id, site et listingUrl.

TypeScript
const duplicates = await client.fetchDuplicateListings(16808); for (const d of duplicates) {console.log(d.site, d.listingUrl);}

fetchAllDuplicateListings

Récupérez une synthèse des fiches en double pour tous les établissements du compte, avec un filtrage par étiquette et une pagination facultatifs. Contrairement à fetchDuplicateListings, cette méthode renvoie un objet de synthèse plutôt qu'un simple tableau.

TypeScript
// All duplicates across the accountconst rollup = await client.fetchAllDuplicateListings(); // Filter by tag and pageconst page2 = await client.fetchAllDuplicateListings({ tag: 'region:west', page: 2 });

Options

ParamètreTypeDescription
tagstringLimite les résultats aux établissements portant cette étiquette.
pagenumberNuméro de page (à partir de 1).

markListingsAsDuplicate

Marquez un ou plusieurs éléments de fiche comme doublons pour un établissement. La plateforme tentera de supprimer les profils signalés.

TypeScript
await client.markListingsAsDuplicate(16808, ['listing-item-id-1','listing-item-id-2',]);

Paramètres

ParamètreTypeDescription
locationIdstring | numberÉtablissement auquel appartiennent les éléments de fiche.
listingItemIdsstring[]Identifiants des éléments de fiche à signaler.

Il n'y a aucun indicateur de réussite à vérifier. Si la plateforme rejette l'écriture, le client lève une exception ValidationError ; une promesse résolue signifie donc que l'opération a réussi.

markListingsAsNotDuplicate

Retirez le marquage comme doublon des éléments de fiche marqués par erreur.

TypeScript
await client.markListingsAsNotDuplicate(16808, ['listing-item-id-1',]);

Paramètres

ParamètreTypeDescription
locationIdstring | numberÉtablissement auquel appartiennent les éléments de fiche.
listingItemIdsstring[]Identifiants des éléments de fiche dont le marquage doit être retiré.

connectListing

Associez un établissement à une fiche d'un compte Google ou Facebook connecté. Utilisez cette méthode après avoir connecté le compte et trouvé la fiche correspondante.

TypeScript
await client.connectListing(16808,'connected-listing-id','connected-account-id',);

Paramètres

ParamètreTypeDescription
locationIdstring | numberÉtablissement à associer.
connectedAccountListingIdstringIdentifiant de la fiche du compte connecté.
connectedAccountIdstringIdentifiant du compte Google ou Facebook connecté.

disconnectListing

Dissociez un établissement de sa fiche Google ou Facebook. Le nom du site est automatiquement converti en majuscules ; 'google' et 'GOOGLE' fonctionnent donc tous les deux.

TypeScript
await client.disconnectListing(16808, 'GOOGLE');

Paramètres

ParamètreTypeDescription
locationIdstring | numberÉtablissement à dissocier.
sitestringAnnuaire à déconnecter, par exemple 'GOOGLE' ou 'FACEBOOK'.

createGmbListing

Créez une fiche Google Business Profile pour un établissement existant à l'aide d'un compte Google connecté.

TypeScript
const result = await client.createGmbListing(16808, 'connected-account-id'); // Optionally place the new listing in a specific folderawait client.createGmbListing(16808, 'connected-account-id', {folderId: 'folder-id',});

Paramètres

ParamètreTypeDescription
locationIdstring | numberÉtablissement pour lequel créer la fiche.
connectedAccountIdstringIdentifiant du compte Google connecté.
options.folderIdstringDossier facultatif dans lequel créer la fiche.

Déroulement type d'un audit

listings_audit.ts
import { ListingsAPI } from 'listingsapi-js'; const client = new ListingsAPI(); // reads LISTINGSAPI_KEY from envconst LOCATION_ID = 16808; // Acme Dental const [premium, duplicates] = await Promise.all([client.fetchPremiumListings(LOCATION_ID),client.fetchDuplicateListings(LOCATION_ID),]); const unsynced = premium.filter((l) => l.syncStatus !== 'SYNCED');console.log(unsynced.length + ' unsynced listings'); if (duplicates.length > 0) {const ids = duplicates  .map((d) => d.id)  .filter((id): id is string => Boolean(id));await client.markListingsAsDuplicate(LOCATION_ID, ids);console.log('Marked ' + ids.length + ' duplicates');}