Ankündigung

Einklappen
Keine Ankündigung bisher.

Umkreissuche reagiert nicht bei jeder Anfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umkreissuche reagiert nicht bei jeder Anfrage

    Hallo zusammen,

    ich habe ein merkwürdiges Phänomen bei der Umkreissuche. Ich trage meine PLZ und das Land ein und wähle z.Bsp. 40 km Radius aus. Klicke dann auf Suchen und bekomme die entsprechenden Ergebnisse. Dann ändere ich den Radius auf 35 km, klicke wieder auf Suchen und bekomme nichts. "Ihr Inhaltselement ist leer". Klicke ich noch einmal auf Suchen, bekomme ich meine Liste.
    Wenn ich aus der Liste einen Eintrag auswähle um auf die Detailseite zu springen und dann wieder zurück komme, ist meine Liste wieder leer.
    Das passiert nicht jedes Mal, aber oft genug um zu nerven und was viel schlimmer ist, so wird es der Kunde nicht abnehmen.

    Habe gerade noch etwas ausprobiert: Debugmodus von Contao aktiviert und keine Probleme gehabt. Ich konnte alle Varianten durchprobieren und bekam immer eine Liste angezeigt. Sobald der Debugmodus wieder ausgeschaltet ist, blieb die Liste wieder sporadisch weg.
    Das ist sehr seltsam.


    Gruß Andy
    Zuletzt geändert von Ynda; 16.02.2018, 14:12.

  • #2
    Gibt es eine Möglichkeit, zusätzliche Informationen sichtbar zu machen? Z. Bsp. die komplette Rückantwort der Google API?

    Gruß Andy

    Kommentar


    • #3
      Dieses Verhalten lässt sich auch tatsächlich auf der Livedemo reproduzieren. Dort passiert es zwar nicht ganz so häufig wie bei uns, aber so jede 4.-5. Anfrage wird mit Geolocation: Center (-1,-1) quittiert.

      Gruß Andy

      Kommentar


      • #4
        Hallo zusammen,
        ich dachte immer, wenn sich ein Fehler auf der Demoseite reproduzieren lässt, ist es auch ein Fehler und als solcher zu behandeln.
        Zu diesem Thema habe ich bisher leider noch kein Feedback erhalten. Wäre schön wenn sich dazu jemand melden könnten. Entweder um zu bestätigen, dass es so ist, oder auch wenn alles funktioniert.
        Aber eine Funktion, die ab und zu nicht richtig arbeitet, kann ich so nicht einsetzen.

        Grüße an alle die das lesen
        Andy

        Kommentar


        • #5
          Bevor hier wieder mit falschen Tatsachen und Unwissenheit ein vermeintliches "Problem" im System dargestellt wird, muss hier der Sachverhalt geklärt werden. (dies wurde bereits in anderen Threads in diesem Forum aufgezeigt)

          Warum läuft die Umkreissuche ins Leere?
          Ganz einfach, weil das tägliche Limit an API Abfragen schlicht weg ausgeschöpft ist. (dies kann jeder in seinem Systemlog einsehen). Anbei ein Log aus unserem System nach den Abfragen von User Ynda. Klicke auf die Grafik für eine vergrößerte Ansicht

