Wenn Sie mehrere Display-Anzeigen gleicher Größe in einem Block auf Ihrer Website haben, ist es ratsam, ihre Position im Block zu randomisieren. Dies ist fairer für die Werbetreibenden und die unterschiedlichen Layouts reduzieren die Anzeigenblindheit. Die Anzeigen, die derzeit auf dieser Website von BuySellAds geschaltet werden, tun dies automatisch, aber wenn Sie ein eigenes manuelles System haben, hier sind drei verschiedene Möglichkeiten zur Randomisierung.

Demo anzeigen Dateien herunterladen
Methode #1) Randomisieren mit PHP, zufälliger Startbild
Ich denke, die Randomisierung serverseitig ist ideal, damit die Anzeigen bereits beim Laden der Seite randomisiert sind. Meine erste Idee war, eine Zufallszahl zwischen eins und der Gesamtzahl der Anzeigen zu generieren. Dann zwei For-Schleifen laufen lassen, eine von 1 bis zu dieser Zufallszahl und eine von dieser Zufallszahl bis zur Gesamtzahl.
<?php
$totalImages = 6;
$randomFirst = rand(1,$totalImages);
for ( $i=$randomFirst; $i <= $totalImages; $i++ ) {
echo "<img src='images/ad-$i.png' alt='ad' /> ";
}
for ( $i=1; $i < $randomFirst; $i++ ) {
echo "<img src='images/ad-$i.png' alt='ad' /> ";
}
?>
Funktioniert gut, ist aber nicht so zufällig, wie es sein könnte. Nur die Startanzeige ist zufällig, aber die Reihenfolge ist immer die gleiche.
Methode #2) Randomisieren mit PHP, zufällige Reihenfolge
Um zufälliger zu werden, hat PHP eine eingebaute Funktion zum Randomisieren eines Arrays. Erstellen Sie also einfach das Array mit der `range`-Funktion von 1 bis zur Gesamtzahl der Anzeigen, randomisieren Sie es und geben Sie es dann mit einer `foreach`-Schleife aus.
<?php
$totalImages = 6;
$all = range(1,$totalImages);
shuffle($all);
foreach ($all as $single) {
echo "<img src='images/ad-$single.png' alt='ad' /> ";
}
?>
Methode #3) Randomisieren mit jQuery
Dies ist weniger ideal, da die Bilder möglicherweise geladen werden und dann das JavaScript ausgeführt wird und sie neu anordnet (awkward). Obwohl die Randomisierung bei DOM-Bereitschaft erfolgt, sollte sie theoretisch vor dem Laden der Bilder geschehen. Dies wäre am nützlichsten, wenn Sie JavaScript auf der Seite steuern KÖNNEN, aber NICHT die HTML-Struktur.
Die Methode hier besteht darin, jQuery zu laden und das Shuffle-Plugin von James Padolsey zu laden, dann die Bilder anzusprechen und die Funktion aufzurufen.
(function($){
$.fn.shuffle = function() {
var allElems = this.get(),
getRandom = function(max) {
return Math.floor(Math.random() * max);
},
shuffled = $.map(allElems, function(){
var random = getRandom(allElems.length),
randEl = $(allElems[random]).clone(true)[0];
allElems.splice(random, 1);
return randEl;
});
this.each(function(i){
$(this).replaceWith($(shuffled[i]));
});
return $(shuffled);
};
})(jQuery);
$(function() {
$("#ad-group-one img").shuffle();
});
Irgendwelche anderen Randomisierungsmethoden da draußen?
Wow, das wird sehr nützlich für mich sein. Suche seit Stunden nach einer Lösung für Banner/Anzeigen.
Vielen Dank :)
Ich wünschte, die PHP-Methode wäre etwas gründlicher erklärt. Zum Beispiel Zeile für Zeile. :)
Danke dafür, Chris.
Einfacher geht es wirklich nicht mehr.
Sicherlich ist dieser Beitrag großartig, um Leuten zu helfen zu verstehen, wie die Dinge funktionieren, aber ich wollte nur erwähnen, dass es ein großartiges Plugin für WordPress von Nico gibt, das die 125x125 Pixel großen Werbeblöcke verwalten kann. Sie können sie als statisch einstellen oder rotieren lassen.
http://blogio.net/blog/wp-ad-plugin/
Wenn Sie alle Anzeigen in einem Array speichern, können Sie das Array einfach mit einer integrierten PHP-Funktion `shuffle()` mischen.
http://ca3.php.net/manual/en/function.shuffle.php
Wenn die Anzeigen in einer MySQL-Datenbank gespeichert sind, können Sie die Datenbank die Arbeit für Sie erledigen lassen –
select ad_src from ads order by rand()
Wenn Sie die MySQL `rand`-Funktion in Ihrer Abfrage verwenden, wird MySQL die Abfrage niemals cachen.
Sie holen besser alle Anzeigen aus MySQL und randomisieren sie mit PHP.
Das ist die, die ich immer bevorzuge! :-)
Die zweite gezeigte Methode ist die, wie ich es mache. Ich habe versucht, jQuery zu verwenden, und es kann gelegentlich unerwünschte Effekte haben.
Außerdem, Angelo, randomisiert dieser Code nicht einfach ein einzelnes Bild, anstatt sie alle anzuzeigen, aber in zufälligen Positionen?
Ich denke, die Verwendung einer MySQL-Datenbank ist für etwas, das ziemlich einfach zu machen ist, etwas übertrieben.
Nur meine Gedanken!
Eigentlich Damian, nehmen wir zum Beispiel diesen Code
Aufgrund von `shuffle` wird dieses Array neu geordnet, sodass Sie es mit seinen neuen Schlüsseln anzeigen können.
Lassen Sie mich wissen, wenn Sie weitere Details zum Hinzufügen von Links zu den Bildern wünschen, aber es würde im Wesentlichen genauso funktionieren. Nur dass die Werte für ein Array die Schlüssel für das nächste wären.
Aus irgendeinem Grund wurde die `echo`-Anweisung entfernt, aber im Wesentlichen würden Sie das Bild ausgeben.
Ich versuche, Bilder zu einer Website hinzuzufügen, die ich gerade baue. Ich könnte Ihre Hilfe gebrauchen. Danke
Wie viele wahrscheinlich schon gesagt haben, wäre eine Datenbanklösung optimal für diese Art von Dingen. Sie könnten ein kleines Admin-Panel dafür erstellen, um die Verwaltung usw. zu erleichtern. Dieser Kommentar hat nichts mit der zufälligen Platzierung der Anzeigen selbst zu tun, aber ich würde sagen, er baut auf dieser Idee auf.
Chris,
Bei der ersten Methode verwenden Sie "mt_rand" anstelle von "rand".
Zustimmung. Wenn Sie Tausende von Aufrufen pro Tag oder in diesem Fall pro Stunde erhalten, sparen Sie sich etwas Zeit und verwenden Sie `mt_rand`.
Sie würden diese Anzeigen trotzdem ignorieren. Sie müssten sie zufällig über die Seite verteilen. Auf subtile Weise.
Mein persönlicher Ansatz ist es, von einem Block von Anzeigen wegzukommen und stattdessen Anzeigen im Text zu positionieren, wobei PHP die Anzeige zufällig gegen einen der Absätze schweben lässt.
Ich würde zur `shuffle()`-Methode noch etwas hinzufügen. Anstatt eines Arrays von Zahlen, erstellen Sie ein Array von Dateinamen/Bild-URLs und mischen Sie stattdessen dieses. Das bedeutet, dass Sie Anzeigen von externen Speicherorten oder solche anzeigen können, die nicht alle von derselben Domäne stammen.
Offtopic
Was ist mit dem sehr, sehr hässlichen und unfreundlichen Redesign?
Hauptbeitrag mit einer "In-your-face-Anzeige" und dann 4 hässliche, schwer lesbare ältere Artikel?
Es war viel besser, als es noch ein Blog war, sodass man mehr Artikel lesen konnte als nur den neuesten.
Ich stimme Nyte zu, viel besser vorher, versucht ein bisschen zu sehr, wie http://www.smashingmagazine.com zu sein, das unter diesem Problem leidet.
Das passiert, wenn Design König ist und nicht Inhalt.
Ein großer, fetter, chaotischer Haufen
Ich bin ganz für Kritik, aber das ist alles völlig nutzlos.
„sehr, sehr hässlich“
„unfreundlich“
„großer, fetter Haufen“
Was bedeutet das alles? Das ist keine nützliche Kritik, es sind nur negative Worte. Warum machen Sie keine richtige Kritik und veröffentlichen sie? Ich würde sie gerne sehen.
Vielleicht sind sie einfach nur sauer, dass niemand dafür bezahlen möchte, auf ihren Seiten zu werben…. hm…
Wie auch immer, toller Beitrag. Und mir gefällt das Redesign.
Ich bin nur traurig, dass die kleine Kreatur aus dem Footer verschwunden ist. Wie hieß sie? Ich mochte auch das alte Design, aber vielleicht muss ich mich an das neue erst gewöhnen. Prost.
Ich stimme Chris zu, wenn man einen guten Designer kritisieren will, muss man einen Grund dafür haben. Alles, was Sie hier getan haben, ist zu beweisen, dass Sie keine Gründe für Ihre Argumentation liefern können.
Was die Kritik am Redesign angeht, persönlich mag ich es, und meiner Meinung nach muss Design ständig geändert werden, um uns zum Nachdenken anzuregen. Also, warum jetzt statt nutzlosem Hass zu verbreiten, überlegen Sie, warum es Ihnen nicht gefällt, und posten Sie eine Antwort mit Ihren Gründen in gutem Englisch.
Ist das anwendbar, wenn ich Anzeigennetzwerke wie Adsense oder Adbrite verwende?
Gute Ratschläge, macht Sinn
Ich stimme zu, ich bin kein großer Fan von Anzeigen in Blöcken. Verteilen Sie sie über die gesamte Seite, das sieht einfach viel besser aus.
Hallo, ich benutze die jQuery-Methode und möchte wissen, wie ich jedes Mal zufällig sechs Bilder anzeigen kann, während ich 20 Bilder habe.
Schöner PHP-Trick für zufällige Anzeigenpositionen. Er kann auch für andere zufällige Inhaltsplatzierungen verwendet werden. Danke für diesen coolen Tipp.
Ich habe sie sowieso nie angeklickt.
Sie können mich, relativ gesehen, als unwissend in Bezug auf PHP betrachten. Daher, mit Methode #2, wie würden Sie die Links hinzufügen und sicherstellen, dass sie mit den zufälligen Bildern übereinstimmen, die Sie abrufen?
Schon gut. Ich habe einfach eine benutzerdefinierte Schleife verwendet.
Kann ich es mit WordPress verwenden?
Leider funktionieren keine dieser Optionen, wenn Sie Anzeigen mit mehreren Gewichtungen haben.
Es wäre gut, eine Lösung dafür zu sehen.