Affiliate xml/csv feeds gebruiken

Affiliate programma’s kunnen een aardig extraatje opleveren voor een website. Probleem van veel affiliate programma’s is echter dat ze nogal wat onderhoud vergen. Er komen nieuwe adverteerders bij, adverteerders verdwijnen of een adverteerder past zijn campagne aan. Als je pech hebt kost het onderhoud meer dan het oplevert.

De tekst op deze pagina is gedateerd. Hoewel de info grofweg nog klopt is beschreven parser niet meer beschikbaar. Wil je informatie of hulp met datafeeds neem dan contact op.

Om het onderhoud te beperken zijn er een aantal oplossingen, sommige programma’s bieden de mogelijkheid om een advertentie pool aan te maken, hierin plaats je meerdere advertenties. Voordeel is dat je je minder druk hoeft te maken over het verlopen van een enkele advertentie, deze vervalt automatisch in de pool, uiteraard moet je wel nog (handmatig) advertenties toevoegen. De advertenties worden per doelgroep/onderwerp in een pool geplaatst. Nu heb je altijd actuele advertenties.

Een andere mogelijkheid is gebruik te maken van een productfeed, de adverteerder (via het affiliate programma) bied alle advertenties aan in bijvoorbeeld de vorm van een op XML gebaseerd tekst of een CSV bestand. Nu heb je altijd de beschikking over de laatste advertenties, de feed bevat al de correcte (deep)links naar de producten, een beschrijving, een link naar een afbeelding en vaak ook extra informatie zoals de prijs.

XML verwerken

Nu is het alleen nog de kunst de (XML) data om te zetten in een formaat waarmee een web-browser iets kan. Puur technisch zou het mogelijk zijn de xml data te voorzien van een filter in de vorm van een XSLT bestand, echter een in de meeste gevallen een weinig efficiënte methode.

Hoe dan wel.

Door de XML data periodiek op te halen, lokaal op te slaan in een database en gefilterd weer te geven op je web-pagina. Hoe dat dan precies in zijn weer gaat is afhankelijk van de website die je hebt. Kant en klaar is er geen oplossing, onderstaand een script en voorbeeld voor een site die gebruik maakt van php.

Voor deze site werd reeds gebruik gemaakt van magpierss een parser waarmee RSS datafeeds kunnen worden opgehaald en verwerkt, RSS is een op XML gebaseerd formaat. De functionaliteit die magpie heeft met betrekking tot het ophalen en opslaan (cachen) van XML data kon mooi opnieuw gebruikt worden. Magpie levert dus een framework voor het ophalen en cachen van de data, uiteraard kun je deze code ook zelf schrijven, maar waarom het wiel nieuw uitvinden.

De structuur van XML bestanden ligt niet vast, voor RSS zijn bepaalde afspraken gemaakt over de structuur, voor andere XML bestanden (bijvoorbeeld ATOM SVG, XML-RPC,XSLT enzovoorts) is de structuur anders. Magpie gaat uit van de structuur gebruikt voor RSS, Atom en RDF. Het is dus helaas niet zo dat elke productfeed zomaar door Magpie verwerkt kan worden. Voor elke productfeeds zoals van tradetrackerdaisycon is een andere XML-parser nodig. Gelukkig is Magpie enigszins object georiënteerd opgezet, de aanpassingen aan de bestaande code zijn te overzien. Hieronder stel ik de gemaakte uitbreiding voor magpie met wat uitleg beschikbaar.

Download & Installatie

De parser is gebaseerd op magpie de voorloper van het nu veel gebruikte simplepie. Hier de xml parser met magpie in een pakketje : aff_xml.tgz/aff_xml.zip, deze bevat een iets aangepaste versie van magpie en de xml parser. Je bent vrij deze scripts te gebruiken, als het nuttig is gebleken zou het op prijs gesteld worden als er ergens een link naar http://www.brambring.nl geplaatst wordt. Vragen of opmerkingen kun je per email kwijt. Eenvoudige problemen worden gratis beantwoord. Voor complexe problemen ben ik op freelance basis beschikbaar.

Uitpakken, de cache directory schrijfbaar maken voor de server ( meestal chmod 777) en proberen maar.

Het script is getest met apache/php op zowel een linux als windows systeem, met ISS heb ik geen ervaring. Van belang is wel dat de host uitgaande http requests toestaat anders wordt het niks.