Name: screenshot_2851.jpg
Ansichten: 208
Größe: 106,8 KB
ID: 10553




          Wie funktioniert so eine Umkreissuche im Detail?
          Eine Umkreissuche muss anhand von einer gegebenen Adresse die geografischen Koordinaten erfragen. Dies erfolgt in unserem Fall mit einer Abfrage auf die Google Geocoder API.
          Hier die Nutzungsbedingungen seitens Google: https://developers.google.com/maps/d...e-limits?hl=de

          Schauen wir uns die Bedingungen für die kostenlose Nutzung an (Nutzung mit API Key (machen wir online z.B. nicht, wir nutzen gar keinen Key. Ohne Key ist man gleich im gedrosselten Bereich)). *
          2 Faktoren:
          1. 2500 kostenlose Abfragen pro Tag
          2. 50 Anforderungen pro Sekunde
          (Summe aus client und server, was das ganze noch geringer macht)

          Das klingt erstmal ganz entspannt und viel. Ist es auch, für ein lokales System oder auch erstmal für jeden Root-Server z.B. zu Hause im localhost, fixe IP usw. Da kann man getrost 2500x refresh drücken am Tag und kriegt für seine eine Abfrage eine Antwort.

          Das entspricht aber keinem realen Szenario. Daher ein Fallbeispiel, was der Realität sicher deutlich näher kommt (es ist trotzdem nur ein Rechenbeispiel!):

          Shared Hosts (quasi 80% aller Webseiten) mit 50 Domains auf dem Server. Unsere Seite ist eine davon. (das ist eine sehr geringe Zahl, lässt sich aber gut rechnen)
          Jede dieser 50 Domains nutzt eine Google Map mit genau einem Marker (Merke: jeder weitere Marker entspricht einer weiteren Geocoder Abfrage)

          2500 / 50 = 50 -> plötzlichen stehen nur noch 50 kostenlose Abfragen pro Tag zur Verfügung (50 im Nenner)
          ---
          Jetzt wird die Seite natürlich nicht nur einmal am Tag, genau einmal Aufgerufen. -> hier entsteht das 1. Problem -> shared host.

          Ein Shared Hosting System hat nach aussen für alle Domains die gleiche IP. Sprich, alle 50 Domains addieren sich, inkl. der Aufrufe je Besucher usw. usw. Ich spare mir die Rechnung hier, jeder merkt selbst wie schnell plötzlich 50 Aufrufe weg sind.
          -> Damit ist Faktor 1 bereits am Limit
          ----
          ----

          Kurz Faktor 2 betrachtet: 50 Abfragen je Sekunde.
          Jetzt wieder das Shared Hosting Problem (für Google eine fixe IP). 50 Domains haben 50 Besucher, die im gleichen Moment eine Abfrage brauchen. Der 51. fliegt über Bord. Das klingt sicher sehr verschönt, jetzt betrachte man aber reale Besucherzahlen und setzt Faktor 100 oder mehr auf die Besucher. Schon wird eine Sekunde sehr sehr lang.

          ---
          Ok, wir sind jetzt bereits an dem Punkt, wo unsere Bandbreite an kostenlosen Abfragen bereits ausgeschöpft ist.

          Was macht Google? Google reduziert drastisch, macht aber erstmal nicht ganz dich. (Das System kennt man von Handyverträgen, man wird gedrosselt)
          Das Limit der Anfragen je Sekunde wird auf ca. 6-8 reduziert (50 war bereits zu wenig).

          Was kann man also machen?
          CC oder andere Softwares tun das, was in ihrem Rahmen möglich ist. Abfragen bzw. Werte werden zwischengespeichert und wenn nötig abgeholt, ohne erneute Abfragen zu tätigen. Diese Daten liegen für den jeweiligen Seitenaufruf dann bereit. (vergleichbar mit Contao Models).
          Eine Zwischenspeicherung oder gar Datensammlung von Adressdaten wird sich in keiner Software etablieren, weil es an die Grenzen des Datenschutzes geht. -> daher wird auch CC NIE Benutzeradresseingaben in der Session etc. ablegen.
          Wem das egal ist oder die Besucher darauf hinweist, findet in der Zwischenspeicherung (z.B. in einer gesonderten Tabelle "lookup table") natürlich ein gutes System spätere Abfragen zu vermeiden und baut sich quasi ein Nachschlagewerk an Koordinaten zu Adressen auf.

          Was kann also weiterhin getan werden?
          Ein Wiederholungssystem kann etabliert werden nach dem System: Probiere noch weitere x-mal, warte 2 Sekunden (oder länger), probiere erneut. Mit etwas Glück bekommt man dann einen der begehrten Slots innerhalb der 6-8 Anfragen je Sekunde. -> das ist z.B. in unseren Live-Seiten der Fall.
          Natürlich: Das System schläft in dieser Zeit. Damit verzögert sich der Seitenaufruf um die gegebene Zeit z.B. 2sek. Warten * 3 Versuche = 6Sek. (ohne Chance auf Gewinn)

          Was kann also wirklich getan werden:
          • Google ist Geschäftsmann: Einen kommerziellen-Schlüssel erwerben
          • Keine Shared Host Lösungen für Webseiten, die eine große Anzahl an Geodaten benötigen (Immer im Hinterkopf, jede Anfrage einer neuen Adresse, Maps Marker etc. ist eine nötige API Abfrage auf Google, wenn man Koordinaten benötigt!).
          • Fixe IP beim Provider beantragen
          • Kostenlose Alternativen suchen, vielleicht OpenStreet oder ähnliches. Ich persönlich sehe Google’s Dienst allerdings als den derzeit besten an bzw. andere Dienstleister machen’s auch nicht kostenlos.
          —-

          * Wie man einen Google Geocoder API Key erstellt ist hier ausführlich aufgezeigt: http://forum.premium-contao-themes.c...-api-key-zwang
          Angehängte Dateien
          Zuletzt geändert von Tim; 22.02.2018, 09:03.
          http://www.premium-contao-themes.com

          Kommentar


          • #6
            Hi Tim,
            super damit kann man doch prima arbeiten.
            Vielen Dank, dass du dir die Zeit genommen hast, so ausführlich darauf zu antworten.

            Gruß Andy

            Kommentar


            • #7
              Ein Nachtrag zu unserem Live-System:
              premium-contao-themes.com liegt auf einem root-Server. Wir haben also eine fixe IP. Schon mal eine gute Ausgangsbasis. Wir nutzen keinen API-Key für die Geocoder Abfragen (daher schon mal gedrosselt, nicht gut aber ok )

              Jetzt betreiben wir aber leider mehr als nur eine Seite damit. Betrachten wir nur Eclipse mit 180 Demos, die alle eine Google Map laden und setzen hier einen Besucherfaktor von 10 Besuchern dieser Seiten auf, die in genau der gleichen Sekunde die Seiten betrachten wollen: Das macht für Google 1800 Abfragen in dieser Sekunde.

              Klar, das ist nicht die Realität. Aber es zeigt, warum auch unser Live System mal geblockt wird und mal nicht.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Danke für die ausführlichen Ausführungen dazu (die sicher weit über den hier notwendigen Support hinausgehen).
                Eine Frage noch dazu. Das Ganze gilt doch pro API, die auf dem Server eingesetzt wird, oder? Wenn jeder Kunde eine eigene API in seiner Installation verwendet, hat jeder auch die individuellen LImits?!

                Kommentar


                • #9
                  Hi eblick,

                  in unserem Fall kommen ja "nur" 2 API's zum Tragen. Einmal die zur Berechnung der Geokoordinaten und einmal die zur Anzeige auf einer Map. Dafür greifen jeweils die Limits des API-Keys, je nach Vertrag. Darüber hinaus, solltest du darauf achten, das jeder Server (Serverkey) seinen eigenen Key hat. Das kann man durch Eingabe einer Domain oder IP einschränken. Auch wenn es anders geht solltest du aber tatsächlich für jeden Kunden und für jeden Server einen eigenen API-Key generieren. Ist auf jeden Fall eine saubere Trennung. Noch besser ist es, den Kunden dazu zu bringen, seinen eignen API-Key zu generieren. In diesem Zuge kann man dann auch über die Limits reden, so dass das nicht unter den Tisch fällt und für Überraschungen sorgt, wenn diese mal überschritten werden.
                  In vielen Fällen reichen die Kontingente der kostenlosen API-Key's aus.

                  Gruß Andy
                  Zuletzt geändert von Ynda; 19.03.2018, 09:51.

                  Kommentar


                  • #10
                    Hier laufen mehrere Kunden auf einem gemeinsamen Server.
                    Also bei mir bekommt jeder Kunde grundsätzlich einen eigenen Api-Key für seine Installation.
                    Das ist ja der, der auch in die CE/CC Templates eingefügt wird.
                    Heißt dies, dass hier das Limit dann auch pro Kunde/Api-Key greift oder limitiert der gemeinsamen Server noch etwas?

                    Kommentar


                    • #11
                      Da bin ich mir nicht 100%ig sicher. Wenn du mehrere Serverkeys ohne IP-Einschränkung verwendest, dann sollte jeder Key sein eigenes Limit haben. Wenn du aber alle Schlüssel auf eine IP-Adresse beschränkst, kann ich dir nicht genau sagen was Google dazu sagt. Evtl. für diesen Fall mal bei Google nachfragen. Wir hosten nicht selber, darum hat bei uns jeder Kunden in den meisten Fällen eine eigene IP (vServer).

                      Gruß Andy

                      Kommentar


                      • #12
                        Ein Request löst auf die IP auf. Limit je IP. Das ist wie ein Traffic-Limit in einem Telekom LTE Vertrag. Im LAN hängen 2 Rechner, die kommunizieren aber über eine WAN nach aussen. Das ist der Faktor, der für Google relevant ist.

                        Hast du zwei Kunden, mit zwei Keys auf gleicher IP hocken, teilen die sich das Limit. In einen Shared hosting haste du schnell mal 50 Kunden oder 100 oder mehr.

                        Dieses starre Limit-Denken bricht Google nur mit kommerziellen Schlüsseln. Hier "schluckt" Google quasi alle anderen für dich und lässt dich passieren im Rahmen des neu gekaufen Limits.
                        http://www.premium-contao-themes.com

                        Kommentar

                        Lädt...
                        X