mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 19:03 Benutzername: Passwort: Auto-Login

Thema: Reload von DIV-Inhalt mit JavaScript? vom 19.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Reload von DIV-Inhalt mit JavaScript?
Seite: Zurück  1, 2, 3, 4, 5, 6, 7, 8  Weiter
Autor Nachricht
chrisegeland

Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 26.05.2009 20:17
Titel

Antworten mit Zitat Zum Seitenanfang

ich muss sagen, respekt du hast ahnung! Grins 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
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 27.05.2009 09:30
Titel

Antworten mit Zitat Zum Seitenanfang

ja danke für die Blumen. Lächel

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
  View user's profile Private Nachricht senden
Anzeige
Anzeige
chrisegeland

Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 27.05.2009 19:25
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 27.05.2009 20:48
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
chrisegeland

Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 28.05.2009 16:56
Titel

Antworten mit Zitat Zum Seitenanfang

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ß
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 28.05.2009 17:22
Titel

Antworten mit Zitat Zum Seitenanfang

Ja merkwürdig ists schon.

Hier nochmal der komplette js-Schnipsel (der vorherige
ist ja der alte gewesen - merke ich gerade *hehe* )

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
  View user's profile Private Nachricht senden
chrisegeland

Dabei seit: 25.12.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 20.06.2009 11:47
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 20.06.2009 17:41
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
 
Ä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?
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4, 5, 6, 7, 8  Weiter
MGi Foren-Übersicht -> Programmierung


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.