Let wel, bovenstaand voorbeeld is niet af, fraai, perfect of compleet. Het is bedoelt als idee en voorbeeld om iets wegwijs te worden in het gebruik van datafeeds. Ben je op zoek naar een snelle manier om een fraaie site te bouwen bekijk dan joomla xml csv datafeeds

De code is te gebruiken voor de xml feeds van tradetracker,  daisycon en zanox. Daarnaast kunnen de CSV feeds in erschillende formaten gebruikt worden.

Het gebruik van CSV is veel minder zwaar dan XML. Meestal kun je beter de CSV versie gebruiken. Maar soms bevatten de XML feeds meer gegevens dan de CSV feeds

Gebruik

Het formaat waarin magpie de XML data aanbied is een array, dit is een formaat dat in php een stuk eenvoudiger en efficiënter te verwerken is dat ruwe XML data.

Het gebruik van de parser en de data is analoog aan het gebruik in geval van RSS feeds. De aanroep van de xml-functie is iets uitgebreider dan bij het normale magpie, naast de URL worden de parser en ook de geldigheid van de feed meegegeven. Sommige feeds hebben een beperkte geldigheid, bijvoorbeeld een uur, andere zijn onbeperkt geldig.

Het enige lastige is dat de inhoud en namen van de velden in de XML bestanden niet netjes beschreven staan en dat verschillende adverteerders data anders aanbieden. Zo noemt de een het veld Land de ander Country de een gebruikt voor de waarde TR, de andere Turkije en de laatste Turkey. Per adverteerder is er dus nog iets puzzelen nodig, maar dan heb je ook een uitgebreide hoeveelheid data, en altijd actuele advertenties.

Voorbeelden

Het pakketje bevat drie voorbeelden van feeds. Ze gebruiken alle drie dezelfde template voor weergave, alleen de instellingen anders. Andere voorbeelden: sunweb vakanties of hotels. Als je probeert feeds te combineren loop je al snel tegen problemen aan. Zo zijn bijvoorbeeld de verschillende feeds niet consistent, de een heeft het over italie, de andere Italië of IT. Daarnaast loop je hier tegen de beperking van de gekozen methode aan: het is niet eenvoudig mogelijk de data te doorzoeken. Daarvoor is een methode waarbij de feeds in een database gezet worden een stuk beter : dubai reizen overzicht. Deze demo laat een selectie uit de feeds zien, met alle reizen, vakanties, hotels enzovoorts naar Dubai.

Op diverse pagina’s van gryla.nl worden feeds gebruikt (Hotels). Hier is gebruik gemaakt van een specifiek stukje code voor pmwiki. u kunt mailen als u belangstelling hiervoor heeft of hulp nodig heeft een eigen feed te integreren.

Integratie van andere XML feeds.

In principe is de methode die toegepast wordt te gebruiken voor elke soort XML data, zo ook die van andere affiliatie aanbieders. Het is een kwestie van een nieuwe parser classe toe te voegen.

Andere methoden

Affilaites.nl bied een stuk php-code aan om periodiek de feeds op te halen, deze code houd er ook rekening mee hoe lang de data geldig is, heeft echter geen voorziening om de data in een bruikbaarder formaat aan te leveren.

Uiteraard is de parser ook aan te passen zodat de data een database ingaat. Dan is de cache ook niet meer nodig.

Ook is het mogelijk de data rechtstreeks in een native XML database (exist) te stoppen en daarmee verder te werken.

Lastig?

Hoewel het gebruik van feeds de mogelijkheid geeft om eenvoudig, automatische grote aantallen affiliate links op een site te plaatsen is het gebruik niet altijd even eenvoudig op te starten. Zelfs binnen een affiliate programma zijn er voor verschillen in het formaat van de XML feed, gebruikte afkortingen ( bijvoorbeeld voor landen) zijn niet altijd hetzelfde, klopt de character encoding niet altijd. Kortom voordat het werkt is er wat puzzel werk te doen. Maar als het dan draait…

Combinatie

In deze voorbeelden worden de feeds eerst in een sql database gestopt en van daaruit weergegeven. Mysql lost hier problemen als hoofd-kleine letters en collation issues als Italie versus Italië. Resten nog verschillen in schrijfwijze als Zuid Afrika – Zuid-Afrika, Engelse schrijfwijzen als kinderen versus kids en soortgelijke verschillen tussen de feeds.

Plaats een reactie