Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
chrisegeland
Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 26.05.2009 20:17
Titel
|
|
|
ich muss sagen, respekt du hast ahnung! vielen dank dir erstmal, es klappt tatsächlich. ich werd nun mal die statistiken im auge behalten, ob diese funktionieren bzw. ob die klick erfassung klappt. werde dann berichten! gruß und danke chris
ps. generiert <?=time()?> die verschiedenen banner jetzt nach sekunden?
Zuletzt bearbeitet von chrisegeland am Di 26.05.2009 20:22, insgesamt 2-mal bearbeitet
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 27.05.2009 09:30
Titel
|
|
|
ja danke für die Blumen.
Der Link und die img-Src benötigt offensichtlich eine Zufallszahl
(cb=INSERT_RANDOM_NUMBER_HERE) was ja mit dem Zeitstempel
ja schon erledigt wäre. Was das mit der Zufallszahl überhaupt auf sich
hat, weiß ich jetzt auch nicht - müsstest Du mal in der Doku schauen.
Möglicherweise brauchst Du aber an der Stelle auch eine echte Zufalls-
zahl (also wenn mehrere User gleichzeitig daherkommen), dann
könntest Du schreiben <?=rand(1,time())?>
Fyi: es wird wohl so sein, dass dir duch die No-Script-Variante
möglicherweise einige browserspezifische Informationen
durch die Lappen gehen (was openx da auch immer für
Informationen sammelt). Die Pageimpressions/Clicks dürfen
aber vollständig erfasst werden. Notfalls könntest Du ja auch
noch ein Google-Analytics-Account dahinterklemmen
Grüße
zweitaccount
|
|
|
|
|
Anzeige
|
|
|
chrisegeland
Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 27.05.2009 19:25
Titel
|
|
|
Also ich hab das mal ausgewertet. Bei 5000 Banneraufrufen (hatte IE6,IE8,Safari,FF und Chrome am laufen) gab es schon ein paar heftige Unterschiede bei der <?=time()?> Methode. Die <?=rand(1,time())?> Methode konnte ich jetzt noch nicht langfristig testen. Was mir aber bei der aufgefallen ist, es kam einmal vor, dass ein und der selbe Banner immer wieder nacheinander kam. sicher 8 mal bis ich dann selbst F5 gemacht hab. Bei 25 verschiedenen Bannern ist das komisch, oder? Gäbe es noch eine andere Methode, die mir eine Verteilung im Rahmen der Normalverteilung ermöglicht? Mit PHP und rand müsste das doch eigentlich gehen, was meinst du? Gruß und Danke! Chris
Zuletzt bearbeitet von chrisegeland am Mi 27.05.2009 19:27, insgesamt 1-mal bearbeitet
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 27.05.2009 20:48
Titel
|
|
|
Welcher Banner ausliefert wird bestimmt ja eigentlich openx,
der verbaute Html-Schnipsel bestimmt nur die Zone in der
dann die Banner dargestellt werden. Und dieser Zone kannst
Du wiederum verschiede Kampangen zuordnen. Das dürfte
also nichts mit der Zufallszahl zu tun haben.
Möglich wäre es dass einer deiner Banner oder auch eine
Kampange eine höhere Gewichtung eingetragen hat - also
bevorzugt angezeigt wird. Am besten alle Gewichtungen der
Kampangen und Banner mal auf 1 stellen und schauen wat
dann passiert.
Oder aber Dir hängt der Banner tatsächlich im Cache,
dann könntest Du noch hergehen und die Option noCache auf
true setzen:
Code: | updater = new Request.HTML({
url: 'update.php',
update: $('dropzone'),
evalScripts : true,
noCache: true,
onComplete: function() {
updateTimer();
}
}); |
Grüße
zweitaccount
|
|
|
|
|
chrisegeland
Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 28.05.2009 16:56
Titel
|
|
|
zweitaccount hat geschrieben: | Möglich wäre es dass einer deiner Banner oder auch eine
Kampange eine höhere Gewichtung eingetragen hat - also
bevorzugt angezeigt wird. Am besten alle Gewichtungen der
Kampangen und Banner mal auf 1 stellen und schauen wat
dann passiert. |
Das habe ich beachtet, alle Banner gehören einer Kampagne und haben sie gleiche Gewichtung. Ist schon komisch aber bei <?=time()?> kommen Wahrscheinlichkeiten raus, die nicht so vorkommen dürften. Während ein Banner 4000 Mal aufgerufen wird, wird ein anderer nur 400 Mal aufgerufen. Habe es mal die Nacht durchlaufen lassen ^^ 50000 Aufrufe.
Jedenfalls ist die Verteilung sehr viel fairer, wenn ich den ganzen OpenX Code laufen habe, woran das liegt keine Ahnung. Werde heute Nacht mal die <?=rand(1,time())?> Methode laufen lassen, um zu sehen wie es sich dort verhält. Kannst du evtl. nochmal den kompletten Code mit dem noCache Teil posten, wär dir sehr dankbar! Gruß
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 28.05.2009 17:22
Titel
|
|
|
Ja merkwürdig ists schon.
Hier nochmal der komplette js-Schnipsel (der vorherige
ist ja der alte gewesen - merke ich gerade )
Code: | <script type="text/javascript">
<!--
var updater, updateInterval;
window.addEvent('domready', function() {
updater = new Request.HTML({
url: 'script.php',
update: $('dropzone'),
evalScripts : true,
noCache: true
}).send();
updateInterval = function() {
$('dropzone').empty();
this.send();
};
updateInterval.periodical(8000, updater);
});
-->
</script> |
Falls deine openx-Installation auf dem selben Rechner läuft
wie dein webserver, dann könntest Du die Banner auch
über einen Php-Schnipsel ausliefern lassen... ich glaube das
heißt dort 'Local Mode'. Schon mal probiert?
Grüße
|
|
|
|
|
chrisegeland
Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 20.06.2009 11:47
Titel
|
|
|
Hallo zweitaccount!
Du hast mir ja schon letztes Mal super geholfen und daraufhin gewiesen, dass es mit einem PHP generierten Code funktionieren müsste. Im Forum von openx gibt es eine Anleitung die das genial erklärt.
Der Code sieht letztlich so aus:
Code: |
<html>
<head>
<?php
$adTags = array(
array('height' => '30', 'zone_id' => 1), // IDs der Zonen müßte natürlich angepasst werden
array('height' => '60', 'zone_id' => 2),
array('height' => '120', 'zone_id' => 3),
array('height' => '180', 'zone_id' => 4)
);
$maxHeight = 600;
$height = 0;
$result = array();
while ($height < $maxHeight) {
// index für $adtags wählen
$i = rand(0, count($adTags)-1);
//prüfen ob ausgeählte Zone von der Höhe noch reinpasst
if ($height + $adTags[$i]['height'] <= $maxHeight) {
$result[] = $adTags[$i]['zone_id'];
$height += $adTags[$i]['height'];
}
}
shuffle($result);
?>
<?php
echo "
<script type='text/javascript'><!--// <![CDATA[
var OA_zones = {
";
$n = 0;
foreach($result as $zone_id) {
if ($n++) {
echo ",\n";
}
echo "'place{$n}' : {$zone_id}";
}
echo "
}
// ]]> --></script>
<script type='text/javascript' src='http://localhost/openx/www/delivery/spcjs.php'></script>
";
?>
</head>
<body>
<?php
echo "
<script type='text/javascript'><!--// <![CDATA[
";
$n = 1;
foreach($result as $zone_id) {
echo "OA_show('place{$n}');";
$n++;
}
echo "
// ]]> --></script>
";
echo "
<script type='text/javascript' src='http://localhost/openx/www/delivery/spcjs.php'></script>
";
?>
<?php
echo '<!-- verify - remove in production --- ';
$finalHeight = 0;
foreach($result as $zone_id) {
foreach($adTags as $tagInfo) {
if ($tagInfo['zone_id'] == $zone_id) {
$finalHeight += $tagInfo['height'];
}
}
}
echo 'total height is '.$finalHeight;
echo ' --- end verify -->';
?>
</body>
</html>
|
Das ist also letztlich eine Mischung aus php und js. Wie könnte ich hier ein ajax refresh einbauen? Ich habe die von dir bereits erwähnte Methode versucht, aber das hat leider nicht funktioniert.
Gruß
Zuletzt bearbeitet von chrisegeland am Sa 20.06.2009 11:48, insgesamt 1-mal bearbeitet
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 20.06.2009 17:41
Titel
|
|
|
Hi again,
also rein theoretisch müsstest Du nur hergehen und diese
Passage komplett in dein script.php einpasten (also alles
ohne html/body etc):
Code: | <?php
$adTags = array(
array('height' => '30', 'zone_id' => 1), // IDs der Zonen müßte natürlich angepasst werden
array('height' => '60', 'zone_id' => 2),
array('height' => '120', 'zone_id' => 3),
array('height' => '180', 'zone_id' => 4)
);
$maxHeight = 600;
$height = 0;
$result = array();
while ($height < $maxHeight) {
// index für $adtags wählen
$i = rand(0, count($adTags)-1);
//prüfen ob ausgeählte Zone von der Höhe noch reinpasst
if ($height + $adTags[$i]['height'] <= $maxHeight) {
$result[] = $adTags[$i]['zone_id'];
$height += $adTags[$i]['height'];
}
}
shuffle($result);
echo "
<script type='text/javascript'><!--// <![CDATA[
var OA_zones = {
";
$n = 0;
foreach($result as $zone_id) {
if ($n++) {
echo ",\n";
}
echo "'place{$n}' : {$zone_id}";
}
echo "
}
// ]]> --></script>
<script type='text/javascript' src='http://localhost/openx/www/delivery/spcjs.php'></script>
";
echo "
<script type='text/javascript'><!--// <![CDATA[
";
$n = 1;
foreach($result as $zone_id) {
echo "OA_show('place{$n}');";
$n++;
}
echo "
// ]]> --></script>
";
echo "
<script type='text/javascript' src='http://localhost/openx/www/delivery/spcjs.php'></script>
";
echo '<!-- verify - remove in production --- ';
$finalHeight = 0;
foreach($result as $zone_id) {
foreach($adTags as $tagInfo) {
if ($tagInfo['zone_id'] == $zone_id) {
$finalHeight += $tagInfo['height'];
}
}
}
echo 'total height is '.$finalHeight;
echo ' --- end verify -->';
?> |
Wobei es komisch ist, dass dieses javascript:
Code: | <script type='text/javascript' src='http://localhost/openx/www/delivery/spcjs.php'></script> |
Zweimal includiert wird - ohne weitere Parameter. K.A. was
da dabei rumkommt, aber egal - einfach mal so ausprobieren.
Falls dir mootools Fehler schmeißt, kannst du auch
mal hergehen und diese <!--// <![CDATA[ und
// ]]> --> Kommentierungen rauskicken - hatte letztens
mal Probleme damit in ähnlicher Konstellation.
Grüße
Zuletzt bearbeitet von zweitaccount am Sa 20.06.2009 17:42, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
JavaScript select/option switch ohne reload
[JavaScript] Fenstergröße dem Inhalt anpassen
[javascript] variablen mit mehrzeiligem inhalt
[javascript] div inhalt ändern - auf die andere art
Anzeige von Inhalt nur bei aktiviertem Javascript
Bei Klick in Formularfeld Inhalt löschen.. - JavaScript?
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|