PHP Sponsor-Verfügbarkeit

suicidus

Fuuuuu
ID: 314529
L
13 Mai 2009
766
92
Moin, ich hab auf meiner Seite in paar Banner-Rotationen meiner Sponsoren eingebaut. In letzter Zeit ist mir aufgefallen, das einige ab und an wohl Server-Probleme, ewig laden und dementsprechen lange brauchen um mir die Banner auszuliefern. Und genau so lange lädt meine Seite nicht komplett fertig, was nervig ist. Ausbauen möchte ich die Werbung aber auch nicht.

Gibt es da irgendwie eine PHP-Abfrage, um das zu umgehen? Ich dachte mir das so, das wenn die Seite des Sponsors länger als vielleicht 5 Sekunden braucht, abgebrochen wird. Vielleicht geht das auch einfacher. Die Rotation wird wie üblich eingebucht per:

HTML:
<script type="text/javascript" src="http://www.xxx.de/kamp/rot.php?art=bannerview&uid=xx&sid=xxx"></script>
 

Greggy

Kies-Media.de
ID: 279865
L
27 Juli 2007
578
38
bau die Bannerrotation doch auf eine extra seite, und binde diese per iframe in deine Hauptseite ein

=>

deine Seite wird normal geladen, und falls der sponsor nicht erreichbar ist, bleibt der iframe leer....
 

theHacker

sieht vor lauter Ads, den Content nicht mehr
Teammitglied
ID: 69505
L
20 April 2006
22.643
1.280
Gibt es da irgendwie eine PHP-Abfrage, um das zu umgehen?
Natürlich. Frag vorher mit PHP nach. Da kannst du ja abbrechen, wenns dir zu lang dauert und n anderen Sponsor wählen. Diese Zeit wartet der Benutzer natürlich auch.
Am besten wäre es also, wenn du im Hintergrund die Sponsoren auf Verfügbarkeit überprüfst, so fällt beim Request keine zusätzliche Zeit für die Überprüfung an.

Is aber alles keine 100%-Lösung, da es ja immer sein kann, dass zwar die Überprüfung funktioniert, aber einen Request später, wenn der Benutzer nachfragt, der Server dann doch nicht schnell genug reagiert, weil er grade in dieser Sekunde abgekackt is oder grade in mit diesem Request der Threadpool voll is, ....
 

suicidus

Fuuuuu
ID: 314529
L
13 Mai 2009
766
92
Hm das müsste ja per fsockopen oder ping gemacht werden. Ich glaub allerdings nicht, das der Serverbetreibe da glücklich ist, wenn er zigmal die Minute angepingt wird. Wenn z.b. Bettellinks auf meine Seite führen oder Werbeschaltungen, wo ja auch die Rotation mit verbaut ist.
 

theHacker

sieht vor lauter Ads, den Content nicht mehr
Teammitglied
ID: 69505
L
20 April 2006
22.643
1.280
Ich glaub allerdings nicht, das der Serverbetreibe da glücklich ist, wenn er zigmal die Minute angepingt wird.
Stimmt. Ein Webserver is nur drauf aus, hunderte von Requests pro Sekunde zu bearbeiten. Wenn dann ein Ping pro Minute reinkommt, stört den das sicher :LOL:

Drum hab ich dir ja vorgeschlagen, dass du den Verfügbarkeitstest auslagerst. Alternativ testet du halt nur maximal einmal pro Minute.
 

Lokutos

$_POST => dev/null
ID: 298414
L
15 März 2008
362
39
Speicher die Werbung in einer tabelle

id | werbeurl | sponsordomain | test

dan kannst du einen cron basteln den du z.b. alle 15 min laufen lässt der sich dan die sponsoren schnappt testet und das ergebniss dan mittels 1=ok 0=nichtok in der tabelle spichert

dan kannst du auslesen und da ganz einfach mit der Where bedingung nur die guten nehmen so hast du maximal 15 minuten wo deine seite langsamer ist wenn ein sponsor grad nach dem test abraucht.

MFG Lokutos
 

tobomator

Well-known member
ID: 129556
L
28 Februar 2010
575
23
Da fände ich jede minute doch besser. Wer garantiert Dir denn nach der letzten Abfrage, ob der Zustand der Verfügbarkeit 2 Min. später nicht zusammenbricht ?
Da würde die nächste Anzeige schon ewig auf sich warten lassen, obwohl in der DB ja ein Ok steht...

Jedem das Seine...

Und ja, theHacker beipflichtend muß ich sagen, Webserver werden manchmal bombardiert mit Anfragen, nicht nur im Sekundentakt. Ein guter Sponsor wird im Millisekundenbereich angefragt !
 

ice-breaker

return void
ID: 93995
L
27 April 2006
6.258
585
das JavaScript intelligent einbinden würde auch schon reichen.

z.B. in den Footer folgendes:
Code:
<script type="text/javascript">
document.getElementById('werbeDiv').innerHTML = '<scr' + 'ipt type="text/javascript" src="http://www.xxx.de/kamp/rot.php?art=bannerview&uid=xx&sid=xxx"></script>';
</script>

oder eben:
Code:
<script type="text/javascript" src="http://www.xxx.de/kamp/rot.php?art=bannerview&uid=xx&sid=xxx" async="" defer="defer"></script>