PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Banner immer weniger ??



KiLLzOnE
19.07.2007, 02:09
Habe seit vorgestern das Problem, das ich nur noch knapp 300 Forcedbanner habe.

Zuvor waren es an die 1000.

Ich hab nichts verstellt an den Interfaces...
Woran kann das liegen???

Meine User beschweren sich schon...

Ceel
19.07.2007, 03:46
Denke mal die Werbenetzwerke haben immer weniger Forcedbanner zum abrufen.

Kann dir www.Ads4.de anbieten. Da bekommst du noch ein paar Banner hinzu !!! ^^

swinxx
19.07.2007, 08:51
Nein, daran liegt es nciht. Ich habe genau das selbe Problem, aber die Banner bei den Sponsoren sind nciht weniger geworden...

cu, Swinxx

Koki12
19.07.2007, 09:47
Vielleicht liegt es daran, dass beim Aufrufen des Crons, die Abgelaufenen Gelöscht werden ! Und keine neuen Vorhanden sind !

*Die Banner werden bei WML usw. nicht Weniger. Aber vielleicht bucht der die Kampagnen, die schonmal gebucht waren nicht nochmal *.


*TEXT* = Edit !

swinxx
19.07.2007, 12:22
Der Cron würde diese Kampagenen die schon mal waren dann bei aufrufen nicht löschen wenn sie noch nicht abgelaufen sind.
Also daran kanns nciht liegen.

Bei mir isses ja sogar so das er alle Kampagnen reinholt wenn ich den Cron manuell ausführe und dann aber 10mins später, ohne das der Cron läuft, die Kampagnen wieder weg sind...

ich glaub schon fast das das nen Fall für die X-Akten ist. Gleich mal nen neuen forenbereich aufmachen mit "ungelösten Fällen" *gg

cu, Swinxx

jr-coolman
19.07.2007, 18:27
Kann ich bestätigen bei mir wird es auch immer weniger.

VMS1
19.07.2007, 18:42
Hi.

Laufen evtl. die Crons nicht zu Ende? Das wäre die einzige Möglichkeit, wie ich mir das erklären könnte. Dann würde es nämlich so laufen, das als erstes die Banner des Sponsors auf Status 0 gesetzt werden, und dann wenn die neuen Kamp. eingetragen oder upgedatet werden der Cron abbricht.

Wenn es daran liegt würde natürlich auch der letzte Schritt nicht ausgeführt werden, wo die Kampagnen, die am Ende noch status 0 haben, gelöscht werden und die Zeit des Cronlaufs auch nicht upgedatet wird.

Man kann auch in der DB schaun, ob man dort Kampagnen mit Status 0 hat.


SELECT * FROM vms_gebuchte_werbung WHERE status = '0'

Ich hab das Gefühl, das das Problem bei Cronjobs.de liegt und die langsam ihren kostenlosen Service weiter und weiter einschränken. Ein Bekannter hatte das Problem auch und hat dann einfach den bezahlten Service genommen. Bezahlte Crons werden bevorzugt ausgeführt. Danach hatte sich das Problem komplett erledigt. Selbst die Crons um 0:00h wurden pünktlich ausgeführt.

Gruß
Marco

jr-coolman
19.07.2007, 21:59
Nein daran liegt es nicht.
Auch wenn ich die Crons manuel ausführe werden es nicht mehr.
Und dann bin ich ja ganz sicher das sie durchlaufen.

Ich habe meine situation jetzt verbessert in dem ich neue Sponsoren hinzugefügt habe.

Jetzt bin ich wieder bei 500 Banner

swinxx
19.07.2007, 22:23
Hmm, ja, Cronjobs hatte vor kurzem mal Probs weswegen mein Klicksmiley und Tagesrally Cron nie liefen. Das passt jetzt aber auch wieder. Wenn ich mir auf Cronjobs de die Zeiten ansehe zu denen die Crons gelaufen sind passt das auch, nur wenn ich mir die Laufzeiten auf meiner Seite ansehe bleiben das immer die Zeiten zu denen ich die Crons das letzte mal manuell ausgeführt habe !

cu, Swinxx

VMS1
20.07.2007, 00:13
@Swinxx: Die Zeiten die bei Cronjob.de stehen sind nicht sehr aussagekräftig. Diese sagen nur, das der Cron von Cronjob.de aufgerufen wurde. Ob der Cron durchgelaufen ist sagen sie leider nicht.

