Ankündigung

Einklappen
Keine Ankündigung bisher.

Optimierung Algorithmus zur "Auslieferungswahrscheinlichkeit"

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Optimierung Algorithmus zur "Auslieferungswahrscheinlichkeit"

    Hallo,

    ich habe ein kleines Magazin und möchte zufallsbasiert ein bis zwei Werbeblöcke integrieren, welche nach einer prozentualen Auslastung ausgesteuert werden.
    Hierzu habe ich einen kleinen Adserver entwickelt, welcher Impressions, Klicks, Besucher und Co misst. Über eine Ajax Schnittstelle möchte ich nun Abfragen nach dem Motto: "Gib mir 1 oder 2 Werbeblöcke" (bei langen Artikeln 2 bei kurzen einer) stellen.
    In der Datenbank liegen nun verschiedene Werbeelemente mit einer Prozentzahl von z.B. 80 %, was bedeutet in 80 % der Werbemittelimpressionen soll dieser Werbebanner gewählt werden, aber pro Abfrage nur einmal.

    Einzige Lösung die mir hier vorschwebt:
    • Entsprechend der Prozentzahl Einträge in ein Array mit der ID erstellen.
    • Einmal durchmischen und über mt_rand 1 bis 100 ein zufälliges Element wählen.
    • Im Anschluss alle Array Elemente mit der gleichen ID löschen.

    Habt ihr eventuell noch eine Idee ob es einen performanteren Weg gibt?

    Ich habe zunächst nach Lösungen gesucht eine von bis Prozentbereich Regelung zu adaptieren, aber hier gibt es eine Vielzahl von Fallstricke (Randomzahl beim zweiten Vorgang unter Ausschluss der ersten Wahl darf nicht ins Leere greifen, um zusätzliche Suchläufe zu vermeiden, uvm). Eventuell ist mein Mathematik-Background auch schon einfach etwas eingegraut .

    Vielen Dank!

  • #2
    Komplett aus dem Bauch raus würde ichs mit ORDER BY rand(0, wahrscheinlichkeit) DESC LIMIT x versuchen. Ob die Wahrscheinlichkeiten wirklich dem entsprechen, was erwartet wird, müsstest du testen.

    Kommentar

    Lädt...
    X