Listagens

Obtenha listagens premium, de voz e duplicadas em diretórios, gerencie a supressão de duplicatas e conecte perfis com o SDK listingsapi-js.

As listagens representam a presença de um local em diretórios individuais (Google, Yelp, Bing, Alexa, Siri e assim por diante). Todos os métodos de listagem estão na instância do cliente ListingsAPI e têm seu escopo definido por um ID de local. Os IDs numéricos de locais são codificados automaticamente, portanto 16808 e 'TG9jYXRpb246MTY4MDg=' são intercambiáveis.

fetchPremiumListings

Obtenha as listagens de um local em diretórios premium: Google, Yelp, Facebook e os demais diretórios da rede principal. Retorna um array de objetos Listing com campos como id, site, syncStatus, displayStatus e listingUrl.

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

Os valores possíveis de syncStatus incluem SYNCED, PENDING, ERROR e NOT_CONNECTED.

fetchVoiceListings

Obtenha listagens em assistentes de voz: Google Assistant, Amazon Alexa, Apple Siri e assistentes semelhantes. Retorna um array de objetos VoiceListing com campos como name, voiceIdentifier e 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

Obtenha as listagens duplicadas detectadas para um local específico. Retorna um array de objetos DuplicateListing com campos como id, site e listingUrl.

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

fetchAllDuplicateListings

Obtenha um consolidado das listagens duplicadas de todos os locais da conta, com filtragem por tag e paginação opcionais. Ao contrário de fetchDuplicateListings, este método retorna um objeto consolidado em vez de um simples 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 });

Opções

ParâmetroTipoDescrição
tagstringFiltra apenas os locais que têm esta tag.
pagenumberNúmero da página (começando em 1).

markListingsAsDuplicate

Marque um ou mais itens de listagem como duplicados para um local. A plataforma tentará suprimir os perfis marcados.

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

Parâmetros

ParâmetroTipoDescrição
locationIdstring | numberLocal ao qual os itens de listagem pertencem.
listingItemIdsstring[]IDs dos itens de listagem a marcar.

Não há um indicador de sucesso para verificar. Se a plataforma rejeitar a gravação, o cliente lança um erro ValidationError, portanto uma promise resolvida significa que a operação foi bem-sucedida.

markListingsAsNotDuplicate

Remova a marcação de duplicado dos itens de listagem que foram marcados incorretamente.

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

Parâmetros

ParâmetroTipoDescrição
locationIdstring | numberLocal ao qual os itens de listagem pertencem.
listingItemIdsstring[]IDs dos itens de listagem cuja marcação deve ser removida.

connectListing

Vincule um local a uma listagem de uma conta conectada do Google ou do Facebook. Use este método após conectar a conta e encontrar a listagem correspondente.

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

Parâmetros

ParâmetroTipoDescrição
locationIdstring | numberLocal a vincular.
connectedAccountListingIdstringID da listagem da conta conectada.
connectedAccountIdstringID da conta conectada do Google ou do Facebook.

disconnectListing

Desvincule um local de sua listagem no Google ou no Facebook. O nome do site é convertido automaticamente para letras maiúsculas, portanto tanto 'google' quanto 'GOOGLE' funcionam.

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

Parâmetros

ParâmetroTipoDescrição
locationIdstring | numberLocal a desvincular.
sitestringDiretório a desconectar, por exemplo, 'GOOGLE' ou 'FACEBOOK'.

createGmbListing

Crie uma listagem no Google Business Profile para um local existente usando uma conta conectada do 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âmetroTipoDescrição
locationIdstring | numberLocal para o qual criar a listagem.
connectedAccountIdstringID da conta conectada do Google.
options.folderIdstringPasta opcional na qual criar a listagem.

Fluxo de trabalho típico de auditoria

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