Profil bisnis

Ambil profil bisnis premium, suara, dan duplikat di direktori, kelola penyembunyian duplikat, dan hubungkan profil dengan SDK listingsapi-js.

Profil bisnis mewakili keberadaan suatu lokasi di masing-masing direktori (Google, Yelp, Bing, Alexa, Siri, dan sebagainya). Semua metode profil bisnis tersedia pada instans klien ListingsAPI dan cakupannya dibatasi oleh ID lokasi. ID lokasi numerik dikodekan secara otomatis, sehingga 16808 dan 'TG9jYXRpb246MTY4MDg=' dapat digunakan secara bergantian.

fetchPremiumListings

Ambil profil bisnis pada direktori premium untuk suatu lokasi: Google, Yelp, Facebook, dan direktori lainnya dalam jaringan direktori utama. Mengembalikan array objek Listing dengan field seperti id, site, syncStatus, displayStatus, dan listingUrl.

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

Nilai syncStatus yang mungkin mencakup SYNCED, PENDING, ERROR, dan NOT_CONNECTED.

fetchVoiceListings

Ambil profil bisnis pada asisten suara: Google Assistant, Amazon Alexa, Apple Siri, dan asisten serupa. Mengembalikan array objek VoiceListing dengan field seperti name, voiceIdentifier, dan 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

Ambil profil bisnis duplikat yang terdeteksi untuk lokasi tertentu. Mengembalikan array objek DuplicateListing dengan field seperti id, site, dan listingUrl.

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

fetchAllDuplicateListings

Ambil rekap profil bisnis duplikat di seluruh lokasi dalam akun, dengan pemfilteran berdasarkan tag dan paginasi opsional. Berbeda dengan fetchDuplicateListings, metode ini mengembalikan objek rekap, bukan array biasa.

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

Opsi

ParameterTipeDeskripsi
tagstringBatasi hasil ke lokasi yang memiliki tag ini.
pagenumberNomor halaman (dimulai dari 1).

markListingsAsDuplicate

Tandai satu atau beberapa item profil bisnis sebagai duplikat untuk suatu lokasi. Platform akan mencoba menyembunyikan profil yang ditandai.

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

Parameter

ParameterTipeDeskripsi
locationIdstring | numberLokasi yang terkait dengan item profil bisnis tersebut.
listingItemIdsstring[]ID item profil bisnis yang akan ditandai.

Tidak ada penanda keberhasilan yang perlu diperiksa. Jika platform menolak operasi penulisan, klien akan melempar ValidationError, sehingga promise yang terselesaikan berarti operasi berhasil.

markListingsAsNotDuplicate

Hapus penanda duplikat dari item profil bisnis yang salah ditandai.

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

Parameter

ParameterTipeDeskripsi
locationIdstring | numberLokasi yang terkait dengan item profil bisnis tersebut.
listingItemIdsstring[]ID item profil bisnis yang penandanya akan dihapus.

connectListing

Tautkan lokasi ke profil bisnis dari akun Google atau Facebook yang terhubung. Gunakan metode ini setelah menghubungkan akun dan menemukan profil bisnis yang sesuai.

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

Parameter

ParameterTipeDeskripsi
locationIdstring | numberLokasi yang akan ditautkan.
connectedAccountListingIdstringID profil bisnis dari akun yang terhubung.
connectedAccountIdstringID akun Google atau Facebook yang terhubung.

disconnectListing

Putuskan tautan lokasi dari profil bisnisnya di Google atau Facebook. Nama situs diubah menjadi huruf kapital secara otomatis, sehingga 'google' dan 'GOOGLE' sama-sama dapat digunakan.

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

Parameter

ParameterTipeDeskripsi
locationIdstring | numberLokasi yang tautannya akan diputuskan.
sitestringDirektori yang koneksinya akan diputuskan, misalnya 'GOOGLE' atau 'FACEBOOK'.

createGmbListing

Buat profil bisnis di Google Business Profile untuk lokasi yang sudah ada, menggunakan akun Google yang terhubung.

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

Parameter

ParameterTipeDeskripsi
locationIdstring | numberLokasi yang akan dibuatkan profil bisnis.
connectedAccountIdstringID akun Google yang terhubung.
options.folderIdstringFolder opsional tempat profil bisnis akan dibuat.

Alur kerja audit yang umum

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