Problem mit dem AdRotator

vault-tec

Erfahrenes Mitglied
Hallo zusammen!

Ich beschäftige mich erst seit kurzem mit .NET im allgemeinen und ASP.NET im besonderen. Nun habe ich ein Problem mit dem AdRotator.
Ich habe auf einer Site einen AdRotator platziert, der seine Informationen (Verzeichnis der Banner, Links etc.) aus einem Advertisement-file bezieht
(ads.xml).

Wie kann ich nun zählen, wie oft ein Banner aus meiner ads.xml angezeigt wird, bzw. wie oft draufgeklickt wurde?

Außerdem habe ich noch das Problem, dass ein z.B. 300k großes jpeg-Banner auch in dieser Größe auf der Site geladen wird.
Ich habe aber gehört, man könne das Banner komprimieren oder in ein gif konvertieren, weiß aber nicht, wie ich das genau implementieren soll.
Ich bin für alle Vorschläge dankbar.

Gruß, Niko
 
Hmm .. wie wärs wenn du den Banner _vorher_ also bevor du ihn per AdRotator verwendest konvertierst? Warum sollte dass den per Code geschehen?

Und wenn du es schon per Code machen willst, kannst es in ein Image-Objekt laden und dann per GDI+ die einzelnen Daten (Breite, Höhe, etc.) abfragen und entsprechend verändern, konvertieren.
 
Hmm .. wie wärs wenn du den Banner _vorher_ also bevor du ihn per AdRotator verwendest konvertierst? Warum sollte dass den per Code geschehen?

Nun ja, das ganze soll automatisch auf die richtige Datengröße geschrumpft werden, ohne dass man jedes Bild von Hand nachbessern muss.
Die Web-Site, für die ich das ganze im Zuge meines Praxissemesters erstellen soll, verfügt auch schon über eine Fotogalerie (die hat ein anderer Praktikant einmal hinzugefügt...), in welcher von den Originalbildern dynamisch aus der Datenbank heraus kleine ThumbNails erstellt werden, die sowohl graphisch als auch von der Datenmenge her verkleinert werden.

So oder so ähnlich soll das mit den Bannern dann auch laufen:
-->Kunde lädt Banner hoch in Datenbank
-->Code nimmt Banner, komprimiert es und zeigt es an

Mein Problem ist nur, dass ich nicht so ganz durch den Quellcode meines Vorgängers steige, da ich mich noch nicht unbedingt zu den erfahreneren Programmierern zähle...( gerade mal zwei Semester Java und ein bisschen C)
:)
 
Hallo Forum.

Ich habe dieses Problem inzwischen selber gelöst bzw. die Lösung verstanden:
Ich benutze den "mitgelieferten" AdRotator, der bekannterweise eine ads.xml-Datei benötigt, in welcher die Informationen zu den Bannern wie Ziel-URL etc. hinterlegt sind.
Einfügen und entfernen tue ich einzelne Banner-Knoten durch Einsatz der Möglichkeiten der XML-Klasse (mittels "foreach").
Die für mich (nun nicht mehr) problematische Komprimierung wird von zwei von Microsoft selbst empfohlenen Methoden übernommen, unterstützt durch und angepasst an eine eigene Methode, die in meinem Ablageverzeichnis nach Dateien sucht:

Code:
private FileInfo[] loadFiles()
{
    string dir = Server.MapPath(bannerSpeicherVerzeichnis);
    DirectoryInfo dirInfo = new DirectoryInfo(dir);
    return dirInfo.GetFiles();
}

private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
    int j;
    ImageCodecInfo[] encoders;
    encoders = ImageCodecInfo.GetImageEncoders();
    for(j = 0; j < encoders.Length; ++j)
    {
        if(encoders[j].MimeType == mimeType)
        return encoders[j];
    }
    return null;
}

private void SaveJPGWithCompressionSetting(System.Drawing.Image image, string 
                                                             fileName, long lCompression, string dir)
{
    EncoderParameters eps = new EncoderParameters(1);
    eps.Param[0] = new EncoderParameter(Encoder.Quality, lCompression);
    ImageCodecInfo ici = GetEncoderInfo("image/jpeg");
    // Verzeichnis erstellen falls noch nicht vorhanden
    DirectoryInfo dirInfoNewDir = new DirectoryInfo(bannerVerzeichnis);
    if (!dirInfoNewDir.Exists)
        dirInfoNewDir.Create();
    // Datei speichern
    image.Save(fileName, ici, eps );
    image.Dispose();
}

Letztere beiden siehe auch (im Original):
http://support.microsoft.com/default.aspx?scid=kb;en-us;324790

Tja, soviel zur Lösung. :)
EDIT: Ach ja, das Zählen der Clicks erfolgt über einen "Zwischenstopp" auf einer Zählseite.
Das Zählen der Views hab ich in meiner Anzeige-Methode durch Abfragen der Information, welches Banner beim aktuellen Page_Load-Ereignis angezeigt wird, implementiert.

Gruß, Niko
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück