掲載情報
listingsapi-js SDKを使用して、ディレクトリのプレミアム掲載情報、音声向け掲載情報、重複掲載情報を取得し、重複掲載情報の抑制を管理し、プロフィールを接続します。
掲載情報は、個々のディレクトリ(Google、Yelp、Bing、Alexa、Siri など)における拠点の登録内容を表します。掲載情報に関するすべてのメソッドは ListingsAPI クライアントインスタンスにあり、拠点 ID を対象とします。数値の拠点 ID は自動的にエンコードされるため、16808 と 'TG9jYXRpb246MTY4MDg=' はどちらも同じように使用できます。
fetchPremiumListings
Google、Yelp、Facebook、およびその他の主要ディレクトリネットワークにある、拠点のプレミアムディレクトリ掲載情報を取得します。id、site、syncStatus、displayStatus、listingUrl などのフィールドを持つ Listing オブジェクトの配列を返します。
const listings = await client.fetchPremiumListings(16808); for (const l of listings) {console.log(l.site, l.syncStatus, l.listingUrl);}syncStatus に指定できる値には、SYNCED、PENDING、ERROR、NOT_CONNECTED があります。
fetchVoiceListings
Google Assistant、Amazon Alexa、Apple Siri などの音声アシスタントの掲載情報を取得します。name、voiceIdentifier、syncStatus などのフィールドを持つ VoiceListing オブジェクトの配列を返します。
const voice = await client.fetchVoiceListings(16808); console.log(voice.length + ' voice listings');for (const v of voice) {console.log(v.name, v.syncStatus);}fetchDuplicateListings
特定の拠点で検出された重複掲載情報を取得します。id、site、listingUrl などのフィールドを持つ DuplicateListing オブジェクトの配列を返します。
const duplicates = await client.fetchDuplicateListings(16808); for (const d of duplicates) {console.log(d.site, d.listingUrl);}fetchAllDuplicateListings
アカウント内のすべての拠点を対象に、重複掲載情報の集計を取得します。必要に応じてタグによる絞り込みとページネーションを指定できます。fetchDuplicateListings とは異なり、単純な配列ではなく集計オブジェクトを返します。
// All duplicates across the accountconst rollup = await client.fetchAllDuplicateListings(); // Filter by tag and pageconst page2 = await client.fetchAllDuplicateListings({ tag: 'region:west', page: 2 });オプション
markListingsAsDuplicate
拠点に属する 1 件以上の掲載情報の項目に、重複フラグを設定します。プラットフォームは、フラグが設定されたプロフィールの表示を抑制しようとします。
await client.markListingsAsDuplicate(16808, ['listing-item-id-1','listing-item-id-2',]);パラメータ
確認できる成功フラグはありません。プラットフォームが書き込みを拒否すると、クライアントは ValidationError をスローするため、promise が正常に解決された場合は成功したことを意味します。
markListingsAsNotDuplicate
誤って重複とされた掲載情報の項目から、重複フラグを解除します。
await client.markListingsAsNotDuplicate(16808, ['listing-item-id-1',]);パラメータ
connectListing
接続済みの Google または Facebook アカウントにある掲載情報を、拠点に関連付けます。アカウントを接続し、対応する掲載情報を見つけた後に使用します。
await client.connectListing(16808,'connected-listing-id','connected-account-id',);パラメータ
disconnectListing
拠点と、その Google または Facebook の掲載情報との関連付けを解除します。サイト名は自動的に大文字に変換されるため、'google' と 'GOOGLE' のどちらも使用できます。
await client.disconnectListing(16808, 'GOOGLE');パラメータ
createGmbListing
接続済みの Google アカウントを使用して、既存の拠点の Google Business Profile 掲載情報を作成します。
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',});パラメータ
一般的な監査の手順
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');}