Fichas

Obtén fichas prémium, de voz y duplicadas en directorios, gestiona la supresión de duplicados y conecta perfiles con el SDK listingsapi-js.

Las fichas representan la presencia de una ubicación en cada directorio (Google, Yelp, Bing, Alexa, Siri, etc.). Todos los métodos de fichas están disponibles en la instancia del cliente ListingsAPI y se limitan a un ID de ubicación. Los ID numéricos de ubicación se codifican automáticamente, por lo que 16808 y 'TG9jYXRpb246MTY4MDg=' son intercambiables.

fetchPremiumListings

Obtén las fichas de una ubicación en directorios prémium: Google, Yelp, Facebook y el resto de la red principal de directorios. Devuelve un array de objetos Listing con campos como id, site, syncStatus, displayStatus y listingUrl.

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

Los valores posibles de syncStatus incluyen SYNCED, PENDING, ERROR y NOT_CONNECTED.

fetchVoiceListings

Obtén las fichas en asistentes de voz: Google Assistant, Amazon Alexa, Apple Siri y asistentes similares. Devuelve un array de objetos VoiceListing con campos como name, voiceIdentifier y 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

Obtén las fichas duplicadas detectadas para una ubicación específica. Devuelve un array de objetos DuplicateListing con campos como id, site y listingUrl.

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

fetchAllDuplicateListings

Obtén un resumen de las fichas duplicadas de todas las ubicaciones de la cuenta, con filtrado por etiquetas y paginación opcionales. A diferencia de fetchDuplicateListings, devuelve un objeto de resumen en lugar de un simple array.

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

Opciones

ParámetroTipoDescripción
tagstringFiltra las ubicaciones que tienen esta etiqueta.
pagenumberNúmero de página (a partir de 1).

markListingsAsDuplicate

Marca uno o más elementos de ficha como duplicados para una ubicación. La plataforma intentará suprimir los perfiles marcados.

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

Parámetros

ParámetroTipoDescripción
locationIdstring | numberUbicación a la que pertenecen los elementos de ficha.
listingItemIdsstring[]ID de los elementos de ficha que se van a marcar.

No hay ningún indicador de éxito que comprobar. Si la plataforma rechaza la escritura, el cliente lanza un ValidationError, por lo que una promesa resuelta indica que la operación se ha completado correctamente.

markListingsAsNotDuplicate

Elimina la marca de duplicado de los elementos de ficha que se marcaron por error.

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

Parámetros

ParámetroTipoDescripción
locationIdstring | numberUbicación a la que pertenecen los elementos de ficha.
listingItemIdsstring[]ID de los elementos de ficha cuya marca se va a eliminar.

connectListing

Vincula una ubicación a una ficha de una cuenta conectada de Google o Facebook. Usa este método después de conectar la cuenta y encontrar la ficha correspondiente.

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

Parámetros

ParámetroTipoDescripción
locationIdstring | numberUbicación que se va a vincular.
connectedAccountListingIdstringID de la ficha de la cuenta conectada.
connectedAccountIdstringID de la cuenta conectada de Google o Facebook.

disconnectListing

Desvincula una ubicación de su ficha de Google o Facebook. El nombre del sitio se convierte automáticamente a mayúsculas, por lo que tanto 'google' como 'GOOGLE' funcionan.

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

Parámetros

ParámetroTipoDescripción
locationIdstring | numberUbicación que se va a desvincular.
sitestringDirectorio que se va a desconectar, por ejemplo, 'GOOGLE' o 'FACEBOOK'.

createGmbListing

Crea una ficha de Google Business Profile para una ubicación existente mediante una cuenta conectada de Google.

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',});

Parámetros

ParámetroTipoDescripción
locationIdstring | numberUbicación para la que se va a crear la ficha.
connectedAccountIdstringID de la cuenta conectada de Google.
options.folderIdstringCarpeta opcional en la que se va a crear la ficha.

Flujo de trabajo habitual de auditoría

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');}