AdSense-reklam på XHTML-sidor
Googles reklam-tjänst AdSense använder sig av Javascript för att skapa annonserna på dina sidor. Dvs. du anropar ett skript på Googles server, som sedan använder sig av funktionen document.write() för att infoga länkar. Denna funktion fungerar inte på xhtml-sidor som levereras som xml-dokument, och då visas ingen annons!
(Xhtml-sidor bör levereras med en MIME-typ för xml-dokument och inte längre text/html!)
Som tur är går det att kringgå denna begränsning i AdSense-skriptet. Genom att använda antingen taggen object eller iframe kan vi placera ”anropet” till AdSense-skriptet i ett annat dokument och inkludera det i huvuddokumentet. Detta nya dokument behöver inte alls vara ett xml-dokument utan kan vara html 4. Därför fungerar AdSense. Exempelvis följer Blogwalk xhtml 1.1 och levereras som application/xhtml+xml – ändå fungerar annonserna, tack vare detta knep.
Som vanligt ställer dock Internet Explorer till problem. Taggen object bör inte användas; då visas en ful ram runt den inkluderade sidan, tillsammans med rullister. Istället är det iframe som gäller, men inte ens det räcker. I det inkluderade dokumentet måste vi ange som stil: html, body { border: none; overflow: hidden; } för att ta bort ram och rullister. Firefox har inga problem att visa vare sig object eller iframe på ett snyggt och korrekt sätt.
(Förresten kommer taggen img tas bort i xhtml 2.0, och tanken är då att object ska fylla dess funktion. Det är helt omöjligt med Internet Explorer idag. Förhoppningsvis kommer Internet Explorer 7 ordna detta.)
Varför gör inte Google AdSense xml-vänligt? Det kräver visserligen en total ombearbetning av skriptet och gör det något besvärligare för den som vill visa annonserna på sina sidor; men när utvecklingen går mot xhtml 2.0 kommer det förr eller senare behövas. Idag är det som bekant inte roligt med AdSense och xml.
Läs fler artiklar om:
adsense, webbutveckling, xhtml
Jag hade samma problem på 456 Berea Street och skrev om det för runt ett år sen i Content negotiation, AdSense, and comments. Sedan dess har jag upptäckt att om man har flera AdSense-block på samma sida får de exakt samma innehåll om man använder
objectoch skickar sidorna somapplication/xhtml+xml. Det är ju inte särskilt optimalt, så tills Google får ordning på det använder jag HTML 4.01 Strict i stället för XHTML.Skrivet av Roger Johansson, lördag 10 september 2005, 14:39
Blir annonserna verkligen RIKTADE om man har dom i en iframe?
Skrivet av asdsad, lördag 26 juli 2008, 00:23