Mükerrer işletme kayıtlarını bulun ve yayından kaldırın
Konum ve hesap genelinde mükerrer işletme kayıtlarını listeleyin, kaldırılacakları onaylayın, yanlış tespitleri temizleyin, çözülene dek izleyin.
Mükerrer işletme kaydı, aynı işletmenin aynı dizindeki ikinci kaydıdır. Yorumları ve sıralama sinyallerini böler ve müşterilerin kafasını karıştırır. Tespit işlemi otomatik olarak çalışır. Bulunan kayıtları inceler, gerçekten mükerrer olanları onaylar ve geçerli olanları mükerrer listesinden çıkarırsınız.
Her mükerrer kayıt, temizleme sürecinin hangi aşamasında olduğunu gösteren bir durum bilgisi taşır:
1. Bir konumun mükerrer kayıtlarını listeleyin
GET /locations/{locationId}/listings/duplicates, site gruplarından oluşan düz bir dizi döndürür. Her grup, şüpheli mükerrer kayıtları içeren bir listings dizisine sahip bir dizindir ve her kayıtta bir listingItemId, değerlendirmek için açabileceğiniz bir liveLink ve bir status bulunur.
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/duplicates \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "duplicateListingsForLocation": [ { "id": "U2l0ZToxNTA=", "name": "City Squares", "url": "citysquares.com", "listings": [ { "id": "RHVwbGljYXRlOjIzNTk4NDUw", "listingItemId": "TGlzdGluZ0l0ZW06MjM1OTg0NTA=", "name": "Woodbury Train Station", "liveLink": "http://citysquares.com/b/woodbury-train-station-23598450", "status": "POTENTIAL" } ] } ] }}Boş bir dizi, hiçbir şey tespit edilmediği anlamına gelir. listingItemId değerini saklayın: her iki işaretleme endpoint'i de bu değeri alır. Node SDK, grupları her mükerrer kayıt için bir dizi olacak şekilde düzleştirir; bu nedenle sonraki işleme iletilecek değer buradaki d.id değeridir.
2. Hesap genelindeki mükerrer kayıtları bir araya getirin
GET /locations/listings/duplicates, hesap genelindeki görünümdür. Offset tabanlı bir sayfadır: girdi olarak page ve perPage alır; çıktı olarak records[] ile birlikte pageInfo.totalRecords ve pageInfo.totalPages verir. status için varsayılan değer POTENTIAL, tag için ise all olduğundan, parametresiz bir çağrı anahtarın görebildiği tüm açık mükerrer kayıtları döndürür. Sonuçları tek bir dizinle sınırlandırmak için siteId (bir plan-sites id'si) ekleyin.
curl "https://listingsapi.com/api/v4/locations/listings/duplicates?status=POTENTIAL&page=1&perPage=50" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "duplicateListingsRollup": { "pageInfo": { "hasNextPage": true, "totalPages": 34, "totalRecords": 1673 }, "records": [ { "id": "3329229", "name": "Woodbury Train Station", "duplicateProcessingState": "POTENTIAL", "liveLink": "http://citysquares.com/b/woodbury-train-station-23598450", "locationId": "73451", "siteName": "City Squares", "siteUrl": "citysquares.com" } ] } }}Toplu görünüm, mükerrer kayıtların nerede olduğunu gösterir; duplicateProcessingState, yukarıdakiyle aynı yaşam döngüsü durumudur. Bir kayıt üzerinde işlem yapmak için kaydın locationId değerini 1. adımdaki konum bazındaki endpoint'e iletin ve oradaki listingItemId değerini okuyun. Sayfaları teker teker gezin; aralıksız çalışan bir döngü, 429 ile karşılaşmanın en hızlı yoludur.
3. Yayından kaldırılması için bir mükerrer kaydı onaylayın
İnceleyen kişi bir kaydın mükerrer olduğunu onayladıktan sonra, input altındaki listingItemId değerleriyle POST /locations/listings/mark-as-duplicate çağrısını yapın. Bir konuma ait onaylanmış tüm id'leri tek bir çağrıda toplu olarak gönderin. locationId isteğe bağlıdır ve isteğin kapsamını o konumla sınırlar.
curl -X POST https://listingsapi.com/api/v4/locations/listings/mark-as-duplicate \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="] }}'{ "data": { "markAsDuplicate": { "success": true, "errors": null } }}success: true, öğelerin kabul edildiği ve PROCESSING durumuna geçirildiği anlamına gelir. success: false içeren bir 200 veya bir 400, öğeleri code ve message taşıyan bir errors dizisiyle birlikte gelir; bunun olağan nedeni bilinmeyen veya hatalı biçimlendirilmiş bir id'dir. SDK'lar bu durumda ValidationError hatasını fırlatır.
4. Yanlış bir tespiti temizleyin
Tespit mekanizması ihtiyatlı davranır. Aynı franchise ağına bağlı başka bir şube, ikinci bir geçerli profil veya adı değiştirilmiş bir konum mükerrer gibi görünebilir. POST /locations/listings/mark-as-not-duplicate, aynı istek gövdesini alır ve kaydı her iki listeden de kalıcı olarak kaldırır. 3. adımda yapılan hatalı bir işlemi de bu şekilde geri alabilirsiniz.
curl -X POST https://listingsapi.com/api/v4/locations/listings/mark-as-not-duplicate \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="] }}'Yanıt, 3. adımdakiyle aynı success ve errors alanlarını içeren data.markAsNotDuplicate olur.
5. İlerlemeyi takip edin
Hangi kayıtların hâlâ yayın platformlarında işlem gördüğünü görmek için toplu görünümü status=PROCESSING ile, hangilerinin kaldırıldığını doğrulamak için ise status=FIXED ile yeniden okuyun. İki SDK da henüz status filtresini sunmadığından, endpoint'i aynı Authorization header'ıyla doğrudan çağırın.
curl "https://listingsapi.com/api/v4/locations/listings/duplicates?status=PROCESSING&page=1&perPage=50" \-H "Authorization: API $LISTINGSAPI_KEY" curl "https://listingsapi.com/api/v4/locations/listings/duplicates?status=FIXED&page=1&perPage=50" \-H "Authorization: API $LISTINGSAPI_KEY"perPage=1 isteyip pageInfo.totalRecords değerini okuyarak dört çağrıda her durumun kayıt sayısını elde edebilirsiniz. liveLink değeri hâlâ erişilebilir bir adrese yönlenen bir FAILED kaydı manuel inceleme gerektirir; bağlantısı artık çalışmayan bir FAILED kaydı ise yayın platformu tarafından kendiliğinden düzeltilmiştir ve 4. adımla listeden çıkarılabilir.
Sonraki adımlar
- İşletme kaydı durumunu ve yayındaki bağlantıları kontrol edin: her dizindeki birincil işletme kaydı; yinelenen kaydın rekabet ettiği kayıt budur.
- İşletme kaydı hatalarını bulun ve düzeltin: diğer temizleme turu.
- Referans: Bir konumun yinelenen işletme kayıtlarını alın, Bir hesabın tüm yinelenen işletme kayıtlarını alın, İşletme kaydını yinelenen kayıt olarak işaretleyin, İşletme kaydını yinelenmeyen kayıt olarak işaretleyin.