Wenn die Zeit im Adminforce upgedatet wird, wenn du die Crons manuell aufrufst und über Cronjob.de nicht, dann laufen die Crons wirklich nicht zu Ende. Das Setzen der Zeit ist nämlich der letzte Schritt, bevor der Cron geschlossen wird. Wenn das nicht passiert, ist das ein sicheres Zeichen, das die Crons nicht bis zu Ende durchlaufen.

Gruß
Marco

jr-coolman
20.07.2007, 05:37
Wie sieht denn die zeile aus die die zeit neu setzt.
Ich habe ien par selbstgebaute Crons und bei denen steht irgend was 2005 drin.
Damit ich sehe ob die auch gelaufen sind würde ich gerne die zeile einbinden die die zeit updatet.

dragon11
20.07.2007, 10:08
// Zeit setzen
db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'hier die bezeichnung des cronjobs eintragen, entsprechend eintrag in der Tabelle vms_crons'");


Wie sieht denn die zeile aus die die zeit neu setzt.
Ich habe ien par selbstgebaute Crons und bei denen steht irgend was 2005 drin.
Damit ich sehe ob die auch gelaufen sind würde ich gerne die zeile einbinden die die zeit updatet.

KiLLzOnE
20.07.2007, 12:39
Also was ist nun zu tun??
Ich glaube das Problem liegt bei mir am Cron von Lose4AllWeb z.b.

swinxx
20.07.2007, 16:05
Hmm, ich werd mal vielleicht dn ostenpflichtigen Service von cronjobs.de nehmen und schauen ob das dann passt...

cu, Swinxx

KiLLzOnE
20.07.2007, 17:07
Original von swinxx
Hmm, ich werd mal vielleicht dn ostenpflichtigen Service von cronjobs.de nehmen und schauen ob das dann passt...

cu, Swinxx

Warte lieber noch damit...
Ich teste gerade www.cron-job.org - ebenfalls kostenlos !!!

swinxx
20.07.2007, 18:48
Hmm, gut, das kannte ich garnicht. Na dann warte ich mal interessiert au das ergebnis. Vielleicht laufen die Crons da ja länger oder so...

cu, Swinxx

VMS1
20.07.2007, 19:20
Das hört sich gut an. Hier mal ein auszug aus den FAQ



Wie und wie lange ruft cron-job.org mein Script auf?
cron-job.org ruft Ihr Script an den eingestellten Zeitpunkten auf und wartet, bis das Script beendet ist, jedoch maximal 30 Sekunden. cron-job.org liest die Ausgaben des Scripts, wobei jedoch maximal 1024 Bytes gelesen werden. Sollte Ihr Script mehr Daten senden, wird die Verbindung zum Script getrennt. Lesen Sie dazu auch die nächste Frage.

Worauf soll ich bei meinem Script achten?
Sie sollten also darauf achten, dass Ihr Script möglichst wenig Daten ausgibt, optimalerweise am Ende nur eine Statusmeldung wie 'OK' oder einfach gar nichts.
Sollte Ihr Script länger als 30 Sekunden in der Ausführung benötigen, können Sie das Script mit einem Trick weiterlaufen lassen, sofern es in der Scriptsprache PHP geschrieben ist: Nutzen Sie die Funktion ignore_user_abort(true) um PHP anzuweisen, dass Script weiter auszuführen, auch wenn cron-job.org die Verbindung beendet hat.


Es wäre also ratsam, vorher sämtliche HTML-Ausgaben zu entfernen.

Es sind eine Menge Crons aus meinem Shop im Umlauf, wo eine Statistik der eingelesenen Kampagnen ausgegeben wird. Ich hatte das damals mit eingebaut, weil ich nicht wußte, das die Ausgabe limitiert ist. Ich habe bei meinem Hoster eigene Cronjobs und kann dort immer die Ausgabe des letzten Crons nachlesen. Daher war das nicht nur bei einem manuellen Aufruf sehr praktisch.

Sollte jemand Probleme beim Entfernen haben, folgende Zeilen müssen raus:


echo '<font color="red"><b>Dieser Cron ist erfolgreich gelaufen!</b></font><br>Written by <b>Klickwarrior</b> from <a href="http://www.script-kiste.shop.ms">Script-Kiste - Scripts4Lose</a><br>
<font color="#006600"><b><u>Diese Kampagnen entsprechen den Anforderungen:</u></b></font><br>';

und weiter unten:


echo '<b>Vergütung:</b> '.$ext_verguetung.' <b>Eingebucht:</b> '.$int_menge.' <b>Reload</b>: '.$int_reload.'/3600 <b>Name:</b> '.$int_name.'<br>';

Ganz am Ende:

die('<font color="red"><b>Nicht genug? Mehr Sponsoren gibt´s bei:</b> <a href="http://www.script-kiste.shop.ms">Script-Kiste</a>');

ersetzen mit:


die('Cron erfolgreich gelaufen');

Also im Prinzip jeweils alles von
echo ' bis ';

Wer gar nicht damit klarkommt, kann sich natürlich gern bei mir oder Holle melden.

Gruß
Marco

swinxx
20.07.2007, 21:04
Klingt auf jeden Fall gut. Na ich werd mal schauen das ich bei den crons die so ausgaben haben das rausnehme und dann schauen ob sie vielleicht bei cronobs.de funktionieren. Wenn nciht dann werd ich sie auch bei der .org Seite testen.wenn das danna uch nicht klappt dann werf ich mich mal schnell ausm Fenster oder so...

cu, Swinxx

Masterphil
21.07.2007, 23:49
Also, ich hatte schon ein paar mal die Situation, das massig Banner gefehlt haben. Dieses Problem hatt sich bisher aber immer innerhalb von 12-24 von selbst gelöst, ohne mein eingreifen.

Ich denke man sollte darauf achten die Crons "nicht" in einer CronDatei zu vereinen, am besten ist es wohl sogar, sie zu splitten, also Banner/Textlink/Mails, jeweils ein Job für jedes. Das gibt zwar nen Megachoas bei Cronjob.de oder was ihr auch nutzt, aber die haben ja eh keine Beschränkung was die Anzahl der Jobs angeht.

Soll nur mal als denkansatz dienen, weil ja auch schon gemaint wurde, alles sollte über einen Hauptcron gemacht werden, was ich nicht empfehle.

MfG

swinxx
22.07.2007, 02:17
Jau, da liegtz es wohl ziehmlich sicher an der Dauer der crons. Wenn man sie splittet dauert der aufruf ja auch nciht so lange, was ja anscheined das Prob bei Cronjobs.de gerade ist. Ich versuche bei Zeit jetzt ncoh mal das was "VMS1" gesagt hat, also die Echos rausnhemen. Dann dauert der Cron nciht so lange und dann funzt es hoffentlich. Werde danna uf jeden Fall hier schreiben wies aussieht...

cu; Swinxx

KiLLzOnE
25.07.2007, 16:47
Hmm da mein Cron etwas anders aussieht, was ist hier zu entfernen???



<?
/* Sponsorendaten löschen */
$sponsordaten = "";

/* Konfiguration laden */
$interfacedaten = $db->query("SELECT * FROM equinox_".$pageconfig['install_nr']."_interface WHERE interface = 'lose4allweb' AND werbeart = 'forcedbanner'");
$interfacedaten = mysql_fetch_array($interfacedaten);

/* Forcedbanner von webmasterlose deaktivieren */
$db->query("UPDATE equinox_".$pageconfig['install_nr']."_kampagnen SET status = '0' WHERE format = 'forcedbanner' AND bemerkung LIKE 'lose4allweb_%'");

/* Einlesen der Kampagnen */
$fb=@fopen("http://www.lose4allweb.de/interface/output_forcedbanner.php?id=".$interfacedaten['betreiber']."&pw=".$interfacedaten['pass']."&uebrig=".$interfacedaten['restklicks']."&reload=24&verguetung=".$interfacedaten['mindestverguetung ']."","r");

if($fb){
while($line=fgets($fb,1000)) {
$sponsordaten.=$line;
}
fclose($fb);
}

/* Abbrechen wenn Sponsor nicht erreichbar */
if (!$fb) die();

$nr = 0;

