Fehler bei Einträgen finden und beheben
Filtern Sie auffällige Standorteinträge, lesen Sie Plattformbegründungen, beheben Sie Fehler, fragen Sie sicher erneut ab und prüfen Sie das gesamte Konto.
Die meisten Einträge werden ohne Eingriff synchronisiert. Bei den übrigen erfahren Sie in displayStatus und syncIssue, warum das nicht gelingt, und fast jede Ursache lässt sich einer von fünf Korrekturen zuordnen. Diese Anleitung führt von den unverarbeiteten Eintragszeilen zu einem Bericht pro Konto, der zeigt, was blockiert ist und was Sie dagegen tun können.
1. Einträge abrufen und problematische Zeilen behalten
Rufen Sie die Premium-Einträge ab und entfernen Sie alle fehlerfreien Zeilen aus dem Ergebnis. Eine Zeile erfordert Aufmerksamkeit, wenn actionRequired den Wert true hat oder wenn syncStatus den Wert FAILED, CANNOT_SUBMIT oder REQUIRING_ACTION hat. IN_PROGRESS und PENDING_APPROVAL sind keine Fehler; sie kennzeichnen die Warteschlange der Plattform.
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. Begründung lesen
Zwei Felder erklären eine problematische Zeile. displayStatus ist die Zusammenfassung der Plattform zum aktuellen Stand der Zeile. syncIssue ist die eigene Begründung der Plattform, sofern sie eine angegeben hat. Lesen Sie beide: Im obigen Beispiel besagt displayStatus von Local Mint, dass beim Partner Probleme auftreten, aber syncIssue nennt die eigentliche Ursache: eine fehlende Website.
Der Standort selbst enthält außerdem bei jedem Lesezugriff über Alle Standorte auflisten ein createErrors-Array. Es enthält Validierungsprobleme, die beim Erstellen des Datensatzes gefunden wurden, und ist eine weitere Anlaufstelle, wenn eine Zeile ohne syncIssue fehlschlägt.
3. Der Ursache die passende Korrektur zuordnen
Eine kleine Gruppe von Ursachen ist für fast jede blockierte Zeile verantwortlich.
Um die Regeln für Länder und ausgeblendete Adressen zu prüfen, rufen Sie die Websites des Tarifs einmal ab und speichern Sie sie zwischen; die Liste ist nicht paginiert und ändert sich selten.
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"]}Wenn countryIso des Standorts nicht in supportedCountries enthalten ist, wird die Zeile dieser Plattform den Status CANNOT_SUBMIT nie verlassen. Schließen Sie sie aus Ihrer Abdeckungskennzahl aus, statt es erneut zu versuchen.
4. Status nach der Korrektur erneut abfragen
Eine Standortaktualisierung löst eine erneute Übermittlung an die betroffenen Plattformen aus. Die Zeile wechselt von FAILED oder REQUIRING_ACTION zurück zu IN_PROGRESS und anschließend zu SYNCED, sobald die Plattform den Eintrag annimmt. Plattformen benötigen Minuten bis Wochen, fragen Sie den Status daher in Abständen von Stunden und nicht von Sekunden ab.
Jede Statusabfrage wird auf das Anfragelimit angerechnet. Lesen Sie bei einem 429 den Wert von Retry-After und warten Sie entsprechend viele Sekunden; die SDKs lösen RateLimitError mit demselben Wert aus.
# -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"Wenn lastUpdate fortgeschrieben wird, zeigt dies, dass die Plattform die neue Übermittlung verarbeitet hat, noch bevor sich syncStatus ändert. Wenn Sie Webhooks verwenden, ersetzt das Ereignis listing.submission diese Schleife.
5. Führen Sie eine kontoweite Prüfung durch
Um alle blockierten Zeilen im gesamten Konto zu finden, durchlaufen Sie die Seiten von GET /locations (eine Cursor-Verbindung: first, after, edges[].node) und rufen Sie den Premium-Endpunkt einmal pro Standort auf. Fassen Sie die problematischen Zeilen in einem Bericht zusammen, in dem der Standort als Schlüssel dient. Das Python SDK folgt den Cursorn mit auto_paging_iter(); das Node SDK verwendet dafür fetchAll: true. Die Beispiele verwenden die Backoff-Hilfsfunktion aus Schritt 4 erneut.
# 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 doneDer Bericht fasst Zeilen, die noch in Bearbeitung sind, mit tatsächlich blockierten Zeilen zusammen. Teilen Sie ihn anhand der Tabelle in Schritt 3 auf, bevor Sie ihn weitergeben: IN_PROGRESS und PENDING_APPROVAL erfordern Geduld, REQUIRING_ACTION erfordert eine Verbindung und FAILED erfordert ein Feld am Standort.
Nächste Schritte
- Status der Einträge und Live-Links prüfen: die fehlerfreie Seite derselben Daten.
- Einen Standort aktualisieren: Legen Sie
bizUrl, Beschreibung und Kategorien fest. - Google verbinden und Standorte importieren und Facebook-Seiten verbinden: Beheben Sie die Probleme der
REQUIRING_ACTION-Zeilen. - Referenz: Premium-Einträge abrufen, Websites eines Plans auflisten, Alle Standorte auflisten, Fehlercodes.