İşletme kaydı hatalarını bulun ve düzeltin
Konumun sorunlu işletme kayıtlarını süzün, yayın platformunun nedenini okuyup uygun düzeltmeyi yapın, güvenle yeniden sorgulayın ve tüm hesabı tarayın.
Çoğu işletme kaydı müdahale gerektirmeden eşitlenir. Eşitlenmeyenler, nedenini displayStatus ve syncIssue alanlarında belirtir ve neredeyse her neden beş düzeltmeden biriyle giderilebilir. Bu kılavuz, ham işletme kaydı satırlarından başlayarak her hesap için nelerin engellendiğini ve bunlar için ne yapılması gerektiğini gösteren bir rapora kadar ilerler.
1. İşletme kayıtlarını alın ve sorunlu satırları tutun
Premium işletme kayıtlarını alın ve sorunsuz olanların tümünü eleyin. actionRequired değeri true olduğunda veya syncStatus değeri FAILED, CANNOT_SUBMIT ya da REQUIRING_ACTION olduğunda satır müdahale gerektirir. IN_PROGRESS ve PENDING_APPROVAL hata değildir; yayın platformunun kuyruğunu belirtirler.
curl -s https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY" \| jq '[.data.listingsForLocation[] | select(.actionRequired or (.syncStatus | IN("FAILED", "CANNOT_SUBMIT", "REQUIRING_ACTION")))]'{ "data": { "listingsForLocation": [ { "site": { "name": "Google Maps", "url": "maps.google.com" }, "syncStatus": "REQUIRING_ACTION", "displayStatus": "Connect your account to sync the listing", "actionRequired": true, "syncIssue": null }, { "site": { "name": "Local Mint", "url": "localmint.com" }, "syncStatus": "FAILED", "displayStatus": "Partner experiencing issues; awaiting response", "actionRequired": false, "syncIssue": "Publisher requires website URL" } ] }}2. Nedeni okuyun
Sorunlu bir satırı iki alan açıklar. displayStatus, satırın hangi aşamada olduğuna ilişkin platformun özetidir. syncIssue, yayın platformu bir neden belirtmişse onun kendi açıklamasıdır. İkisini de okuyun: yukarıdaki örnekte Local Mint'in displayStatus alanı iş ortağının sorunlar yaşadığını söyler, ancak syncIssue alanı gerçek nedeni, yani eksik web sitesini belirtir.
Tüm konumları listeleyin üzerinden yapılan her okumada konumun kendisi de bir createErrors dizisi içerir. Bu dizi, kayıt oluşturulurken bulunan doğrulama sorunlarını içerir ve bir satır syncIssue olmadan başarısız olduğunda bakılacak ikinci yerdir.
3. Nedeni düzeltmeyle eşleştirin
Engellenen satırların neredeyse tamamı az sayıdaki nedenden kaynaklanır.
Ülke ve gizli adres kurallarını kontrol etmek için plandaki siteleri bir kez alın ve önbelleğe kaydedin; liste sayfalandırılmaz ve nadiren değişir.
curl -s https://listingsapi.com/api/v4/plan-sites \-H "Authorization: API $LISTINGSAPI_KEY" \| jq '.data.planSites[] | select(.name == "Yelp") | {name, supportedCountries, hideAddressSupportedCountries}'{ "name": "Yelp", "supportedCountries": ["US", "CA", "GB", "DE", "FR"], "hideAddressSupportedCountries": ["US", "CA", "AU", "GB"]}Konumun countryIso değeri supportedCountries içinde değilse, ilgili yayın platformunun satırı hiçbir zaman CANNOT_SUBMIT durumundan çıkmaz. Yeniden denemek yerine bu satırı kapsam hesabınızdan çıkarın.
4. Düzeltmeden sonra yeniden sorgulayın
Bir konum güncellemesi, etkilenen yayın platformlarına yeni bir gönderimi tetikler. Satır, FAILED veya REQUIRING_ACTION durumundan yeniden IN_PROGRESS durumuna, ardından yayın platformu kaydı kabul ettiğinde SYNCED durumuna geçer. Yayın platformlarının işlem süresi dakikalardan haftalara kadar değişir, bu nedenle sorgulamayı saniyelerle değil, saatlerle ölçülen aralıklarla yapın.
Her sorgulama hız limitine dahil edilir. Bir 429 aldığınızda Retry-After değerini okuyun ve o kadar saniye bekleyin; SDK'lar aynı değerle RateLimitError hatası oluşturur.
# -D - prints response headers so you can see Retry-After on a 429curl -s -D - https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY" \| grep -i -E "^HTTP|^Retry-After"lastUpdate değerinin ilerlemesi, syncStatus henüz değişmeden bile yayın platformunun yeni gönderimi işlediğinin göstergesidir. Webhook kullanıyorsanız listing.submission olayı bu döngünün yerini alır.
5. Hesap genelinde bir tarama çalıştırın
Hesap genelindeki tüm engellenmiş satırları bulmak için GET /locations sonuçlarını sayfa sayfa gezin (bir imleç bağlantısı: first, after, edges[].node) ve her konum için premium uç noktasını bir kez çağırın. Sorunlu satırları, konumu anahtar olarak kullanan tek bir raporda toplayın. Python SDK, imleçleri auto_paging_iter() ile takip eder; Node SDK ise bunu fetchAll: true ile yapar. Örnekler, 4. adımdaki backoff yardımcı işlevini yeniden kullanır.
# One page of locations, then one listings call per location.# Repeat with &after=<pageInfo.endCursor> while hasNextPage is true.curl -s "https://listingsapi.com/api/v4/locations?first=50" \-H "Authorization: API $LISTINGSAPI_KEY" \| jq -r '.data.allLocations.edges[].node.id' \| while read -r id; do curl -s "https://listingsapi.com/api/v4/locations/$id/listings/premium" \ -H "Authorization: API $LISTINGSAPI_KEY" \ | jq --arg id "$id" '[.data.listingsForLocation[] | select(.syncStatus != "SYNCED" and .syncStatus != "COMPLETED") | {location: $id, site: .site.name, status: .syncStatus, issue: .syncIssue}]' sleep 6 # stay under 10 requests a minute on Launch doneRapor, hâlâ işlenmekte olan satırlarla gerçekten engellenmiş satırları bir arada gruplandırır. Raporu herhangi biriyle paylaşmadan önce 3. adımdaki tabloya göre ayırın: IN_PROGRESS ve PENDING_APPROVAL için sabır, REQUIRING_ACTION için bir bağlantı, FAILED için ise konumda bir alan gerekir.
Sonraki adımlar
- İşletme kaydı durumunu ve yayındaki bağlantıları kontrol edin: aynı verilerin sorunsuz tarafı.
- Bir konumu güncelleyin:
bizUrl, açıklama ve kategorileri ayarlayın. - Google'ı bağlayın ve konumları içe aktarın ve Facebook Sayfalarını bağlayın:
REQUIRING_ACTIONsatırlarındaki sorunları giderin. - Referans: Premium işletme kayıtlarını alın, Plandaki siteleri listeleyin, Tüm konumları listeleyin, Hata kodları.