echo '<table width="100%" border="0" cellpadding="1" cellspacing="1">
<tr bgcolor="#F7BF63">
<td align="center"><b>Nr.</b></td>
<td align="center"><b>KID</b></td>
<td align="center"><b>Preis</b></td>
<td align="center"><b>User</b></td>
<td align="center"><b>Menge</b></td>
<td align="center"><b>Reload</b></td>
<td align="center"><b>Ziel</b></td>
</tr>';

/* Kampagnen splitten */
$code = explode("|", $sponsordaten);
$tl_count = (count($code)/5)-1;
$bid_lesen = 0;
for ($tl_anz=0;$tl_anz <= $tl_count;$tl_anz++) {
$int_ziel = "http://www.lose4allweb.de/lose/forcedclickbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
$int_banner = "http://www.lose4allweb.de/lose/forcedviewbanner.php?id=".$interfacedaten['betreiber']."&bid=".$code[$bid_lesen]."&aid=".$interfacedaten['seite']."";
$int_menge = round($code[$bid_lesen+3]);
$int_kid = $code[$bid_lesen];
$int_reload = $code[$bid_lesen+2]*3600;
$int_verdienst = ($code[$bid_lesen+4]*$interfacedaten['umrechnung']) - (($code[$bid_lesen+4]*$interfacedaten['umrechnung']) / 100 * $interfacedaten['eigenverdienst']);
$int_preis = $code[$bid_lesen+4]*$interfacedaten['umrechnung'];
$ext_verguetung = $code[$bid_lesen+4];
$tab_name = substr($int_ziel,52,999);
$nr++;
$bid_lesen=$bid_lesen+5;

/* Kampagnen ändern oder eintragen */
if ($ext_verguetung >= $interfacedaten['mindestverguetung'] and $int_menge > 1 and $int_reload > 0 and $int_kid > 0 and $int_verdienst < 5000) {

if ($linecolor == '#FDF5E7') {
$linecolor = '#FCEED5';
} else {
$linecolor = '#FDF5E7';
}
echo '
<tr bgcolor="'.$linecolor.'">
<td align="right"><b>'.$nr.'.</b></td>
<td align="right">'.$int_kid.'</td>
<td align="center">'.$int_preis.'</td>
<td align="center">'.$int_verdienst.'</td>
<td align="center">'.$int_menge.'</td>
<td align="center">'.$code[$bid_lesen+2].'h</td>
<td align="left">...'.$tab_name.'</td>
</tr>
';
$forcedbanner_check = $db->query("SELECT status FROM equinox_".$pageconfig['install_nr']."_kampagnen WHERE format = 'forcedbanner' AND bemerkung = 'lose4allweb_".$int_kid."'");
if (!mysql_num_rows($forcedbanner_check)) {
$db->query("INSERT INTO equinox_".$pageconfig['install_nr']."_kampagnen (userid,format,do_views,do_clicks,in_views,in_clic ks,reload,url_banner,url_ziel,name,bemerkung,payou t,aufendhalt,status) VALUES ('0','forcedbanner','0','0','0','".$int_menge."','".$int_reload."','".$int_banner."','".$int_ziel."','Ext. Kampagnen','lose4allweb_".$int_kid."','".$int_verdienst."','".$interfacedaten['aufendhalt']."','1')");
} else {
$db->query("UPDATE equinox_".$pageconfig['install_nr']."_kampagnen SET aufendhalt = '".$interfacedaten['aufendhalt']."', reload = '".$int_reload."', do_views = '0', do_clicks = '0', in_views = '0', in_clicks = '".$int_menge."', payout = '".$int_verdienst."', status = '1' WHERE format = 'forcedbanner' AND bemerkung = 'lose4allweb_".$int_kid."'");
}
}
}
echo '</table><br><br>';
/* Abgelaufene Kampagnen löschen wenn gewünscht */
if ($interfacedaten['loeschen'] == 1) {
$db->query("DELETE FROM equinox_".$pageconfig['install_nr']."_kampagnen WHERE format = 'forcedbanner' AND bemerkung LIKE 'lose4allweb_%' AND status = '0'");
}
?>

Ceel
25.07.2007, 17:21
Also ich habe gemerkt das ich das gleiche Prob habe!

Dann habe ich mal das interface im browser von WML ausgeführt und habe gesehen das sehr wenig nur durchs interface ausgegeben werde.

Probiert es selber auch mal aus und schreibt ob das bei euch auch so ist !!!

