掲載情報

listingsapi-js SDKを使用して、ディレクトリのプレミアム掲載情報、音声向け掲載情報、重複掲載情報を取得し、重複掲載情報の抑制を管理し、プロフィールを接続します。

掲載情報は、個々のディレクトリ(Google、Yelp、Bing、Alexa、Siri など)における拠点の登録内容を表します。掲載情報に関するすべてのメソッドは ListingsAPI クライアントインスタンスにあり、拠点 ID を対象とします。数値の拠点 ID は自動的にエンコードされるため、16808 と 'TG9jYXRpb246MTY4MDg=' はどちらも同じように使用できます。

fetchPremiumListings

Google、Yelp、Facebook、およびその他の主要ディレクトリネットワークにある、拠点のプレミアムディレクトリ掲載情報を取得します。id、site、syncStatus、displayStatus、listingUrl などのフィールドを持つ Listing オブジェクトの配列を返します。

TypeScript
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 オブジェクトの配列を返します。

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

特定の拠点で検出された重複掲載情報を取得します。id、site、listingUrl などのフィールドを持つ DuplicateListing オブジェクトの配列を返します。

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

fetchAllDuplicateListings

アカウント内のすべての拠点を対象に、重複掲載情報の集計を取得します。必要に応じてタグによる絞り込みとページネーションを指定できます。fetchDuplicateListings とは異なり、単純な配列ではなく集計オブジェクトを返します。

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

オプション

パラメータ型説明
tagstringこのタグが付いている拠点に絞り込みます。
pagenumberページ番号(1 から始まります)。

markListingsAsDuplicate

拠点に属する 1 件以上の掲載情報の項目に、重複フラグを設定します。プラットフォームは、フラグが設定されたプロフィールの表示を抑制しようとします。

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

パラメータ

パラメータ型説明
locationIdstring | number掲載情報の項目が属する拠点です。
listingItemIdsstring[]フラグを設定する掲載情報の項目の ID です。

確認できる成功フラグはありません。プラットフォームが書き込みを拒否すると、クライアントは ValidationError をスローするため、promise が正常に解決された場合は成功したことを意味します。

markListingsAsNotDuplicate

誤って重複とされた掲載情報の項目から、重複フラグを解除します。

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

パラメータ

パラメータ型説明
locationIdstring | number掲載情報の項目が属する拠点です。
listingItemIdsstring[]フラグを解除する掲載情報の項目の ID です。

connectListing

接続済みの Google または Facebook アカウントにある掲載情報を、拠点に関連付けます。アカウントを接続し、対応する掲載情報を見つけた後に使用します。

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

パラメータ

パラメータ型説明
locationIdstring | number関連付ける拠点です。
connectedAccountListingIdstring接続済みアカウントにある掲載情報の ID です。
connectedAccountIdstring接続済みの Google または Facebook アカウントの ID です。

disconnectListing

拠点と、その Google または Facebook の掲載情報との関連付けを解除します。サイト名は自動的に大文字に変換されるため、'google' と 'GOOGLE' のどちらも使用できます。

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

パラメータ

パラメータ型説明
locationIdstring | number関連付けを解除する拠点です。
sitestring接続を解除するディレクトリです(例:'GOOGLE' または 'FACEBOOK')。

createGmbListing

接続済みの Google アカウントを使用して、既存の拠点の Google Business Profile 掲載情報を作成します。

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

パラメータ

パラメータ型説明
locationIdstring | number掲載情報を作成する対象の拠点です。
connectedAccountIdstring接続済みの Google アカウントの ID です。
options.folderIdstring掲載情報を作成するフォルダです(省略可能)。

一般的な監査の手順

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