Jacke
25.07.2007, 17:52
also bei mir war es bei den sponsoren WML und lose-ads. das ich nur noch wenige banner von den bekommen hatte ( textlinks das selbe )

hatte man mein interface bzw cron nachgeschaut und fest gestellt das dort die abfrage mit dem mindestaufenthalt garnicht drin war. und da ich der meinung bin das die beiden sponsoren jetzt mit mindestaufent´halt arbeiten hab ich mal den abfrage link erweitert um das &ma=60 wo durch ich alle banner die bis eine min laufen müssen bekommen hatte. und siehe da war bei mir zumindestens mal die lösung ;) hab wieder zich banner und vorallem hunderte textlinks von lose-ads bekommen.

Jacke
25.07.2007, 17:54
achso. und wenn ihr da denn gleich die max reload mal auf 144 stellt gibts so gar alle banner die da sind und für interface genemigt sind.

Holstenjungs
25.07.2007, 18:26
Original von Masterphil
Ich denke man sollte darauf achten die Crons "nicht" in einer CronDatei zu vereinen, am besten ist es wohl sogar, sie zu splitten, also Banner/Textlink/Mails, jeweils ein Job für jedes. Das gibt zwar nen Megachoas bei Cronjob.de oder was ihr auch nutzt, aber die haben ja eh keine Beschränkung was die Anzahl der Jobs angeht.

Soll nur mal als denkansatz dienen, weil ja auch schon gemaint wurde, alles sollte über einen Hauptcron gemacht werden, was ich nicht empfehle.


Also ich hatte auch schon daran gedacht die Crons einzeln auszuführen, aber ich habe 87 Crondatein, jede einzeln auszuführen wäre zwar möglich aber doch recht umständlich.

KiLLzOnE
25.07.2007, 18:39
Weiss niemand, was ich beim oben geposteten Cron ausbauen müsste??

Holstenjungs
25.07.2007, 18:42
Doch,
Zeile 27 bis 36
+
Zeile 63 bis 73
+
Zeile 82

Das sollte reichen

KiLLzOnE
25.07.2007, 19:15
Original von Holstenjungs
Doch,
Zeile 27 bis 36
+
Zeile 63 bis 73
+
Zeile 82

Das sollte reichen

Scheint zu funzen ^^

Holstenjungs
25.07.2007, 19:33
Na das ist doch wunderbar. ;)

Masterphil
26.07.2007, 12:53
Also ich empfehle sich einmal die Arbeit zu machen, und zumindest die DB-Laufzeit lastigen Crons zu splitten. Ich selbst hab teilweise von Anfang an die Crons gesplittet, es ist eine einmalige Arbeit und wenn man es richtig anstellt bekommt die ganze DB mehr Speed. Man muss nur alle Crons auf den Tag verteilen, am besten man macht ne Tabelle und trägt dort ein wann welcher Cron läuft. Bei guter Einteilung überschneiden sich keine Crons, sprich dir DB wird entlastet, da sie nicht 2 Crons gleichzeitig aussführt.

MfG

swinxx
31.07.2007, 19:35
Na freut mcih doch mal zu hören das es funktioniert hat. Leider bin ich aus RL Gründen noch nicht dazu gekommen das ich das bei mir ändere. Werde ich aber jetzt bald machen...

cu, Swinxx

mastermix
01.08.2007, 13:10
Original von MasterphilMan muss nur alle Crons auf den Tag verteilen, am besten man macht ne Tabelle und trägt dort ein wann welcher Cron läuft. Bei guter Einteilung überschneiden sich keine Crons, sprich dir DB wird entlastet, da sie nicht 2 Crons gleichzeitig aussführt.

MfG
Hallo,
ich habe auch schon drüber nachgedacht, ob man nicht einfach eine cron.php anlegt und diese wird meinetwegen alle 5 Minuten aufgerufen. Und die cron.php steuert dann immer welche Crons ausgeführt werden und so kommt dann immer ein Cron zur Zeit. Gut wäre es ja dann, wenn alle Crons darüber gesteuert werden, also auch zB Refverdienst und andere. Wie kann man das einstellen, dass zB der Refverdienst dann immer um 24uhr ausgeführt wird? Kann man per PHP auch eine bestimmte Tageszeit ansprechen??? Oder gibt es da vielleicht auch schon ein Addon oder so?
Schöne Grüße