Scriptie onderzoeksemester
Auteurs
Dylan Drost IJsbrand van Prattenburg Hugo Zonderland
Opdrachtgever
esser-emmerik
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Document
Scriptie onderzoeksemester
Opdrachtgever
esser-emmerik Herman Versteegt
[email protected] Wouter van Emmerik
[email protected] Peter Esser
[email protected] Gijsbrecht van Amstelstraat 104 1214 BB Hilversum
Onder supervisie
MSc. Alex Jongman Docent Hogeschool Utrecht
[email protected]
Hogeschool
Hogeschool Utrecht (HU) Nijenoord 1 3552 AS Utrecht
Opleiding
Information Engineering
Studiejaar
2012 - 2013
Auteurs
IJsbrand van Prattenburg
[email protected]
1581037
Dylan Drost
[email protected]
1570024
Hugo Zonderland
[email protected]
1585078
2
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
voorwoord Voor u ligt de scriptie gemaakt door het onderzoeksteam tijdens het onderzoek semester van de Hogeschool Utrecht tijdens studiejaar 2012 - 2013. Als 3e jaar Information Engineering studenten van de Hogeschool Utrecht hebben wij met leergierigheid en regelmatige gezonde discussie onderling dit onderzoek samen verricht. Graag willen wij hierbij onze begeleider Alex Jongman bedanken voor zijn fantastische inzet en tijd tijdens ons onderzoek, vooral de Apple bash sessies tijdens de wekelijkse meeting word gewaardeerd door het overgrote gedeelte van het onderzoeksteam. Ook willen wij esser-emmerik bedanken dat wij dit onderzoek voor hun mochten doen en voor de tijd die zij vrij hebben gemaakt. Daarnaast willen wij Ada Salomé bedanken voor de spelingscontrole! ;-) Dylan Drost & IJsbrand van Prattenburg & Hugo Zonderland Utrecht, 13-06-2013
3
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
samenvatting Het onderzoek is verricht voor esser-emmerik, een IT webtechnologie bedrijf in Hilversum. Vanuit de klanten van esser-emmerik, Magento webshop ondernemers, is de vraag gekomen om inzicht te krijgen in het rendement van marketing kanalen. Volgens esser-emmerik zijn de ondernemers zich bewust van de kosten van marketing kanalen, zij weten echter niet of de marketing kanalen een positief rendement op leveren. Systemen als Google Analytics laten zien hoeveel omzet gegenereerd wordt maar niet of er winst of verlies wordt gemaakt. Het rendement wordt op het marketing kanaal en product per marketing kanaal niveau berekent. Door de ordernummers per marketing kanaal uit Google Analytics op te halen en de bijbehorende order- en productinformatie uit Magento op te vragen. Kan na invulling van deze waarden in de formules het rendement over marketing kanaal en rendement over de producten per marketing kanaal berekend worden. Door deze informatie op een dashboard weer te geven wordt voor de ondernemer het rendement inzichtelijk weergegeven. Met dit gegeven kan de ondernemer zijn organisatie sturen.
4
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inhoudsopgave 1. INLEIDING
7
2. OPDRACHT
8
2.1. ORGANISATIE 2.2. PROBLEEMSTELLING 2.3. HUIDIGE SITUATIE 2.4. HOOFD- EN DEELVRAGEN 2.5. ONDERZOEKSMETHODEN
8 9 10 11 12
3. RENDEMENT
16
3.1. TOTSTANDKOMING RENDEMENT FORMULE 3.2. CONCLUSIE
16 21
4. MAGENTO
22
4.1. WAT IS MAGENTO 4.2. KOSTEN OPHALEN UIT MAGENTO 4.3. CONCLUSIE
22 22 23
5. GOOGLE ANALYTICS
24
5.1. WAT IS GOOGLE ANALYTICS? 5.2. GEGEVENS IN GOOGLE ANALYTICS 5.3. COST ANALYSE IN GOOGLE ANALYTICS 5.4. GEGEVENS UITWISSELEN MET GOOGLE ANALYTICS 5.5. CONCLUSIE
24 24 25 25 26
6. IMPLEMENTATIE KEUZE DASHBOARD
27
6.1. WAT IS EEN DASHBOARD 6.2. IMPLEMENTATIE OPTIES 6.3. CONCLUSIE
27 27 29
7. PROTOTYPE
30
7.1. ONTWIKKELMETHODE 7.2. FEEDBACK 7.3. CONCLUSIE
30 30 31
8. CONCLUSIE
32
9. EVALUATIE
33
9.1. DISCUSSIE
33
10. BIJLAGEN
34
BIJLAGE GOOGLE ANALYTICS BIJLAGE MAGENTO BIJLAGE ONDERZOEK RENDEMENT BIJLAGE SYSTEEM KEUZE BIJLAGE PROOF OF CONCEPT
35 55 80 100 115
5
Scriptie onderzoek semester 13/06/2013 BIJLAGE DEFINITIE RENDEMENT – VOORBEELD BEREKENING 10.1. FIGUREN 10.2. TABELLEN 10.3. VERGELIJKINGEN 10.4. AFKORTINGEN 10.5. WOORDENBOEK 10.6. BRONNENLIJST
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
115 133 133 133 134 134 135
6
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1. inleiding Tijdens het derde jaar van de opleiding Information Engineering is een onderzoek verricht door Dylan Drost, IJsbrand van Prattenburg en Hugo Zonderland. Dit onderzoek is verricht voor esser-emmerik, een internetbureau dat zich richt op online effectiviteit, gebruiksvriendelijkheid en rendement, is dit onderzoek verricht. Het onderzoek richt zich tot het berekenen van rendement over marketing kanalen. Hier is meer over te vinden in het hoofdstuk 2 ‘Rendement’. Een e-Commerce ondernemer weet per maand wat hij kwijt is aan zijn online marketing, maar niet hoeveel winst hij uit dat marketing kanaal haalt en of de kosten opwegen tegen de winst. In dit onderzoek is onderzocht wat de mogelijke oplossingen zijn voor het probleem. Het onderzoek heeft een koppeling met Google Analytics en Magento. Waarom deze systemen betrokken zijn is te lezen in hoofdstuk 1 ‘Opdracht’ en zijn verder uitgewerkt in hoofdstuk 4 ‘Google Analytics’ en hoofdstuk 5 ‘Magento’. Woorden die schuin gedrukt zijn hebben een, (voor dit onderzoek) speciale betekenis of definitie. Deze woorden zijn terug te vinden in hoofdstuk 10.5 ‘Woordenboek’. De informatie verzameld tijdens dit onderzoek komt van het internet, de gebruikte bronnen zijn terug te vinden in hoofdstuk 10.6 ‘Bronnenlijst’. Het onderzoek richt zich tot het berekenen van rendement, de verwijzingen naar deze formules zijn terug te vinden onder hoofdstuk 10.3 ‘Vergelijkingen’. Het onderzoek wordt verricht in opdracht esser-emmerik voor de klanten van esseremmerik. Deze groep wordt in het document verder geschreven als ‘Magento webshop ondernemer’, ‘ondernemer’ of een meervoudsvorm van beide.
7
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2. opdracht Esser-emmerik is op zoek naar een oplossing die de klanten (Magento webshop ondernemers) van esser-emmerik het rendement van de door hun gebruikte marketing kanalen, inzichtelijk kan weergeven. Met deze gegevens moeten de ondernemers hun organisatie kunnen sturen.
2.1. organisatie esser-emmerik richt zich vooral op het verbeteren van online prestaties van zijn klanten. Dit doet esser-emmerik door gebruik te maken van verschillende technieken op gebied van webdesign, search engine optimalisation, usability en user experience. Hier onder zijn een aantal diensten toegelicht die het bedrijf aanbeidt: Ontwikkelen van webapplicaties esser-emmerik realiseert voor klanten websites met behulp van het content management systeem Wordpress en webshops met behulp van e-Commerce software pakket Magento. Vindbaarheid verhogen op het internet Door SEO, SEA en de mogelijkheden van Social Media te gebruiken helpt esseremmerik de klant om de vindbaarheid van zijn website of webshop te verhogen. Conversie optimalisatie Naast het verhogen van de vindbaarheid op internet helpt esser-emmerik webshops met het verhogen van de conversie. Dit doet esser-emmerik door diverse marketing kanalen te monitoren met behulp van Google Analytics. Kansen en risico’s inzichtelijk maken Wanneer een klant een idee heeft voor een website of webshop kan de klant aankloppen bij esser-emmerik voor een uitgebreide review van dit idee. Hierbij worden de kansen en risico’s van dit idee verwerkt in een business concept. Klanten esser-emmerik heeft een brede klantenkring verspreid over Nederland. De doelgroep/klanten van esser-emmerik zijn bedrijven en geen particulieren. Dit doet esser-emmerik, omdat de aangeboden diensten alleen voor bedrijven geschikt zijn.
8
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2.2. probleemstelling Vanuit Magento webshop ondernemers is de vraag ontstaan om inzicht te krijgen wat zij aan winst overhouden uit online marketing kanalen. De ondernemers weten wat zij maandelijks betalen aan online marketing, maar niet hoeveel rendement zij daaruit behalen. De ondernemers zijn bekend met Google Analytics, waarin de omzet wordt weergegeven, maar zij kunnen daarin niet zien of de marketing kanalen winst behalen. Volgens esser-emmerik willen de ondernemers weten wat het rendement is van online marketing kanalen. Er is onderzocht welke gegevens uit Google Analytics betreffende marketing kanalen, Magento en financiële bedrijfsgegevens nodig zijn. Daarnaast is onderzocht hoe deze gecombineerd moeten worden om rendement te berekenen, waarmee de ondernemer zijn organisatie kan sturen. De ondernemers moeten met behulp van variabelen indicatoren kunnen zien wat het rendement is na aftrek van verschillende bedrijfskosten waaronder: • Kosten van het marketing kanaal (Kieskeurig, Beslist etc.) • Inkoopprijs • Hosting • Opslag • Huur • Verzekeringen • Personeel De oplossing, in de vorm van een systeem, zou voor de ondernemers inzicht moeten creëren in het rendement van marketing kanalen. Op basis van dit gegeven moet de ondernemer zijn organisatie kunnen sturen. Het systeem moet door esser-emmerik beheerd, uitgebreid en onderhouden worden en aangeboden worden aan toekomstige klanten, Magento webshop ondernemers.
9
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2.3. huidige situatie Wanneer de ondernemer nu het rendement wil weten over marketing kanalen moet eerst contact gezocht worden met esser-emmerik. esser-emmerik gaat vervolgens inloggen in Google Analytics (website analyse software) om vast te kunnen stellen welke producten via welk marketing kanaal zijn verkocht, wat de omzet is, de verzendkosten en BTW zijn. Vervolgens moet esser-emmerik in Magento inloggen om daaruit de inkoop prijs per product te halen en deze weer opnemen in de berekening. Vervolgens kan de berekening gedaan worden en kunnen de resultaten met de ondernemer gedeeld worden. Om een beter beeld te krijgen van de huidige situatie, staat hieronder een voorbeeld uit gewerkt in stappen die uitgevoerd worden om het rendement te berekenen. Berekenen van rendement voor marketing kanaal Beslist.nl: 1. In Google Analytics worden van Beslist de volgende onderdelen genoteerd, gefilterd over een bepaalde periode (dag, week, maand): a. De omzet van Beslist.nl b. De verzendkosten van alle orders bij elkaar optellen c. De BTW bedragen van alle orders bij elkaar optellen d. De productnummers van de producten die verkocht zijn via Beslist.nl 2. Alle waarden worden in de rendement formule geplaatst waarna het rendement
in procenten bekend is. Voor een voorbeeld van de berekening zie de bijlage ‘Definitie rendement - Voorbeeld berekening’ Dit is voor esser-emmerik een tijdrovend en ingewikkeld proces. Bovenstaande voorbeeld laat zien welke stappen uitgevoerd worden om het rendement van één marketing kanaal vast te stellen. Wanneer dit voor meerdere marketing kanalen berekend moet worden is dit een arbeidsintensieve taak en een tijdrovend proces voor esser-emmerik.
10
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2.4. hoofd- en deelvragen Om het onderzoek te sturen is de volgende hoofdvraag geformuleerd: “Hoe kunnen verkoop- en product informatie en bedrijfskosten uitgewisseld worden met Google Analytics, om zo voor Magento webshop ondernemers inzichtelijk weer te geven wat het rendement is van verschillende marketing kanalen op een dashboard?” Omdat de hoofdvraag bestaat uit meerdere onderwerpen zijn de volgende deelvragen geformuleerd die informatie geven over deze onderwerpen: 1. Welke informatie heeft een Magento webshop ondernemer nodig om te bepalen of een marketing kanaal rendeert? 2. Hoe vindt de uitwisseling van de gegevens uit Magento en Google Analytics plaats? 3. Hoe worden bedrijfskosten en gegevens uit Google Analytics en Magento overzichtelijk op een dashboard weergegeven en waar kan de webshop ondernemer deze raadplegen?
11
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2.5. onderzoeksmethoden Om de deelvragen compacter te maken zodat ze makkelijker te beantwoorden zijn deze weer opgedeeld in subdeelvragen. In dit hoofdstuk wordt toegelicht hoe alle deel- en subdeelvragen onderzocht zijn en wat die als onderzoeksresultaat opleveren. De onderzoeksmethoden zijn voor de structuur gescheiden onder de verschillende deelvragen. Elke deelvraag kent tenminste één op te leveren product aangeduid als deliverable.
2.5.1. Deelvraag 1: Welke informatie heeft een Magento webshop ondernemer nodig om te bepalen of een marketing kanaal rendeert? Met deze deelvraag is in kaart gebracht welke informatie nodig is om te bepalen of een marketing kanaal rendeert. In de tabellen 1 tot en met 4 zijn de subdeelvragen uitgewerkt. [1.1] Wat is rendement in dit onderzoek? Tabel 1: wat is rendement in dit onderzoek?
Methode
Online literatuurstudie, ACM, Google Sholar raadplegen en deze toevoegen aan APA woordenlijst.
Deliverable
Definitie woordenlijst in de scriptie genaamd ‘Rendement’.
Deliverable
Document ‘Rendement onderzoek’ waar het onderzoek in staat van de tot stand brenging van de rendement formule.
[1.2] Wat is een marketing kanaal in dit onderzoek? Tabel 2: wat is een marketing kanaal in dit onderzoek?
Methode
Online literatuurstudie, ACM, Google Sholar als uitgangspunt. Mocht dit niet genoeg informatie bieden dan word Google als extra informatiebron gebruikt.
Deliverable
Definitie woordenlijst in de scriptie genaamd ‘Marketing kanaal’.
[1.3] Wat is Magento en waarom wordt het gebruikt? Tabel 3: wat is Magento en waarom wordt het gebruikt?
Methode
Online literatuurstudie met als uitgangspunt de website van Magento. Voor extra informatie Google raadplegen.
Deliverable
Hoofdstuk in document ‘Magento’ genaamd ‘De kracht van Magento’ die kort omschrijft wat Magento is. 12
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
[1.4] Hoe wordt rendement bepaald? Tabel 4: Hoe wordt rendement bepaald?
Methode
Online literatuurstudie, brainstorm sessie met esser-emmerik.
Deliverable
Onderdeel in scriptie genaamd ‘Rendement berekening’ waarin met een formule en tekstuele toelichting wordt getoond hoe rendement berekent wordt.
2.5.2. Deelvraag 2. Hoe vindt de uitwisseling van de gegevens uit Magento en Google Analytics plaats? Met deze deelvraag is in kaart gebracht wat Google Analytics en Magento zijn en hoe gegevens uitgewisseld kunnen worden met deze systemen. Met het antwoord op deze vraag kan een uitspraak gedaan worden over de technische invulling van een proof of concept. De deelvraag is opgedeeld in subvragen met de daar bijbehorende onderzoeksmethode en welke deliverables gerealiseerd zijn. Deze staan vermeld in tabellen 5 tot en met 8. [2.1] Wat is Google Analytics? • Welke gegevens zijn beschikbaar in Google Analytics? • Hoe worden gegevens met Google Analytics uitgewisseld? • Hoe worden gegevens weergegeven in Google Analytics? • Hoe wordt Google Analytics ingesteld? Tabel 5: wat is Google Analytics?
Methode
Online literatuurstudie met als basis de website van Google Analytics.
Deliverable 1 Document genaamd ‘Google Analytics’ waarin antwoord gegeven wordt op hierboven beschreven vragen.
Deliverable 2 Hoofdstuk ‘Google Analytics’ in dit document. [2.2] Welke product informative is beschikbaar in Magento? Tabel 6: welke product informatie is beschikbaar in Magento?
Methode
Online literatuurstudie van technische documentatie van Magento op de website van Magento.
Deliverable
Een referentie in het document ‘Magento’ naar de documentatie van Magento met de productinformatie.
13
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
[2.3] Welke klant informative is beschikbaar in Magento? Tabel 7: Welke klant informatie is beschikbaar in Magento?
Methode
Online literatuurstudie van technische documentatie van Magento op de website van Magento.
Deliverable
Een lijst in het document ‘Magento’ genaamd ‘Klant informatie in Magento’ met variabelen die gebruikt worden in Magento om een klant te beschrijven.
[2.4] Hoe worden gegevens met Magento uitgewisseld? Tabel 8: Hoe worden gegevens met Magento uitgewisseld?
Methode
Online literatuurstudie van technische documentatie van Magento op de website van Magento.
Deliverable 1 Een hoofdstuk in het document ‘Magento’ genaamd ‘Communicatie
met Magento’ die beschrijft hoe gegevens met Magento uitgewisseld kunnen worden.
Deliverable 2 Proof of concept die aantoont dat er gecommuniceerd kan worden met zowel Google Analytics als Magento.
2.5.3. Deelvraag 3: Hoe worden bedrijfskosten en gegevens uit Google Analytics en Magento overzichtelijk op een dashboard weergegeven en waar kan de webshop ondernemer deze raadplegen? Met deze deelvraag is in kaart gebracht wat webshop ondernemers willen zien op een dashboard. De deelvraag is opgedeeld in subvragen met de bijbehorende onderzoeksmethode en welke deliverables het oplevert. Deze deelvraag gaat de specificaties opleveren hoe het dashboard ontworpen gaat worden. De resultaten zullen terug te vinden in de bijlagen onder ‘Proof of Concept’. [3.1] Wat is een dashboard? Tabel 9: wat is een dashboard?
Methode
Online literatuurstudie, voornamelijk Google
Deliverable
Definitie in de woordenlijst in de scriptie genaamd ‘Dashboard’.
14
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
[3.2] Bieden Magento of Google Analytics de mogelijkheid om gegevens te berekenen, eventueel op te slaan, of moet er een eigen systeem ontwikkeld worden? • Aan welke specificatie eisen moet het systeem voldoen? • Op welk systeem worden de gegevens berekent? • Worden de uitkomsten van de berekeningen opgeslagen? Tabel 10: bieden Magento of Google Analytics de mogelijkheid om gegevens te berekenen, eventueel op te slaan, of moet er een eigen systeem ontwikkeld worden?
Methode
Brainstorm sessie met esser-emmerik, afweging/overweging van kennis die opgedaan uit de documenten ‘Magento’ en ‘Google Analytics’.
Deliverable 1 Proof of concept ‘Cost upload Google Analytics’. Deliverable 2 Advies rapport ‘Systeem keuze’. [3.3] Hoe wordt een dashboard gerealiseerd waarop inzichtelijk gegevens worden weergegeven aan de hand van adviezen uit dit onderzoek? • Welke gegevens zijn nodig om het dashboard inzichtelijk te maken? Tabel 11: hoe wordt een dashboard gerealiseerd waarop inzichtelijk gegevens worden weergegeven aan de hand van adviezen uit dit onderzoek?
Methode
Agile ontwikkel traject, Brainstorm sessie met esser-emmerik
Deliverable
Prototype. Een werkend dashboard waarop overzichtelijk gegevens weergegeven worden.
15
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
3. rendement In dit hoofdstuk zijn alle onderzoeksresultaten over rendement beschreven. Hiervoor is eerst de definitie van rendement vast gesteld. In dit onderzoek betekent rendement de winst van de omzet in percentages. Om rendement te bepalen kan de standaard rendement formule gebruikt worden: Vergelijking 1: standaard rendement formule
rendement =
Winst ∗ 100 Omzet
Omdat deze formule te abstract is om in het onderzoek te gebruiken, zijn de variabelen ontleed en toegelicht hoe deze ingevuld moeten worden.
3.1. totstandkoming rendement formule In de standaard rendement formule is het woord winst gebruikt. Om winst te berekenen wordt de volgende formule gebruikt: Vergelijking 2: standaard winst formule
winst = omzet − kosten In bovenstaande formule komen de begrippen omzet en kosten terug. Deze begrippen hebben een eigen betekenis binnen dit onderzoek. Deze zijn hieronder toegelicht: Omzet Omzet bestaat uit alle kosten (bijvoorbeeld verkoopprijs, BTW, verzendkosten en administratieve kosten) die aan de klant in rekening zijn gebracht. Kosten Kosten bestaan uit variabelen die onderverdeeld zijn in drie categorieën: ● Indirecte kosten ● Directe kosten ● Marketing kanaal kosten
16
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Indirecte kosten Indirecte kosten bestaat uit alle kosten die niet direct zijn toe te kennen aan een product, deze kosten zijn gerelateerd aan de bedrijfsvoering. Deze kosten staan niet op een order maar worden (indirect) aan de klant doorberekend. Dit zijn bijvoorbeeld: ● Gas, water en licht ● Personeel ● Verzekeringen ● Huur pand Directe kosten Directe kosten zijn de kosten die (direct) toe te kennen zijn aan een product, deze zijn terug te vinden op een order en zijn: ● BTW ● Inkoopprijs ● Verzendkosten Marketing kanaal kosten Marketing kanaal kosten zijn kosten die de ondernemer betaald voor het marketing kanaal. Dit kan door middel van klik kosten, in abonnement vorm of een combinatie van deze twee. Marketing kanaal kosten zijn niet terug te vinden op de order, daarom staat dit niet in bovenstaande lijst van directe kosten. Omdat de marketing kanaal kosten betaald moeten worden, worden deze toegekend aan producten. Dit is omdat marketing kanaal kosten gemaakt worden om de verkoop ,van producten, te bevorderen. Om de marketing kanaal kosten toe te kennen aan één product wordt het totaal marketing kanaal kosten gedeeld door het totaal aantal verkochte producten. Dit levert de volgende formule op: Vergelijking 3: marketing kanaal kosten product
marketing kanaal kosten product =
totaal marketing kanaal kosten totaal verkochte producten
Daarmee bestaan de directe kosten uit: • BTW • Inkoopkosten • Verzendkosten • Marketing kanaal kosten product Om de totale kosten van één product te berekenen moeten indirecte kosten bij de directe kosten opgeteld worden. Dit vormt een probleem, omdat de (totale) indirecte kosten niet bij één product opgeteld kunnen worden, omdat dan alle indirecte kosten aan één product worden toegekend. Om de indirecte kosten aan één product toe te kennen is een verhouding van de indirecte kosten nodig. Er zijn meerdere manieren om de verhouding te berekenen, zoals op afmetingen van een product, hoeveel tijd het
17
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
personeel met het product werkt of hoeveel dagen het product in het magazijn staat voordat het verkocht wordt. Deze gegevens zijn of niet terug te vinden of niet op een vaste locatie terug te vinden. Omdat het onderzoeksteam deze gegevens dus niet in handen heeft en kan krijgen, heeft het onderzoeksteam na goedkeuring van esseremmerik, gekozen om indirecte kosten te verdelen door te bepalen hoeveel omzet het product heeft gegenereerd ten aanzien van de totale omzet. Dit levert de volgende formule op: Vergelijking 4: omzet verhouding
verhouding = omzet product / totale omzet De kosten van één product wordt op de volgende manier vastgesteld: Vergelijking 5: product kosten bepaling
product kosten = (indirecte kosten ∗ verhouding) + directe kosten De (totale) kosten van de organisatie worden als volgt vastgesteld: Vergelijking 6: kosten bepaling
kosten = indirecte kosten + totale directe kosten In de probleemstelling staat dat de ondernemer wil weten hoeveel rendement hij uit de gebruikte marketing kanalen haalt. De ondernemer ziet elke maand dat marketing kanalen hem geld kosten, onduidelijk is hoeveel winst uit de marketing kanalen gehaald is. Hoewel de ondernemer hiermee zijn organisatie kan sturen op marketing kanaal niveau, zegt dit niets over de producten die hij verkoopt. Het kan zijn dat bijvoorbeeld Kieskeurig, een positief rendement behaald terwijl er producten via het kanaal aangeboden worden waar verlies op gemaakt wordt. Door het rendement per product per marketing kanaal te berekenen kan de ondernemer sturen. Zo kan de ondernemer besluiten om producten waar hij het laagste rendement op behaald te vervangen voor andere producten. Uit brainstormsessies met esser-emmerik is naar voren gekomen dat esser-emmerik het rendement per product per marketing kanaal terug wil zien in het eindproduct. In het onderzoek zijn twee rendement niveau’s te onderscheiden: ● Rendement van één marketing kanaal ● Rendement van product per marketing kanaal Nadat het onderzoeksteam de formule heeft geformuleerd is deze doorgenomen met esser-emmerik. Daar is uit gekomen dat de formule niet helemaal correct is. Dit was in eerste instantie winst over de kosten in plaats van winst over de omzet. Winst over de kosten is Return of Investment, verder geschreven als ROI. In een optimale situatie zouden rendement en ROI op het dashboard getoond dienen te worden.
18
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Naast het onderscheid van deze begrippen, kan ook een onderscheid gemaakt worden tussen rendement en ROI over een marketing kanaal en rendement en ROI over een product per marketing kanaal. Er zijn twee rendement niveaus en elk niveau kent rendement en ROI. De formule die eerder genoemd is in dit hoofdstuk kan gebruikt worden, alleen de definitie van omzet en kosten varieert per formule. Om deze verschillen weer te geven is gekozen om een andere notatie van de formule te gebruiken zoals hieronder vermeld staat. In de bijlage ‘Rendement onderzoek’ hoofdstuk 2 ‘Formule rendement berekening’ staat in detail te lezen hoe deze formules tot stand zijn gekomen. Om het rendement van een marketing kanaal te berekenen is de volgende formule tot stand gekomen: Vergelijking 7: rendement marketing kanaal
Rendement(Marketing kanaal) =
Winst(omzet marketing kanaal) ∗ 100 Omzet marketing kanaal
Op de volgende pagina is de toelichting van winst van bovenstaande formule te zien. De omzet wordt niet toegelicht, omdat deze waarde rechtstreeks opgehaald kan worden uit Google Analytics zoals in hoofdstuk 4 ‘Google Analytics’ te vinden is. Tabel 12: rendement marketing kanaal formule toelichting
Legenda M = marketing kanaal
V = verhouding van omzet marketing kanaal t. o. v. omzet webshop W = winst IK = indirecte kosten O = omzet DK = directe kosten K = kosten
Formule van winst
Vergelijking 8: winst vergelijking marketing kanaal
W = O!"#$%&'() !"#""$ − K !"#$%&'() !"#""$ = O!"#$%&'() !"#""$ − (IK !"#$%&'() !"#""$ + DK) = O!"#$%&'() !"#""$ − ((IK !"#$%&' ∗ V) + DK) = O!"#$%&'() !"#""$ − (IK !"#$%&' ∗ (O!"#$%&'() !"#""$ / O!"#$%&' ) + DK)
Het rendement van een product van een marketing kanaal wordt als volgt berekent:
19
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Vergelijking 9: rendement per product marketing kanaal
Rendement(Product(Marketing kanaal)) Winst(Product(Marketing kanaal)) = ∗ 100 Omzet(Product(Marketing kanaal)) Hieronder is de toelichting te zien van winst van bovenstaande formule. Tabel 13: rendement per product marketing kanaal toelichting
Legenda
V = verhouding van product omzet t. o. v. marketing kanaal omzet W = winst IK = indirecte kosten O = omzet DK = directe kosten K = kosten
Formule winst
Vergelijking 10: winst vergelijking product marketing kanaal
W = (O!"#$%&'() !"#""$ − K !"#$%&'() !"#""$ ) ∗ V = (O!"#$%&'() !"#""$ − (IK !"#$%&'() !"#""$ + DK)) ∗ V = (O!"#$%&'() !"#""$ − ((IK !"#$%&' ∗ V) + DK)) ∗ V = (O!"#$%&'() !"#""$ − (IK !"#$%&' ∗ (O!!"#$%& / O ) + DK)) ∗ V
Het ROI van een marketing kanaal kan als volgt berekend worden: Vergelijking 11: ROI berekening marketing kanaal
ROI(Marketing kanaal) =
Winst(Marketing kanaal) ∗ 100 Kosten(Marketing kanaal)
De winst en kosten zijn hetzelfde als bij de formule van rendement op marketing kanaal niveau. Het verschil is dat er bij deze formule de winst niet gedeeld wordt door de omzet, maar door de kosten. Als laatste is er de formule om het ROI van een product per marketing kanaal te berekenen. Deze is als volgt: Vergelijking 12: ROI berekening product per marketing kanaal
ROI(Product(Marketing kanaal)) Winst(Product(Marketing kanaal)) = ∗ 100 Kosten(Product(Marketing kanaal)) Bij deze formule zijn de winst en kosten gelijk aan die van de formule van rendement op product per marketing kanaal niveau. 20
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
3.2. conclusie In dit onderzoek is de definitie van rendement: de winst van de omzet in percentages. Aanvankelijk werd door het onderzoeksteam gedacht dat er één formule tot stand gebracht zou moeten worden, uiteindelijk bleek dat vier variaties nodig zijn voor dit onderzoek. Om een onderscheid te maken tussen de variaties is gekozen om verschillende notaties te gebruiken. Dit is de rendement formule van een marketing met de nieuwe notatie: Vergelijking 13: nieuwe notatie rendement formule
Rendement(Marketing kanaal) =
Winst(Marketing kanaal) ∗ 100 Omzet(Marketing kanaal)
Deze formule zal in het onderzoek en het proof of concept gebruikt worden om met de gegevens van Google Analytics en Magento het rendement van een marketing kanaal te bepalen. De deelvraag ‘Welke informatie heeft een Magento webshop ondernemer nodig om te bepalen of een marketing kanaal rendeert?’ is hiermee nog niet beantwoord, deze wordt beantwoord in het hoofdstuk 3 ‘Magento’.
21
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4. magento De rendement formule is in het hoofdstuk 3 ‘Rendement’ vastgesteld. Een onderdeel van de rendement formule is directe kosten. De directe kosten bestaan uit product- en order informatie, informatie die in Magento opgeslagen is. In dit hoofdstuk is onderzocht wat Magento is, welke informatie nodig is om de rendement formule in te vullen en hoe deze informatie met Magento uitgewisseld kan worden.
4.1. wat is magento Magento is een gratis en volgens Bondarenko, A. (September 11, 2012) een populair e-Commerce CMS software pakket waarmee een webshop gemaakt, beheerd en onderhouden kan worden. Magento wordt gebruikt door ondernemers, omdat het teveel tijd en geld zou kosten om zelf een e-Commerce software pakket te ontwikkelen. Daarnaast zou een reden kunnen zijn dat andere pakketten te duur zijn. Door de vele plugins die beschikbaar zijn kan elke Magento webshop makkelijk naar wens ingericht worden. esser-emmerik gebruikt Magento om webshops op te zetten voor zijn klanten. De klanten van esser-emmerik gebruikten Magento om producten te verkopen, orders in te zien en producten te beheren.
4.2. kosten ophalen uit magento In hoofdstuk 2.1. ‘Totstandkoming rendement formule’ onder het kopje ‘Directe kosten’ staat dat directe kosten bestaan uit: ● BTW ● Inkoopprijs ● Verzendkosten Directe kosten zijn order- en product gerelateerd, informatie die opgeslagen is in Magento. Deze kosten worden ingevoerd door de ondernemer en gebruikt bij het verkopen van artikelen. Om de directe kosten uit Magento op te halen kan gebruik gemaakt worden van de Magento Application Programming Interface (API). Alle informatie die ingevoerd wordt door de ondernemer of de klanten van de Magento webshop (door gebruik ervan) kan opgehaald worden via de Magento API. Er zijn een drie protocollen om te communiceren met de Magento API: ● XML-RPC ● REST API ● SOAP (v1, v2, v2 WS-I Compliance mode) Om te bepalen welke gegevens opgehaald kunnen worden via de Magento API en om te testen hoe met de Magento API gecommuniceerd wordt is er een proof of concept 22
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
uitgevoerd. Aan de hand van de proof of concept is aangetoond dat de product gegevens op te halen zijn uit de Magento API door gebruik te maken van de Magento SOAP v1 API. De opzet en uitvoering van het proof of concept zijn nader toegelicht in de bijlage ‘Proof of concept’ hoofdstuk 4 ‘Communicatie met de Magento API’. In de uitwerking van het proof of concept is een XML object met gegevens te vinden over een order en het verkochte product afkomstig uit een Magento store. Aan de hand van deze gegevens is in onderstaande tabel vastgesteld welke variabelen gebruikt zijn om de directe kosten te vullen. Tabel 14: directe kosten invulling met Magento API uitvoer variabelen
Directe kost
Magento API uitvoer variabele
BTW
tax_amount
Inkoopprijs
base_cost
Verzendkosten
base_shipping_amount
4.3. conclusie Om te toetsen of de kennis die vergaard is tijdens de literatuurstudie correct, is een proof of concept gedaan. De proof of concept laat een lijst gegevens zien die opgehaald worden door met de SOAP v1 API van Magento te communiceren. Uit het proof of concept is gebleken dat alle product informatie die is ingevoerd in het Magento beschikbaar is binnen API van Magento. Uit alle mogelijk variabelen zijn de directe kosten te koppelen aan gegevens uit Magento. De subdeelvraag “Welke klant informatie is beschikbaar in Magento?” is niet beantwoord, omdat na het beantwoorden van de andere vragen over Magento besloten is door het onderzoeksteam dat er genoeg informatie beschikbaar is en dat het antwoord op geen toegevoegde waarde zou hebben in dit onderzoek. Als conclusie kan gesteld worden dat het mogelijk is om met de Magento SOAP v1 API te communiceren en product- en order gegevens op te vragen. Er is hierbij gekozen om gebruik te maken van de SOAP v1 API, omdat met deze versie ook meerdere methodes in één API call gedaan kunnen worden. Dit ten opzichte van de SOAP v2 API waarbij voor elke methode één API verzoek gedaan moet worden.
23
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
5. google analytics Uit het vorige hoofdstuk blijkt dat het mogelijk is om de directe kosten te bepalen aan de hand van gegevens in Magento. Deze gegevens kunnen opgehaald worden via de Magento SOAP V1 API. Het moet bekend zijn welke orders via welk marketing kanaal zijn verkregen om het rendement per marketing kanaal en product marketing kanaal te kunnen berekenen. Dit is terug te vinden in Google Analytics. Daarnaast is onderzocht wat Google Analytics is, hoe het werkt en hoe met de API gecommuniceerd wordt.
5.1. wat is google analytics? Google Analytics is een gratis dienst ontwikkeld door Google om voor website eigenaren statistieken te verzamelen over bijvoorbeeld bezoekersstromen, gebruikte landingspagina’s en gebruikte internet browsers. Met deze statistieken kan de website eigenaar zijn website verbeteren. Deze statistieken worden verzameld door op een website JavaScript code te plaatsen die statistieken verzameld en doorstuurt naar Google Analytics. Die het de verzamelde statistieken weergeeft in grafieken en tabellen. In de bijlage genaamd ‘Google Analytics’ staat een uitgebreide omschrijving over Google Analytics en een diepgaandere technische omschrijving hoe deze statistieken verzameld worden.
5.2. gegevens in google analytics Zoals te lezen is in de inleiding verzameld Google Analytics allerlei gegevens, daar vallen ook transactie gegevens per marketing kanaal onder. Omdat Google Analytics bijhoudt via welke externe website de bezoeker binnenkomt kan de ondernemer zien welke externe websites naar zijn webshop linken. Wanneer een externe website naar de webshop van de ondernemer linkt is dit een marketing kanaal, deze bevordert de verkoop. Wanneer een klant via een marketing kanaal een aankoop doet in de webshop wordt deze transactie toegekend aan het marketing kanaal. Door de transactie gegevens per marketing kanaal kan in kaart gebracht worden welke orders via welk marketing kanaal zijn verkregen. Met dit gegeven kan het rendement per marketing kanaal en het rendement per product per marketing kanaal worden berekend.
24
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
5.3. cost analyse in google analytics Binnen Google Analytics is het mogelijk om een rapport te genereren met ROI van een marketing kanaal, dit wordt Cost Analyse genoemd. Hier zijn de proof of concepts ‘Cost data upload in Google Analytics’ en ‘Berekeningen uitvoeren in Google Analytics met eigen variabelen en data.’ gedaan deze zijn terug te vinden in de bijlage ‘Proof of concepts’ hoofdstuk 1 en 2. De verwachting was dat het mogelijk zou zijn om kosten naar Google Analytics te uploaden en daarmee het rendement te berekenen. Uit deze proof of concepts is gebleken dat alleen specifieke kosten van het marketing kanaal geüpload kunnen worden naar Google Analytics. Daarnaast is het niet mogelijk een eigen formule in Google Analytics in te voeren en Google Analytics die te laten berekenen.
5.4. gegevens uitwisselen met google analytics Nu blijkt dat Cost analyse niet het gewenste resultaat levert is gekeken naar welke gegevens uit Google Analytics gehaald kunnen worden. Na het bestuderen van de documentatie over de Google Analytics API is besloten een proof of concept te maken om transactie gegevens uit Google Analytics te halen en de Google Analytics API te verkennen. In het proof of concept zijn transactie gegevens opgehaald uit de Google Analytics API, gegroepeerd en gesorteerd op marketing kanaal. De verwachting is dat het mogelijk is om deze gegevens te verkrijgen.
Figuur 1: uitvoer gegevens uitwisseling Google Analytics
25
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
In de screenshot is te zien dat de omzet van twee marketing kanalen (beslist.nl en kieskeurig.nl) uit Google Analytics gehaald is. Hiermee is de proof of concept geslaagd. Om de proof of concept te realiseren is gebruik gemaakt van PHP en de Google Client Library PHP. Voor de uitgebreide beschrijving en technische uitwerking van deze proof of concept zijn terug te vinden in de bijlage ‘Proof of concept’, hoofdstuk 3 ‘Order informatie uit Google Analytics halen en verrekenen in script’.
5.5. conclusie Google Analytics is statistisch analyse programma over website gebruik. Op de vraag “Welke gegevens zijn beschikbaar in Google Analytics?” kan geantwoord worden dat er veel gegevens beschikbaar in Google Analytics en de Google Analytics API. Om het antwoord meer af te stemmen op dit onderzoek gaat het hier om omzet van een marketing kanaal en orders verkocht via welk marketing kanaal. Om deze gegevens op te vragen is gebruik gemaakt van de Google Analytics API. Deze API zal aangesproken worden door een programma geschreven in PHP die gebruik maakt van Google Client Library voor PHP. Uit de proof of concepts ‘Cost data upload in Google Analytics’ en ‘Berekeningen uitvoeren in Google Analytics met eigen variabelen en data.’ is gebleken dat het niet mogelijk is om het rendement te bereken in Google Analytics door kosten naar Google Analytics te uploaden en zelf een formule te maken binnen Google Analytics. Uit de proof of concepts is de conclusie getrokken dat Google Analytics alleen statistieken en grafieken kan weergeven over gegevens die te maken hebben met bezoeker gedrag. Daaruit is te concluderen dat Google Analytics niet geschikt is om het rendement en de ROI te berekenen. Wel is het mogelijk omzet en de orders per marketing kanaal via de Google Analytics API op te vragen.
26
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
6. implementatie keuze dashboard Nu bekend is hoe het rendement berekend wordt en het niet mogelijk is om met Google Analytics het rendement te berekenen, moet worden gekeken naar een andere oplossing. De doelstelling van de oplossing is om voor Magento webshop ondernemers het rendement van marketing kanalen inzichtelijk weer te geven, zodat hij met dit gegeven zijn organisatie kan sturen. In de hoofdvraag is al gesproken over ‘dashboard’, wat in dit hoofdstuk uitgewerkt is.
6.1. wat is een dashboard Binnen het bedrijfsleven worden dashboards gebruikt om gegevens weer te geven die de toestand van de organisatie weerspiegelen. In het geval van een webshop ondernemer zou dit bijvoorbeeld; het aantal bezoekers kunnen zijn die zich op dat moment de webshop bezoeken of het aantal bestellingen welke die dag geplaatst zijn. Binnen dit onderzoek is er een definitie van het woord dashboard vastgesteld en is terug te vinden in de woordenlijst, zie hoofdstuk 9.4. ‘Woordenboek’.
6.2. implementatie opties esser-emmerik wil een dashboard, zodat de ondernemer op een inzichtelijke manier het rendement kan inzien. Dit dashboard moet ontwikkeld worden, maar de vraag is waar dit dashboard geraadpleegd kan worden? Het dashboard zou een onderdeel kunnen zijn van Google Analytics of Magento. Het onderzoeksteam heeft een onderzoek gedaan om de mogelijke implementatie opties in kaart te brengen en hieruit is een optie gekozen, deze is vervolgens gerealiseerd. In onderstaande tabel is het onderzoek naar de mogelijke implementatie opties weergeven als samenvatting met de voor- en nadelen. Tabel 15: voor- en nadeel vergelijking implementatie opties
#
Optie
1
Losstaand systeem
Voordelen Volledig beheer over de code ● Geen complicaties met verschillende versies van andere systemen ● Mogelijkheid tot ondersteuning van meerdere eCommerce pakketten ●
Nadelen Ophalen en verwerken van gegevens kost veel tijd ● Onderhoud kost tijd en geld ● Security moet vanaf de grond opgezet worden ● Hosting kosten voor systeem ●
27
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2
Dashboard binnen Google Analytics
●
Zelfde systeem waar alle website analyses in staan ● Gebruikersvriendelijk, want web ondernemer is bekend met de interface
●
3
Plugin binnen Magento
●
Beschikking tot alle functionaliteiten van Magento ● Rekenkracht en dataverkeer kan doorberekent worden aan de klant. ● Web ondernemer is bekend met interface
●
4
Losstaand systeem die bestaat uit koppelingen tussen diverse Google services waaronder Google Forms en Google App scripts
●
Lage ontwikkel, onderhoud en hosting kosten ● Kost niks
●
5
Zelf te ontwikkelen API die een zelfbouw plugin binnen Magento gebruikt als GUI
●
Efficiënt kunnen updaten aangezien Magento die functionaliteit bied
●
Weinig mogelijkheden om interface en functionaliteiten te wijzigen
Ophalen en verwerken van gegevens kan systeem belasten en vertragen ● Versie conflict met Magento ● Updaten moet bij elke afzonderlijke klant/plugin gebeuren Complexe informatie structuur. ● Afhankelijk van verschillende externe diensten waardoor functionaliteiten kunnen wijzigen ● Tijdrovend om per ondernemer op te zetten Hosting kosten voor de API ● Versie conflict met Magento ● Onderhoud nodig voor zowel de API als de plugin
Voordat een implementatie optie is gekozen is gekeken naar de wensen van de opdrachtgever. De gekozen implementatie optie voldoet aan onderstaande eisen: ● makkelijk te implementeren ● onderhoudsvriendelijk ● schaalbaar ● makkelijk uitbreidbaar naar andere diensten
28
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
6.3. conclusie Optie 3 en 5 vallen af omdat het systeem makkelijk uitbreidbaar moet zijn naar meerdere e-Commerce pakketten en het moet onderhoudsvriendelijk zijn. Dit is niet het geval als er voor elke e-Commerce pakket een eigen plugin gemaakt moet worden. Optie 4 valt af omdat het realiseren van een systeem binnen Google Appscript en Google Forms. Hoge mate complexiteit met zich mee brengt ronde de informatie structuur, deze zou per klant opnieuw uit gezet moeten worden. Daarnaast wordt de afhankelijkheid van Google heel groot en mochten er wijziging plaats vinden in de voorwaarde van één van de diensten kan dat problemen veroorzaken voor het hele systeem. Uit de proof of concepts ‘Cost data upload in Google Analytics’ en ‘Berekeningen uitvoeren in Google Analytics met eigen variabelen en data’, is gebleken dat alleen het gebruik van Google Analytics niet toereikend is. Dit omdat de cost data die geüpload kan worden alleen marketing kanaal specifiek is en niet alle andere kosten kan bevatten die zijn vast gesteld om het rendement en ROI te berekenen. Hierdoor valt optie 2, een dashboard binnen Google Analytics, af. De optie die dan overblijft is optie 1 en dat is een eigen systeem maken. Dit eigen systeem zal dan als basis dienen bij het uitwerken tot een prototype van het dashboard. Omdat esser-emmerik alleen bekend is met PHP en JavaScript zal dit eigen systeem daarin geprogrammeerd worden. Na afwegen van de voor- en nadelen van de verschillende opties is naar voren gekomen, dat het realiseren van een eigen systeem het beste past bij de eisen van de opdrachtgever en binnen dit onderzoek.
29
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
7. prototype Nu de rendement formule bekend is, hoe en uit welke systemen de data wordt opgehaald en een keuze gemaakt is uit de implementatie opties voor het dashboard, kan het systeem gerealiseerd worden. De realisatie van dit systeem zal beschreven worden in de onderstaande hoofdstukken.
7.1. ontwikkelmethode Voor het ontwikkelen van het prototype is geen vastgelegde ontwikkelmethode gebruikt. In principe was alle code aanwezig om te communiceren met de API’s van Magento en Google Analytics. Daarnaast was de code om de rendement berekening uit te voeren ook al beschikbaar. Deze code is geprogrammeerd tijdens het maken van de verschillende proof of concepts. Tijdens dat proces is de code steeds verder uitgebreid en voorzien van meer functionaliteiten.
7.2. feedback Er is een feedback moment geweest in de vorm van een presentatie van het prototype. Het prototype is enthousiasme ontvangen. Na de presentatie had esser-emmerik twee verzoeken: ● Het systeem moet door meerdere gebruikers gebruikt gaan worden ○ Google Open Authentication toevoegen om de authenticatie af te handelen. Alle klanten van esser-emmerik hebben een Google account omdat zij gebruik maken van Google Analytics. ○ Het invoeren van de Magento API waarden moet dynamisch worden ○ Het selecteren van een Google Analytics profiel moet dynamisch worden ● Het rendement wordt bepaald door de winst over de omzet te berekenen
30
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
7.3. conclusie Esser-emmerik wil een systeem waar verder aan ontwikkeld kan worden. Om het systeem te testen bij esser-emmerik voor het opgeleverd wordt is er een prototype gemaakt die de belangrijkste functionaliteiten biedt. Gegevens moeten opgehaald worden uit Google Analytics en Magento. Deze gegevens zullen gecombineerd worden door het prototype om vervolgens gebruikt te worden in de rendement formule waarmee het rendement per marketing kanaal en per product per marketing kanaal kan worden berekend. Het prototype is gepresenteerd aan esser-emmerik. Het prototype voldoet aan de eisen van dit onderzoek om de hoofdvraag te kunnen beantwoorden. Het uiteindelijke product valt niet binnen de scope van dit onderzoek, omdat er nog een aantal functionaliteiten in het systeem moeten komen die niet bijdragen aan het beantwoorden van de hoofdvraag. Deze functionaliteiten zijn voort gekomen uit feedback van esser-emmerik. esser-emmerik gaf aan dat het prototype nog aan een aantal punten verbeterd moet worden voor het een definitieve product zou kunnen worden. Deze zullen op een later tijdstip verwerkt worden en niet meer verwerkt worden in deze scriptie.
31
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
8. conclusie “Hoe kunnen verkoop- en product informatie en bedrijfskosten uitgewisseld worden met Google Analytics om zo voor Magento webshop ondernemers inzichtelijk weer te geven wat het rendement is van verschillende marketing kanalen op een dashboard?” Rendement wordt berekent met de volgende formule: Vergelijking 14: standaard rendement formule
rendement =
Winst ∗ 100 Omzet
Door de winst van een marketing kanaal en order informatie op te halen kunnen de directe kosten per marketing kanaal worden vastgesteld. Uit het onderzoek is gebleken dat om de winst te berekenen een eigen definitie van kosten vastgesteld moest worden. Er is door het onderzoeksteam besloten een onderscheid te maken tussen directe en indirecte kosten. Door deze gegevens in de rendement formule te zetten en de resultaten per marketing kanaal op een dashboard weer te geven wordt voor de Magento webshop ondernemer inzichtelijk wat het rendement van deze kanalen is.
32
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
9. evaluatie In de hoofd-en deelvragen is weinig terug te vinden over het rendement en de berekening ervan. Gedurende het onderzoek is gebleken dat deze berekening wel degelijk belangrijk is om onder andere een prototype te kunnen ontwikkelen. Een groot gedeelte van de tijd is in deze berekening en de toepassingen ervan gaan zitten.
9.1. discussie Net als ieder onderzoek ander heeft ook dit onderzoek zijn zwaktes. Deze worden hieronder beschreven: Rendement formule Het onderzoeksteam heeft besloten om de indirecte kosten te berekenen door een even groot gedeelte van de indirecte kosten (huurpand/magazijn in dit geval) te nemen als omzet van het totaal is gegeneerd. Deze zou ook door de grootte van het product bepaald kunnen worden, informatie die in Magento ingevoerd kan worden en waarmee ook de huur van het pand of magazijn kan worden bepaald. Deze gegevens zouden ook verkregen kunnen worden wanneer er toegang is tot een geavanceerd boekhoudprogramma of Warehouse Management Systeem. De indirecte kosten zijn nu een inschatting van de vaste lasten, wat ook concreter kan worden berekend. De keuze is samen met esser-emmerik gemaakt, omdat het niet de bedoeling was dat een Warehouse Management Systeem, boekhoud systeem of geavanceerd Business Intelligence Tool gerealiseerd zou worden. Rendement versus Return on investment Het onderzoeksteam is van mening dat ROI meer waarden biedt dan het rendement. Dit omdat er naar ons inzicht beter gestuurd kan worden op basis van ROI wat over de kosten berekend wordt in plaats van over de omzet. Het is voor een ondernemer altijd belangrijk om zoveel mogelijk winst over de kosten te maken. Marketing kanaal kosten In dit onderzoek is gekozen om de marketing kanaal kosten bij directe kosten op te tellen van een product en deze alleen aan de verkochte producten toe te kennen. Dit zou ook kunnen door het aantal kliks van een marketing kanaal te registeren per product pagina van de webshop en op basis daarvan de marketing kanaal kosten toe te kennen. Het onderzoeksteam is zich bewust van deze methode maar omdat, de constatering van deze methode pas aan het einde van het onderzoek kwam is deze niet toegepast in de rendement formule. Daarbij zou er niet genoeg tijd zijn om de methode te onderzoeken en te valideren.
33
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
10. bijlagen
34
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
bijlage google analytics
35
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Google Analytics
Auteurs
Dylan Drost IJsbrand van Prattenburg Hugo Zonderland
Opdrachtgever
esser-emmerik
36
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Document
Google Analytics
Opdrachtgever
esser-emmerik Herman Versteegt
[email protected] Wouter van Emmerik
[email protected] Peter Esser
[email protected] Gijsbrecht van Amstelstraat 104 1214 BB Hilversum
Onder supervisie
MSc. Alex Jongman Docent Hogeschool Utrecht
[email protected]
Hogeschool
Hogeschool Utrecht (HU) Nijenoord 1 3552 AS Utrecht
Opleiding
Information Engineering
Studiejaar
2012 - 2013
Auteurs
IJsbrand van Prattenburg
[email protected]
1581037
Dylan Drost
[email protected]
1570024
Hugo Zonderland
[email protected]
1585078
37
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inhoudsopgave INLEIDING
39
1. WAT IS GOOGLE ANALYTICS
40
1.1. TRACEREN 1.2. RAPORTAGES 1.3. ACCOUNTS, PROPERTY EN PROFILE
41 42 43
2. DE GOOGLE ANALYTICS API
44
2.1. DE VERZAMELINGS-API 2.2. DE BEHEER-API 2.3. DE API VOOR HET EXPORTEREN VAN GEGEVENS (V3) 2.3.1. EIGEN VARIABELEN 2.4. HOE WORDT DE GOOGLE ANALYTICS API GEBRUIKT
44 44 44 45 45
3. GOOGLE ANALYTICS RAPPORTAGES
46
4. GOOGLE ANALYTICS INSTELLEN
47
4.1. DOELEN STELLEN 4.2. AANGEPASTE GEGEVENSBRON INSTELLEN 4.3. WIDGETS INSTELLEN
47 48 51
5. CONCLUSIE
52
6. BIJLAGEN
53
6.1. BRONNENLIJST
53
38
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inleiding Google Analytics is een website statistiek product. Het product word aangeboden door Google en is geheel gratis. Google Analytics biedt website eigenaren een tool die gegevens over zijn bezoekers kan verzamelen en overzichtelijk kan weergeven in diverse rapporten en grafieken.
39
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1. wat is google analytics Google Analytics is een gratis dienst ontwikkeld door Google om voor website eigenaren statistiek te verzamelen over bezoekersstromen, gebruikte landingspagina’s, gebruikte internet browsers, besturingssystemen en verkeers bronnen. Met deze statistieken kan de website eigenaar zijn website verbeteren. Wanneer Google Analytics gebruikt wordt om statistiek te verzamelen over een webshop, zou Google Analytics met juist instellen kunnen aangeven hoeveel de webshop omzet, wat de conversie is en wat het meest verkochte product is. Webshop maken vaak gebruik van verschillende marketing kanalen zoals Google Adwords, Social Media en prijsvergelijkings sites. Met Google Analytics kan dan de omzet en conversie van de specifieke marketing kanalen gemeten worden en hier uit een rendement en of een return of investment berekend worden. Google Analytics maakt gebruik van onder andere grafieken en pie-charts om cijfers inzichtelijk weer te geven. Deze grafieken en pie-charts worden weergegeven op een dashboard. De website eigenaar kan ook targets instellen welke via de grafieken kunnen aangeven of deze targets behaald zijn. Ook kan over een bepaald tijdsbestek een analyse gemaakt worden.
40
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1.1. traceren Om statistiek te verzamelen moet het mogelijk zijn voor de software van Google Analytics om de gebruiker te kunnen volgen over de website, de gebruiker moet getraceerd kunnen worden . Dit gebeurd door op elke pagina die de website/webshop serveert een zogenoemde tracking script te plaatsen. Deze tracking scripts zijn in Javascript geprogrammeerd. Naast het tracking script heeft de website ook een unieke code die aangemaakt dient te worden in Google Analytics, deze code dient om de site te identificeren tegenover Google Analytics. Elke keer dat een pagina geladen wordt in de browser van een gebruiker wordt het tracking script uitgevoerd en de verzamelde gegevens naar de servers van Google Analytics verstuurd. Google Analytics krijg al deze gegevens binnen en verwerkt deze naar statistische gegevens die een website eigenaar kan gebruiken om zijn site te verbeteren.
Met het tracking script kunnen veel dingen bij gehouden worden over het gebruik van de website. Dingen die bij gehouden kunnen worden zijn Campaign Tracking, Ecommerce Tracking, Event Tracking, Multiple Domains, Search Engines, Social 41
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Interaction, User Timings, Experiments en Custom Variables. Voor een uitgebreide uitleg over alle functies kunt u “Tracking Code Overview.” Google Developers lezen. Voor het onderzoek wat wij doen zijn de functies Campaign Tracking en Ecommerce Tracking van belang. Met Campaign Tracking kan bijgehouden worden van welke Marketing kanaal een bezoeker op de webshop binnen komt. Ecommerce Tracking houd de transactie gegevens bij van een succesvolle bestelling, van elke bestelling wat de prijs/verzendkost/btw is en welke producten er op de bestelling besteld zijn.
1.2. raportages Om de verzamelde gegevens inzichtelijk weer te geven maakt Google Analytics gebruikt van een rapportage systeem. Op de verschillende pagina’s van Google Analytics worden de diverse gegevens verwerkt in onder andere grafieken en piecharts. Zo is bijvoorbeeld in te zien op welke zoekwoorden, ingevoerd in de Google zoekmachine, de website gevonden word, welke pagina’s de bezoekers bezoeken, welk besturingssysteem de gebruiker op zijn computer heeft staan, welke internet browser de gebruiker gebruikt, welke internet service provider (ISP) de gebruiker heeft, welke resolutie het beeldscherm van de computer van de bezoeker heeft, uit welke plaats van welke provincie van welk land van welke werelddeel de bezoeker komt.
42
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1.3. accounts, property en profile Een Google Analytics account word opgedeeld in 3 lagen, deze staan in volgorde van hoog naar diep hieronder opgesomd. 1. Google Analytics account. 2. Google Analytics web-property. 3. Google Analytics profile Het Google Analytics account is de account waarop 1 of meerdere sites of apps getraceerd mee kunnen worden. Een web-property word gebruikt om 1 domeinnaam of App te traceren. Op een Google Analytics account kunnen meerdere web-properties bestaan. Voor een webshop kunnen meerdere shops op 1 Google Analytics account getraceerd worden. Op 1 web-property zitten 1 of meerdere Google Analytics profiles. Op Google Analytics profile staat alle data die van de site of App die verzameld is, daarnaast kunnen er op een Google Analytics profile doelen en filters aan gemaakt worden. hier door kunnen alle gegevens wat overzichtelijker gemaakt worden door bijvoorbeeld apart Google Analytics profile aan te maken voor alleen het verkeer wat van mobile gebruikers komt.
43
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2. de google analytics api Wanneer Google Analytics voor de gebruiker niet genoeg functionaliteit biedt of de gegevens in Google Analytics gecombineerd moeten worden met andere gegevens, heeft Google Analytics een Application programming interface dit zal verder geschreven worden als API. Via deze API stelt Google Analytics gegevens en/of functionaliteit beschikbaar voor externe partijen. Deze API is onderverdeeld in een 3tal sub-API’s: ● De verzamelings-API ● De beheer-API ● De API voor het exporteren van gegevens Deze sub-API’s worden hieronder verder toegelicht.
2.1. de verzamelings-api De verzamelings-API biedt meer mogelijkheden dan de standaard implementatie van Google Analytics. De website beheerder kan deze API gebruiken in het tracking script om bijvoorbeeld de aankopen op zijn webshop bij te houden. Hierin kan bijvoorbeeld aangegeven worden welke Sales Order het is en welke producten op de Sales Order verkocht zijn en wat de prijs daar van is. Dit wordt bijgehouden in Google Analytics en hier kunnen rapportage van gemaakt worden. Deze API wordt niet gebruikt om gegevens uit op te vragen, enkel om gegevens te ontvangen en verwerken. Deze API kan alleen gebruikt worden om de statistieken voor een website bij te houden.
2.2. de beheer-api De Google Analytics beheer-API kan gebruikt worden om account- en profiel gegevens van Google Analytics te beheren. Deze wordt aangeboden in de vorm van Google Data-API-feeds. Met de API kunnen specifieke sets met gebruiker profielen worden opgehaald. Daarnaast kan de API gebruikt worden om rapportage gegevens te verkrijgen.
2.3. de api voor het exporteren van gegevens (v3) De Exporteer API is gemaakt om gegevens in Google Analytics te exporteren naar bijvoorbeeld een business intelligence tool waar de Google Analytics gegevens met andere gegevens uit een ERP- of CRM systeem gekoppeld worden. Met deze nieuwe gegevens kunnen rapportages gemaakt worden die nieuwe inzichten kunnen geven. Ook kan met deze API rapportage opgevraagd worden uit Google Analytics.
44
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2.3.1. eigen variabelen De Core Reporting API v3 bied, met een gratis account, toegang tot het kunnen ophalen van maximaal 5 variabelen. Elke variabele bestaat uit een naam en een waarde. Wanneer je een Premium account hebt krijg je toegang tot maximaal 50 variabelen. “Custom Variables - Dimensions & Metrics Reference. In http://developers.google.com”
2.4. hoe wordt de google analytics api gebruikt Zoals hier boven genoemd stelt Google een API beschikbaar voor Google Analytics. Om hier gebruik van te maken moet er op de Google API Console een project aan gemaakt worden en API key gegenereerd worden voor Google Analytics. Naast de Google Analytics API stelt Google ook een client library beschikbaar om te communiceren met de Google Analytics API. Deze client library is beschikbaar in Java, Javascript, PHP, Python, .net, Objective-C, Ruby, Dart en GO. Deze library verzorgt de communicatie met Google en verpakt de API calls in makkelijk aanroepbare methoden in de programmeer- of scripttaal naar keuze. Op de Google API Console moet er een project aangemaakt worden voor het gebruik van de API. Google heeft al hun API’s beschikbaar gemaakt op 1 console pagina waar het gebruik van de API aan uit gezet kan worden. Op de API Console moet ook een API key gegenereerd worden waarmee het software pakket of te wel de cliënt zich kan identificeren op de Google Analytics API. Met de cliënt library word gezorgd dat er op 1 uniforme manier gecommuniceerd wordt met de API. Na het instellen van de API key voor de Google Analytics zal de cliënt library er voor zorgen dat de cliënt geautoriseerd wordt op de API en calls kan aanroepen. Alle Google API’s retourneren hun data in JSON format. De cliënt library zorgt ervoor dat de JSON data die geretourneerd word door Google Analytics geparsed word en als object beschikbaar word binnen die cliënt.
45
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
3. google analytics rapportages Google Analytics biedt de mogelijkheid om rapportages te maken. Deze rapportages kunnen bijvoorbeeld inzichtelijk maken hoe de conversie is van een bepaald marketing kanaal. Dit soort rapportages zijn standaard niet beschikbaar in Google Analytics. Het onderzoek gaat om het berekenen van rendement van een marketing kanaal. Hierbij is het belangrijk dat de totale omzet van een marketing kanaal berekend kan worden. esser-emmerik heeft op dit moment Google Analytics zo ingesteld dat het mogelijk is om te zien van welk marketing kanaal een bezoeker (en koper) komt die een order geplaatst heeft. Met dat gegeven kan ook berekend worden hoeveel omzet dit marketing kanaal genereert, welke nodig is voor het berekenen van het rendement. Om het rendement te kunnen berekenen zijn er een aantal gegevens nodig die in Google Analytics moeten komen te staan. Deze gegevens zijn: ● Welke marketing kanalen er zijn/gebruikt worden. ● Omzet van alle orders per marketing kanaal. ○ Aantal orders afkomstig per marketing kanaal. + ○ Omzet per order afkomstig per marketing kanaal. ● Omzet van alle producten per marketing kanaal. ○ Aantal producten afkomstig per marketing kanaal. + ○ Omzet product afkomstig per marketing kanaal. ● Gemiddelde CPC van elk marketing kanaal. ● De vasten lasten + behandelingskosten
46
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4. google analytics instellen Voordat Google Analytics gebruikt kan worden om allerlei gegevens bij te houden en rapportages te tonen moet Google Analytics ingesteld worden. Gezien Google Analytics gebruikt word door allerlei typen webapplicaties is hier het instellen van Google Analytics afgebakend tot het instellen van Google Analytics voor een (Magento) e-commerce ondernemer. Dit omdat het onderzoek zich ook toespitst op de (Magento) e-commerce ondernemer zullen wij dat voor dit gedeelte van Google Analytics ook doen.
4.1. doelen stellen Met Google Analytics kunnen ook doelen vast gesteld worden, dit kunnen er maximaal 25 per profiel zijn. Er kunnen doelen opgesteld worden voor conversie dat die X percentage moet worden of minimum omzet per bestelling. Dit word dan in de rapportages weergegeven worden. Deze doelen zouden dan als Key Performance Indicator gebruikt kunnen worden. De ondernemer kan hier dan zijn ondernemen op sturen. “Doelen instellen en bewerken. in Google Analytics”
47
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4.2. aangepaste gegevensbron instellen Google Analytics biedt de mogelijkheid om aangepaste gegevens bron in te stellen. Met deze aangepaste gegevens bron maakt het mogelijk om zelf kost per click informatie naar Google Analytics te sturen. Hiermee kan Google Analytics, gecombineerd met de verzamelde verkoop informatie, ROI (return on investment) en RPC (revenue per click) uit rekenen. 1. Open het dashboard van het Google Analytics account. 2. Klik in de rechterboven hoek op ‘Beheerder’.
3. Klik op het tabblad ‘Aangepaste definities’.
48
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4. Klik op de knop ‘Nieuwe aangepaste gegevensbron’.
4.1. Vul een naam voor de gegevens bron in. 4.2. Vul een omschrijving voor de gegevens bron in. 4.3. Selecteer kosten. 4.4. Kies op welke ingestelde profielen de gegevens bron actief is. 4.5. Klik op opslaan.
De data die ingevoerd is, is gebruikt voor het voorbeeld. Wanneer deze velden zijn ingevuld en de benodigde gegevens bronnen zijn aangemaakt staat er achter de gegevens bron een UID. Deze is nodig voor het uploaden van eigen data.
49
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
50
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4.3. widgets instellen Google Analytics kan verzamelde gegevens weergeven op een dashboard met diverse Widgets. Deze Widgets kunnen zelf ingesteld worden, er word opgegeven hoe de data weergegeven moet worden. Moet dat in een tabel/pie-chart/bar-chart etc. Hier mee kan overzichtelijke pagina gemaakt worden waar in een aantal gegevens in 1 oog opslag gezien worden.
51
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
5. conclusie Google Analytics is een web statistiek tool om statistisch gegevens over bezoekers en gebruik van een website bij te houden. Dit is een hele versimpelde we uit leg over wat Google Analytics is. Theoretisch is nu achterhaalt hoe Google Analytics ingesteld moet worden om samen te werken met een Magento webshop en hoe de API zou moeten aan geroepen worden. Dit zal door middel van een aantal proof of concepts die in dit onderzoek gemaakt gaan worden getest worden.
52
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
6. bijlagen 6.1. bronnenlijst undefined.(Oktober 29, 2012). Tracking Code Overview. In Google Developers. Geraadpleegd April 9, 2013 from https://developers.google.com/analytics/resources/concepts/gaConceptsTrackingO verview undefined. (undefined). Ontwikkel uw vaardigheden op het gebied van analyse. In Google Analytics. Geraadpleegd April 8, 2013 from http://www.google.com/intl/nl_ALL/analytics/learn/index.html undefined. (April 5, 2013). De Google Analytics-API’s. In Google Analytics. Geraadpleegd April 9, 2013 from https://support.google.com/analytics/answer/1008004?hl=nl undefined. (Februari 11, 2013). Accounts, gebruikers, property's en profielen. in Google Analytics. Geraadpleegd April 9, 2013 from https://support.google.com/analytics/answer/1009618?hl=nl undefined. (Januari 30, 2013). Custom Variables - Dimensions & Metrics Reference. In http://developers.google.com. Geraadpleegd April 9, 2013 from https://developers.google.com/analytics/devguides/reporting/core/dimsmets/custo mvars undefined. (Januari 15, 2013). Dimensions & Metrics Reference. In http://developers.google.com. Geraadpleegd April 9, 2013 from https://developers.google.com/analytics/devguides/reporting/core/dimsmets undefined. (Maart 21, 2013). Doelen instellen en bewerken. in Google Analytics. Geraadpleegd April 9, 2013 from http://support.google.com/analytics/answer/1032415?hl=nl undefined. (Januari 2, 2013). Cost Data Upload - Feature Reference. in Google Analytics. Geraadpleegd April 9, 2013 from https://developers.google.com/analytics/devguides/platform/features/cost-dataimport
53
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
undefined. (undefined). Analysehulpprogramma's. in Google Analytics. Geraadpleegd April 9, 2013 from http://www.google.com/intl/nl/analytics/features/analysistools.html
54
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
bijlage magento
55
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Magento
Auteurs
Dylan Drost IJsbrand van Prattenburg Hugo Zonderland
Opdrachtgever
esser-emmerik
56
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Document
Magento
Opdrachtgever
esser-emmerik Herman Versteegt
[email protected] Wouter van Emmerik
[email protected] Peter Esser
[email protected] Gijsbrecht van Amstelstraat 104 1214 BB Hilversum
Onder supervisie
MSc. Alex Jongman Docent Hogeschool Utrecht
[email protected]
Hogeschool
Hogeschool Utrecht (HU) Nijenoord 1 3552 AS Utrecht
Opleiding
Information Engineering
Studiejaar
2012 - 2013
Auteurs
IJsbrand van Prattenburg
[email protected]
1581037
Dylan Drost
[email protected]
1570024
Hugo Zonderland
[email protected]
1585078
57
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inhoudsopgave 1. WAT IS MAGENTO
59
2. DE KRACHT VAN MAGENTO
61
3. VERZEND- EN TRANSACTIEKOSTEN
62
3.1. VERZEND- EN TRANSACTIEKOSTEN INSTELLINGEN
62
4. COMMUNICATIE MET MAGENTO
67
4.1. HET XML-RPC PROTOCOL 4.2. HET SOAP PROTOCOL 4.3. DE REST API OVER HTTP 4.4. COMMUNICATIE VAN PRODUCT ATTRIBUTEN 4.5. HOE WORDEN DE SOAP EN REST API’S GEBRUIKT
68 68 69 69 70
5. MAGENTO MODULES
72
5.2. MAGENTO MODULES DOWNLOADEN EN INSTALLEREN 5.3. EEN MAGENTO MODULE ONTWIKKELEN
72 74
6. GOOGLE API PLUGIN
75
7. BIJLAGEN
76
7.1. BRONNENLIJST
76
58
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1. wat is magento Magento is een Content Management Systeem (CMS) voor e-Commerce. Magento is op de markt gebracht in maart 2008. Het bedrijf is nu volledig eigendom van eBay. Er zijn ongeveer 150,000 bedrijven die momenteel gebruik maken van Magento, verspreid over de hele wereld. Uit cijfers hieronder te zien blijkt dat Magento in 2011, 3 jaar na de lancering, wereldwijd marktleider is zoals.
* Percentage van de 1 miljoen websites die onderzocht zijn in 2011.
59
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
In 2012 is Magento nog steeds marktleider zoals hieronder te zien:
Magento biedt verschillende pakketten voor verschillende doeleinden, deze pakketten zijn:
Pakket
Omschrijving
Magento Community Edition
Gratis open source versie van Magento
Magento Go
Gehoste oplossing voor het MKB
Magento Enterprise Edition
Versie waarbij support word gegeven door Magento
* Tabel met de verschillende Magento pakketten
Magento is geheel geprogrammeerd op het Zend Framework (PHP). Magento kan geïntegreerd worden met andere software door de API te gebruiken. Voor ontwikkelaars is op de website van Magento de documentatie te vinden.
60
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2. de kracht van magento Magento is een groot en flexibel e-Commerce pakket gelanceerd in 2008. Simpel gezegd is het Magento een pakket waarmee je een webshop kan runnen. Het belangrijkste punt waardoor Magento marktleider is geworden is omdat er ondersteuning voor Multishops inzit. Dit betekend dat er met één Magento installatie meerdere web shops gedraaid kunnen worden. Dit zorgt ervoor dat het het onderhouden van de producten en het technisch onderhouden van de web shop veel minder tijd kost. Hieronder staan een aantal voor- en nadelen van Magento. Voordelen: • De Magento Marketplace bied honderden verschillende soorten plugins • Zoekmachine vriendelijke URL structuur. • Multi-store functionaliteit. Nadelen: • Door dat Magento gebruik maakt van grote XML trees waarop het pakket querries uitvoerd word Magento (wanneer caching uitstaat) langzaam. • Onderhoud kost veel tijd, er kunnen onverwachts problemen optreden waar veel tijd in gaat zitten om het op te lossen. • Zoekmachine van Mangento is matig aangezien het vaak niet vind wat je zoekt. • Magento is gericht op de Amerikaanse markt, hierdoor ontstaan problemen zoals BTW-regels.
61
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
3. verzend- en transactiekosten Verzend- en transactiekosten zijn kosten die optreden bij het verzenden en betalen van een bestelling. De kosten worden door de verkoper of de koper betaald. Verzendkosten Kosten die gemaakt worden voor het verzenden van een bestelling. De bestelling word via een postorder bedrijf verzonden naar de klant, hier zitten kosten aan verbonden. Transactiekosten Kosten die gemaakt worden voor het verrichten van een betaling. Betalingen worden verricht via een payment provider. De payment provider werkt op abonnement basis, een percentage van het totaal bedrag en/of een vast bedrag per transactie.
3.1. verzend- en transactiekosten instellingen Voor de webshop eigenaar is het mogelijk om verzend- en transactie kosten niet in rekening voor de klant te brengen. Dit kan zijn onder bepaalde omstandigheden zoals: • Het totaal bedrag van de order is meer dan een opgegeven minimum • Het is een speciale actie, bijvoorbeeld gratis verzending Het is mogelijk om de verzendkosten in te voeren in Magento middels 3 opties. De verzendkosten kunnen worden bepaald aan de hand van de volgende opties: • Gewicht en bestemming • Prijs en bestemming • Product aantal en bestemming Hierdoor heeft de e-commerce ondernemer genoeg opties om in te stellen hoe een pakket verzonden word. De bestemming zal altijd onderdeel uitmaken van de prijs. Ook de grootte van het pakket, welke bepaald word door gewicht en het aantal producten, maken deel uit van de prijs.
62
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Hieronder staat een voorbeeld van deze instellingen:
Hier worden eerst de globale instellingen gemaakt. Hier word ingesteld voor welke landen de verzending mogelijk is, waarop de prijs van het pakket word afgestemd.
63
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Wanneer deze word opgeslagen word gevraagd een .csv bestand te downloaden:
64
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Daarna het .csv bestand te voorzien van gegevens:
En weer in Magento te importeren. Hierna zijn de verzendkosten voor de gehele webshop geldig. De kosten in het voorbeeld worden berekend op basis van het orderbedrag. In het .csv bestand is af te lezen dat bij een orderbedrag van $100,- of meer de verzendkosten $10,- zijn.
65
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Waar zijn deze instellingen voor nodig? Het is belangrijk om te weten of de e-commerce ondernemer deze kosten aan de klant in rekening brengt omdat deze bedragen wel in het totale order bedrag worden opgenomen. Google Analytics leest uiteindelijk het totale order bedrag uit en neemt dit bedrag mee in diverse berekeningen. Wanneer de e-commerce ondernemer deze kosten voor eigen rekening neemt dan zijn dit extra kosten voor de e-commerce ondernemer. Zie onderstaande voorbeeld: In Webshop ‘De Espresso expert’ verkoopt men diverse espresso producten, van koffiebonen tot complete machines. Een van de espresso machines kost €1000,-. Piet-Jan gaat een van deze machines kopen en rekent met zijn creditcard af. De ecommerce ondernemer maakt gebruik van DocData, waarbij de transactie kosten van een creditcard betaling 2,7% order bedrag + €0,20 zijn. De espresso machine kan niet middels een standaard pakket worden verzonden omdat het apparaat 11kg weegt, een een pakket van 10 - 30kg kost bij TNT post €12,40. Dat maakt de kosten voor de verkoper: €27 + €0,20 + €12,40 = €39,60. Wanneer we gaan kijken naar deze kosten is dit 3,9% van de omzet op dit product, de overige (vaste)lasten moeten hier nog vanaf eveneens de btw. Wanneer deze kosten wel aan de klant worden doorberekend dan kunnen deze tegen elkaar worden weggestreept en hoeft van de omzet alleen nog de btw en de vaste lasten aftrokken te worden.
66
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4. communicatie met magento Om Magento te kunnen koppelen met externe CRM- of voorraad systeem biedt een API waarmee gecommuniceerd kan worden. De communicatie met Magento kan op 5 verschillende API’s: • XML-RPC API • REST API • SOAP V1 API • SOAP V2 API • SOAP V2 API WS-I Compliance mode XML-RPC staat voor Remote Procedure Call waarbij de gegevens kunnen worden overgebracht in XML formaat. Deze communicatie kan alleen over HTTP. REST staat voor REpresentational State Trasfer waarbij gegevens overgebracht worden over HTTP en in verschillende formaten verstuurd kan worden zoals XML, JSON, YAML etc. SOAP staat voor Object Access Protocol welke een opvolger is van XML-RPC. Magento kent 3 varianten om het SOAP protocol toe te passen, dit zijn de v1, de v2 en de v2 WS-I Compliance mode. De v2 API werkt vanaf Magento v1.3 en hoger. De WSII Complaince versie werkt vanaf Magento v1.6 en hoger.
67
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
In de tabel hieronder staan de eigenschappen van de protocollen kort opgesomd.
XML-RPC
SOAP
REST
XML-Remote Procedure Call
Simple Object Access Protocol
REpresentational State Trasfer
Protocol
Protocol
Architectuur Stijl
HTTP
HTTP, SMTP, FTP
HTTP
-
Langzaam, moeilijk schaalbaar, caching niet mogelijk
Performance, schaalbaarheid, caching
Niet gebruiken
Gebruiken wanneer REST tekort schiet.
Altijd gebruiken
4.1. het xml-rpc protocol XML-RPC staat voor Remote Procedure Call met de data ge-codeerd als XML. Een Remote Procedure Call is een inter-proces communicatie proces wat een computer programma in staat stelt om een subroutine of procedure uit te voeren in een andere adres ruimte dan waar het computer programma staat zonder dat deze specifieke interactie uit geprogrammeerd hoeft te worden. Gewoonlijk betekend dit dat een computer programma iets uit kan laten voeren op een server zonder dat dit specifiek is uit geprogrammeerd op de server. Hierbij word gebruik gemaakt van XML waarin de data of instructie word ge-gecodeerd.
4.2. het soap protocol SOAP is een verder ontwikkelde uitwerking van XML-RPC. SOAP biedt ondersteuning voor Web Services Description Language ook wel een WSDL file genoemd. WSDL is een XML gebaseerd interface description language (IDL) die gebruikt word om de functionaliteit van een web service te beschrijven. Een WSDL beschrijving van een web service bied een machine leesbare beschrijving die programmeertaal onafhankelijk aan geeft welke parameters verwacht worden om de methode aan te roepen en welke data structuur de methode terug geeft. Magento biedt 2 versies van SOAP aan SOAP v1 en SOAP v2. Vanaf Magento versie 1.6 is SOAP v2 WS-I compliant. WS-I staat voor Web Services Interoperability en zijn guidelines voor hoe web services onderling gegevens uitwisselen.
68
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4.3. de rest api over http Magento is ook bereikbaar via een REST API over HTTP. Een REST API staat voor Representational State Transfer, dit staat voor representatieve weergave van een bepaalde staat van een resource aan de hand van de gebruikte methode. Een resource wordt altijd opgeroepen via een HTTP request op een URL. In het geval van Magento zou een lijst met artikelen op geroepen worden door een GET request te doen op http://magento-webshop-url/api/rest/products. De server zal dan een lijst met producten uit de betreffende Magento shop als response geven. De response die de server terug geeft kan in JSON of XML format zijn, dit hangt af wat in de header is opgegeven. Voor uitgebreide uitleg over REST Architecture zie Fielding, R.T. (2000).
4.4. communicatie van product attributen Producten in Magento worden gespecificeerd met attributen. Deze attributen kunnen door een of meerdere methode aan te roepen via de API opgehaald worden. Er zit een verschil tussen de Magento API methoden en de Core Magento API die in Magento zitten. De API onderscheid zich door functionaliteiten te bieden die via externe systemen aangeroepen kunnen worden, terwijl de Magento methoden alleen benaderbaar zijn vanuit Magento zelf. Voor meer informatie over de methoden die Magento bied zie onderstaande links: http://docs.magentocommerce.com/Mage_Catalog/Mage_Catalog_Model_Abstract.h tml http://docs.magentocommerce.com/Mage_Catalog/Mage_Catalog_Model_Product.ht ml#sec-vars http://docs.magentocommerce.com/Varien/index.html Bij onderstaande link is de lijst te vinden met alle attributen die de Magento API kan ophalen uit Magento: http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_prod uct.info.html
69
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4.5. hoe worden de soap en rest api’s gebruikt In de voorgaande hoofdstukken is uitgelegd welke API mogelijkheden Magento biedt en wat die verschillenden API zijn. Hier worden enkele voorbeelden gegeven hoe met de API’s gewerkt word. Er is gekozen om dit in PHP te doen omdat esser-emmerik met PHP werkt en Magento ook in PHP geschreven is. Hier onder staan een tweetal voorbeelden gegeven van de SOAP/XML API’s en van de REST API. In het voorbeeld word een lijst opgehaald met producten uit een webshop die door Magento beheerd worden. Voorbeeld: het ophalen van een lijst met webwinkels die beheerd worden met Magento met de SOAP v1 API. $client = new SoapClient('http://magentohost/api/soap/?wsdl'); $session = $client->login('apiUser', 'apiKey'); $result = $client->call($session, 'catalog_product.list'); var_dump ($result);
Voor de SOAP v2 API werkt dit eigenlijk hetzelfde, alleen hier word naar de v2 versie gevraagd in de URL /api/v2_soap/ en de methode die aangeroepen word is niet de generieke call methode maar een specifieke methode catalogProductList. $proxy = new SoapClient('http://magentohost/api/v2_soap/?wsdl'); $sessionId = $proxy->login('apiUser', 'apiKey'); $result = $proxy->catalogProductList($sessionId); var_dump($result);
Voor de SOAP v2 API die WS-I complaint is $proxy = new SoapClient('http://magentohost/api/v2_soap/?wsdl'); $sessionId = $proxy->login((object)array('username' => 'apiUser', 'apiKey' => 'apiKey')); $result = $proxy->catalogProductList((object)array('sessionId' => $sessionId->result)); var_dump($result->result);
Het verschil tussen de SOAP v1 en v2 API is dat bij v1 een generieke methode word aangeroepen call(session object, ‘methode name bijv. store.list’); en bij SOAP v2 is er een specifieke methode storeList(session object);. Tevens ondersteunt SOAP v2 geen multiCall requests, hierdoor moet er voor elke methode een request uit gevoerd worden waardoor de langzamer kan werken als de SOAP v1 API. Voor uitgebreide uitleg of alle beschikbare methodes zie (Magento API SOAP, Magento) in de bronnenlijst.
70
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Het resultaat is een lijst met producten die in een array staan. array 0 => array 'product_id' => string '1' 'sku' => string 'n2610' 'name' => string 'Nokia 2610 Phone' 'set' => string '4' 'type' => string 'simple' 'category_ids' => array 0 => string '4' 1 => array 'product_id' => string '2' 'sku' => string 'b8100' 'name' => string 'BlackBerry 8100 Pearl' 'set' => string '4' 'type' => string 'simple' 'category_ids' => array 0 => string '4'
Deze array is direct beschikbaar in PHP code nadat deze methode is aangeroepen. Voorbeeld: REST API Om gebruikt te maken van de Rest API moet een gebruiker met Oauth geautoriseerde worden. Nadat er geautoriseerd is kunnen er requests uit gevoerd worden op URLs, om bijvoorbeeld een lijst met sales orders te krijgen moet er GET request gestuurd worden naar http://magentohost/api/rest/orders. dit zal standaard een XML responds geven met een lijst van sales orders. Voor uitgebreide uitleg of all beschikbare methodes zie (Magento API REST, Magento) in de bronnenlijst.
71
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
5. magento modules Magento is een CMS met uitgebreide mogelijkheden. Maar als die mogelijkheden niet aansluiten bij de wensen van de ondernemer kunnen er heel eenvoudig Modules geïnstalleerd worden van Magento Connect. Dit is het platform wat Magento aanbied om Modules op te distribueren, momenteel zijn daar rond de 10.000+ plugins op te vinden en rond de 1000 themes. Een Magento Module is een plugin die extra functionaliteiten toevoegen aan huidige functionaliteiten van de bestaande Magento installatie. Bijvoorbeeld de module ‘MageMonkey - MailChimp Integration by ebizmarts’ deze is te vinden in Magento Connect. Dit is een plugin die integratie mogelijk maakt met MailChimp. Mailchimp is een email marketing tool. Het is ook mogelijk dat er geen module te vinden is die een specifieke functie bied die nodig is. Er kan dan een plugin ontwikkeld worden door bijvoorbeeld een extern internet bureau of freelance ontwikkelaar.
5.2. magento modules downloaden en installeren Het eerste wat moet gebeuren is een plugin downloaden van bijvoorbeeld de Magento Connect. (Magento eCommerce, Magento) Vervolgens moet de module in de webshop geïnstalleerd worden. Om dit te realiseren zijn 2 mogelijkheden. De eerste mogelijkheid is om de plugin via de Magento ConnectManager te uploaden en installeren. Dit is de makkelijkste manier, maar alleen mogelijk wanneer de plugin gedownload is van het Magento Connect platform. Hieronder is te zien waar dit in de Magento admin te vinden is.
72
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Schermafbeelding van Magento ConnectManager
In de Magento ConnectManager kan de extension key, die bij de plugin hoort, ingevuld worden zodat het systeem de plugin kan uploaden en installeren. De tweede mogelijkheid om een plugin te installeren is minder eenvoudig. Hiervoor moet de plugin gedownload worden en vervolgens handmatig via bijvoorbeeld FTP of SSH op de server/live omgeving geplaatst worden1.
1
Zie voor uitleg handmatige installatie: http://www.aschroder.com/2010/05/installing-a-magentoextension-manually-via-ftp-or-ssh
73
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
5.3. een magento module ontwikkelen Een Magento Module ontwikkelen vereist kennis van het Zend Framework omdat Magento boven op het Zend Framework is ontwikkeld. Magento moet zelf ook gezien worden als framework er kan niet zomaar php bestanden aan toegevoegd worden en daar wat code inschrijven en die op een magento webpagina oproepen. Modules moeten gedefinieerd worden in XML en er word een bepaalde mappen structuur aan gehouden. De mappen structuur is “app/code” waar 3 mappen in zitten core, community en local. In de core map zitten alle core modules die magento standaard heeft, in de community map zijn 3rd party modules die geinstalleerd zijn via de Magento Package manager van de admin control panel. De map local word gebruikt als er zelf plugins geschreven dienen te worden. Als er een maatwerk Module gemaakt word dan wordt deze map gebruikt. in deze map de nieuwe map gemaakt die de Namespace is van de module. Een Namespace is unieke naam die de maker van een module gebruikt dit om alles georganiseerd te houden. In de Namespace map word nog een map gemaakt waar de naam van de module word gebruikt. Hier door krijg je de mappen stuctruur “app/code/Namespace/naam_module” dit waar de bestand van de module komen. Daarnaast maakt Magento gebruik van XML bestanden waarin alles gedefinieerd word.
74
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
6. google api plugin Magento heeft in samenwerking met Google een plugin ontwikkeld waarmee Magento gegevens naar Google Analytics kan sturen. Deze plugin zit standaard in Magento en om te activeren hoeft alleen een vink gezet te worden en de Google Analytics account code ingevoerd te worden.
Het activeren van de Google API plugin in Magento
Deze plugin plaatst op elke pagina van de Magento webshop een Google Analytics tracking code. De tracking code verzameld gegevens over de pagina en de bezoekers. Deze gegevens worden vervolgens naar Google Analytics verstuurd. In het document ‘Google Analytics’ is meer informatie te vinden over de tracking code.
75
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
7. bijlagen 7.1. bronnenlijst undefined. (undefined). SOAP. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/SOAP. undefined. (undefined). Web Services Description Language. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/Web_Services_Description_Language. undefined. (undefined). XML. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/XML. undefined. (undefined). Remote procedure call. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/Remote_procedure_call. undefined. (undefined). XML-RPC. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/XML-RPC. undefined. (undefined). Web service interoperability. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/Web_Services_Interoperability. undefined. (undefined). Magento API SOAP. In Magento. Raadgepleegd Maart 25, 2013, van http://www.magentocommerce.com/api/soap/introduction.html. undefined. (undefined). Representational state transfer. In Wikipedia. Raadgepleegd April 4, 2013, van https://en.wikipedia.org/wiki/Representational_state_transfer. undefined. (undefined). Magento API REST. In Magento. Raadgepleegd April 4, 2013, van http://www.magentocommerce.com/api/rest/introduction.html. Magento Marketing. (September 13, 2012). Survey Says: Magento Gets a 3rd Slice of Pie. In Magento - Blog. Geraadpleegd April 4, 2013, from http://www.magentocommerce.com/blog/comments/survey-says-magento-gets-athird-slice-of-pie/. Bondarenko, A. (September 11, 2012). Magento got a Third Slice of Pie. In aheadWorks Magento Blog. Geraadpleegd April 4, 2013, from http://blog.aheadworks.com/2012/09/magento-got-a-third-slice-of-pie/.
76
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Bondarenko, A. (Februari 9, 2012). Magento Covers the Quarter of the e-Commerce Market. In aheadWorks Magento Blog. Geraadpleegd April 4, 2013, from http://blog.aheadworks.com/2012/02/magento-covers-the-quarter-of-the-ecommerce-market/ undefined. (undefined). About Us. In Magento - About Us. Geraadpleegd Maart 20, 2013, from http://www.magentocommerce.com/company/ undefined. (undefined). Find the Best magento Solution for Your Business. In Magento - Compare Product. Geraadpleegd Maart 20, 2013, from http://www.magentocommerce.com/product/overviewcompare?utm_source=magentocommerce&utm_medium=topnav Magento. (undefined). Search Engine Optimization. In Magento. Geraadpleegd Maart 25,2013, from http://www.magentocommerce.com/product/features/search-engineoptimization/view. Eichelberger, K. (undefined). Magento SEO Development. In MAGENTO-BLOG. Geraadpleegd Maart 25,2013, from http://www.blueacorn.com/magentoblog/magento-seo-development/. Tomas ,G . (undefined). Tutorial: Multi-Site, Multi-Domain Setup. In Magento Knowledge Base. Geraadpleegd Maart 25, 2013, from http://www.magentocommerce.com/knowledge-base/entry/tutorial-multi-sitemulti-domain-setup undefined. (Juni 25, 2012). De nadelen van Magento. In De nadelen van Magento. Geraadpleegd Maart 25, 2013, from http://blog.webwinkelkeur.nl/de-nadelen-vanmagento/
77
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Schönebeck ,S. (October 28, 2009). Why is Magento so slow?. In Stackoverflow. Geraadpleegd Maart 20, 2013, from http://stackoverflow.com/questions/1639213/why-is-magento-so-slow Undefined . (Februari 20, 2012). Magento user guide: Why is Magento so slow?. In Eyemagine. Geraadpleegd Maart 20,2013, from http://www.eyemaginetech.com/blog/magento/magento-user-guide-slow-magento/ Undefined. (undefined). E-Commerce Comparison Table. In Template-Help.com. Geraadpleegd April 4, 2013, from http://info.template-help.com/help/e-commerce-comparison-table/ Undefined. (Maart 11, 2012). Payment Method Charge. In Magento connect. Geraadpleegd April 4, 2013, from http://www.magentocommerce.com/magento-connect/payment-method-charge4050.html Undefined. (undefined). Vergelijk tarieven voor iDEAL, achteraf betalen en creditcard. In over Online Betalen. Geraadpleegd April 4, 2013, from http://overonlinebetalen.nl/vergelijk-tarieven-ideal/ Undefined. (undefined). Pakket. In postnl. Geraadpleegd April 4, 2013, from http://www.postnl.nl/zakelijk/pakket/pakket/ Undefined. (undefined). How Do I Set Up Table Rate Shipping?. In Magento Knowledge Base. Geraadpleegd April 4, 2013, from http://www.magentocommerce.com/knowledge-base/entry/how-do-i-set-up-tablerate-shipping van de Adel, S (2010). Google Analytics en Magento. In onetomarket. Geraadpleegd April 4, 2013, from http://www.onetomarket.nl/blog/online-marketing/googleanalytics-en-magento.html?accepted Fielding, R.T. (2000). Architectural Styles and the Design of Network-based Software Architectures. In UNIVERSITY OF CALIFORNIA, IRVINE. Geraadpleegd April 4, 2013, from http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm McDermott, J. (2012). The Basics Of Creating A Magento Module. In smashingmagazine. Geraadpleegd Mei 14, 2013, from http://coding.smashingmagazine.com/2012/03/01/basics-creating-magentomodule/ 78
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Undefined. (undefined). Magento Connect. In Magento. Geraadpleegd Mei 14, 2013, from http://www.magentocommerce.com/magento-connect/
79
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
bijlage onderzoek rendement
80
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Rendement onderzoek
Auteurs
Dylan Drost IJsbrand van Prattenburg Hugo Zonderland
Opdrachtgever
esser-emmerik
81
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Document
Rendement onderzoek
Opdrachtgever
esser-emmerik Herman Versteegt
[email protected] Wouter van Emmerik
[email protected] Peter Esser
[email protected] Gijsbrecht van Amstelstraat 104 1214 BB Hilversum
Onder supervisie
MSc. Alex Jongman Docent Hogeschool Utrecht
[email protected]
Hogeschool
Hogeschool Utrecht (HU) Nijenoord 1 3552 AS Utrecht
Opleiding
Information Engineering
Studiejaar
2012 - 2013
Auteurs
IJsbrand van Prattenburg
[email protected]
1581037
Dylan Drost
[email protected]
1570024
Hugo Zonderland
[email protected]
1585078
82
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inhoudsopgave INLEIDING
84
1. RENDEMENT
85
2. FORMULE RENDEMENT BEREKENING
86
2.1. ONDERZOEK ONDERZOEKSTEAM 2.2. BRAINSTORM SESSIE ESSER-EMMERIK 2.3. CONCLUSIE
86 89 92
4. BIJLAGEN
94
BIJLAGE WAT IS RENDEMENT BIJLAGE RENDEMENT OUD BIJLAGE ONDERZOEK TEAM BIJLAGE GOOGLE ANALYTICS SLAAT NIET ALLE BESTELLINGEN OP 4.1. BRONNEN
94 94 95 97 99
83
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inleiding Dit document gaat over het onderzoek naar rendement. Er is middels brainstorm sessies met esser-emmerik duidelijkheid gekregen over de verschillende formules die gebruikt worden in het onderzoek. In het onderdeel ‘Brainstorm sessie esser-emmerik’ meer te vinden over wat uit deze sessies is gekomen. De formules die in dit document tot stand komen gaan ook toegepast worden in het proof of concept en het eindproduct. Het onderzoek naar deze formules is te vinden in het onderdeel ‘Onderzoek onderzoeksteam’. Zo zou rendement gebruikt kunnen worden in de natuurkunde om te geven hoe effectief de omzetting van energie naar een beweging is, of in de financiële sector hoeveel geld spaargeld heeft opgebracht. Hier is bij beiden het rendement berekend, alleen zijn de gebruikte eenheden anders.
84
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1. rendement Het onderzoek richt zich op het rendement van een product aangeboden via een marketing kanaal en een marketing kanaal op zich. Hierbij worden de volgende eenheden gebruikt; geld en afzet. Onder geld vallen de volgende onderdelen; omzet, kosten en winst. De afzet word gebruikt om het aantal verkochte goederen en/of diensten (producten) aan te geven. Het rendement kent een positieve en negatieve waarde. Deze geeft aan of het product aangeboden op een marketing kanaal de verkoper winst oplevert of niet. Wanneer dit winst oplevert is dit een positief rendement, het marketing kanaal rendeert. Wanneer de kosten hoger zijn dan de omzet die eruit voortvloeit is het marketing kanaal voor het product niet rendabel, het marketing kanaal rendeert niet. Het rendement word niet alleen op product niveau vastgesteld maar ook op marketing kanaal niveau en totaal van alle gebruikte marketing kanalen. Gezien een product en een marketing kanaal verantwoordelijk zijn voor een percentage van de totale omzet, kan dit zelfde percentage gebruikt worden bij het toekennen van de kosten. Het rendement wordt op verschillenden lagen gebruikt, per product en per marketing kanaal. Het rendement kan ook over een bepaalde periode (dag, week, maand) berekend worden. Dit leidt tot de volgende twee definities Rendement en Return on investment. Definitie Rendement Rendement is de verhouding van de winst ten aanzien van de omzet in procenten. Definitie Return on investment Return of investment is de verhouding van de winst ten aanzien van de kosten in procenten.
85
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2. formule rendement berekening Nu de definities zijn vast gelegd moet de formule waarmee rendement en ROI (return on investment) berekend kan worden vast gesteld. Deze formule gaat samen met de definitie van het rendement de rode draad voeren in het onderzoek en de uiteindelijke implementatie van de oplossing.
2.1. onderzoek onderzoeksteam Er is door het onderzoeksteam onderzoek gedaan naar het berekenen van rendement. Dit onderzoek berust voornamelijk op een brainstorm sessie met het onderzoeksteam. Hier kwam het team tot de conclusie dat om het rendement te berekenen de volgende kosten variabelen nodig zijn: ● Inkoopprijs product ● Vaste lasten (personeel, huur gebouw, diensten, etc) ● Kosten marketing kanaal De vaste lasten zijn de maandelijks terugkomende kosten, hoe nauwkeuriger de kosten opgegeven worden hoe gedetailleerder de berekening word. Kosten marketing kanaal zijn totale kosten die het marketing kanaal in rekening brengt aan de webshop ondernemer gedurende een maand. Dit kan in de vorm van het berekenen van een bedrag via een kosten per klik systeem of in abonnement vorm waarbij een vast bedrag per maand per product word afgerekend. Daarnaast kan het rendement op een tweetal verschillende niveau’s in euro’s of procenten berekend worden: ● Per marketing kanaal ● Per product per marketing kanaal Hierdoor kan worden bepaald of een marketing kanaal aan zich rendeert of dat een bepaald product per marketing kanaal rendeert. Zo zou een marketing kanaal 50% rendement kunnen opleveren, maar op het zelfde marketing kanaal kan één product 20% rendement oplevert. Een gegeven waar de ondernemer zijn onderneming kan sturen. Door al deze variabelen met elkaar te mengen en deze te testen aan de hand van diverse test waarde is het team tot de volgende formule gekomen voor het berekenen van rendement en ROI per marketing kanaal:
86
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Rendement per marketing kanaal ● omzet = totale omzet van één marketing kanaal. ● kosten = directe kosten en indirecte kosten naar ratio die bepaald word door het aandeel van de omzet die genereerd is door het marketing kanaal ten opzichten van de totale omzet van de webshops en kosten marketing kanaal. ● r = rendement in procenten.
r = 100 ∙ (
omzet − kosten ) omzet
ROI per marketing kanaal ● omzet = totale omzet van één marketing kanaal. ● kosten = directe kosten en indirecte kosten naar ratio die bepaald word door het aandeel van de omzet die genereerd is door het marketing kanaal ten opzichten van de totale omzet van de webshops en kosten marketing kanaal. ● r = ROI in procenten.
r = 100 ∙ (
omzet − kosten ) kosten
Omzet Omzet bestaat uit alle kosten (bijvoorbeeld verkoopprijs, BTW, verzendkosten en administratieve kosten) die aan de klant in rekening zijn gebracht. Kosten Kosten bestaan uit: ● Indirecte kosten bijvoorbeeld: ○ Gas, water, licht ○ Personeel ○ Huur pand ● Directe kosten ○ Verzendkosten ○ BTW ○ Inkoopkosten ● Marketing kanaal kosten bijvoorbeeld ○ Klikosten ○ Abbonements kosten Verhouding De verhouding van de omzet van het marketing kanaal word berekend door van alle orders die via het marketing kanaal zijn verkregen, de order prijs op te tellen en vervolgens te delen door de totale omzet van de webshop. Deze verhouding moet ook toegepast worden op de vaste lasten, omdat de omzet afkomstig van het marketing kanaal niet verantwoordelijk is voor de volledige vaste lasten.
87
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Het marketing kanaal is verantwoordelijk voor een deel van de de totale omzet die gegenereerd is in een bepaalde periode. Dus de berekening moet ook op exact dat deel van de kosten berekend worden. Anders zou er bij meerdere marketings kanalen maar bij 1 marketing kanaal kosten berekend worden en bij de overige geen kosten zijn. Dit zou dan een scheef beeld geven van het rendement. Zo kan bijvoorbeeld niet de volledige €10,000 vaste lasten worden toegekend aan alleen Beslist.nl, welke verantwoordelijk is voor slechts 10% van de omzet. Aan beslist.nl wordt dan €1000,- toegekend. Kosten marketing kanaal Kosten marketing kanaal zijn de kosten van het marketing kanaal. Zo kan het adverteren via een marketing kanaal belast kunnen worden per klik, voor een ander worden kosten per product in rekening gebracht. Inkoopkosten De inkoopkosten zijn alle inkoopkosten van de alleen de producten die zijn verkocht op het marketing kanaal. per product per marketingkanaal Naast het rendement van het marketing kanaal wil de opdrachtgever het rendement weten op product basis per marketing kanaal. Hiervoor kan eerder genoemde formule als basis gebruikt worden. Het verschil met deze nieuwe formule is dat de kosten van het marketing kanaal eerst gedeeld moeten worden met het aantal verkochte producten afkomstig van het marketing kanaal. De formule die dan tot stand komt is: Rendement per product per marketingkanaal ● omzet= totale omzet van één product op het marketing kanaal. ● kosten= de som van: verhouding van de indirecte kosten naar ratio van het aantal verkochte producten, directen kosten. kosten marketing kanaal naar ratio van aantal verkochten producten op het marketing kanaal. ● r= rendement in procenten.
r = 100 ∙ (
omzet − kosten ) omzet
88
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
ROI per product per marketingkanaal ● omzet= totale omzet van 1 product op het marketing kanaal. ● kosten= de som van: verhouding van de indirecte kosten naar ratio van het aantal verkochte producten, directen kosten. kosten marketing kanaal naar ratio van aantal verkochten producten op het marketing kanaal. ● r= rendement in procenten.
r = 100 ∙ (
omzet − kosten ) kosten
Hierbij word wederom uit gegaan dat door het toekennen van een gedeelte van de omzet een gelijk gedeelte van de andere kosten posten kunnen worden toegekend aan de berekening. Bij deze berekening word alleen kosten van het marketing kanaal gedeeld over het aantal producten die aangeboden worden op het marketing kanaal of het aantal producten die verkocht zijn via het marketing kanaal. Dit is nog onduidelijk.
2.2. brainstorm sessie esser-emmerik Uit voorgaande onderdeel is een formule tot stand gekomen die is voorgedragen aan de opdrachtgever. Samen met de opdrachtgever is gebrainstormd of deze formule juist is en of dat deze formule aangepast moet worden. Na een brainstorm sessie met esser-emmerik is naar voor gekomen dat de formule eenvoudiger benaderd moet worden. esser-emmerik wilt alleen het netto resultaat van het rendement zien in euro’s. In de vorige formules zijn niet alle kosten posten meegenomen die een webshop ondernemer heeft. Zo zijn de behandelingskosten (verzenden en betalen) van de bestelling, het BTW bedrag en de klik kosten niet meegenomen in de berekening. Deze kosten posten hebben een aanzienlijke invloed op het rendement van een marketing kanaal of het rendement van een product per marketing kanaal. Er zijn uit de brainstormsessie 4 niveau’s van nauwkeurigheid om het rendement berekenen gekomen. Elk niveau voegt meerdere kosten posten toe aan de formule. Er word altijd uit gegaan van formule 4, mocht deze niet geheel ingevuld kunnen worden of missen er waarden dan moet er 1 stap terug gedaan worden. Hoe hoger het niveau van de formule, hoe nauwkeuriger de rendement berekening is. Deze 4 niveau’s zijn: Nauwkeurigheid niveau 1
n = omzet − kosten kanaal Bij deze formule zijn er geen kosten posten ingevuld en zijn alleen de kosten van het marketing kanaal beschikbaar. Nauwkeurigheid niveau 2
n = omzet − inkoop − btw − kosten kanaal 89
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Deze formule houdt ook rekening met het BTW bedrag die de klant heeft afgerekend bij aankoop. Dit bedrag moet de webshop ondernemer afdragen aan de belastingdienst daarom is het een extra kosten post. Nauwkeurigheid niveau 3
n = omzet − inkoop − btw − behandelingskosten − kosten kanaal Hierbij worden ook de behandelingskosten van de omzet afgetrokken. De behandelingskosten zijn alle kosten die nodig zijn om de bestelling te betalen en te verzenden. Nauwkeurigheid niveau 4
n = omzet − inkoop − btw – behandelingskosten − kosten kanaal − vaste lasten Hierbij worden alle vaste lasten (huur pand, verzekeringen, personeel etc) mee genomen in de berekening. Deze formule geeft het meest nauwkeurige rendement. Omzet Hierbij word om het rendement te bereken van een marketing kanaal de omzet wederom bepaald door (net als in het vorige hoofdstuk), alle orders die via het marketing kanaal zijn verkregen, de order prijs op te tellen en vervolgens te delen door de totale omzet van de webshop. Met deze verhouding kunnen ook de vaste lasten worden toegekend. Behandelingskosten Wanneer naar de behandelingskosten gekeken wordt en het berekenen van het rendement per product per marketing kanaal, moeten de behandelingskosten gedeeld worden door het aantal producten op de order, wanneer dit er meer zijn dan 1. Dit omdat de kosten van een bestelling goedkoper zijn wanneer er meerdere producten besteld worden. Zo is het voor een webshop ondernemer duurder 10 pakketten met 1 product te verzenden dan het is om 1 pakket met 10 pakketten te verzenden. Onder behandelingskosten vallen: ● Transactie kosten ● Verpakkingskosten ○ Materiaal ○ Personeel ● Verzendkosten
90
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
BTW Het BTW bedrag kan per product per order verschillen. Dit omdat in Nederland meerdere tarieven gebruikt worden. In Nederland zijn 3 belasting tarieven:
Belasting tarief
Omschrijving
0%
- Goederen die geëxporteerd worden - Goederen die nog niet zijn ingevoerd - Goederen die geleverd worden aan of in een btw-entrepot - De levering en de bevoorrading van schepen en vliegtuigen - Visvangst - Accijnsgoederen
6%
Het verlaagde btw-tarief. Het geldt onder meer voor etenswaren en sommige diensten, hieronder: - Voedingsmiddelen - Water - Agrarische goederen - Geneesmiddelen en hulpmiddelen - Kunst, verzamelvoorwerpen en antiek (sinds 1 juli 2012) - Boeken en periodieken - Gas en minerale olie voor de tuinbouw
21%
Alle overige diensten en producten
Het BTW bedrag moet worden afgedragen aan de Belastingdienst. Het BTW bedrag moet nog van de omzet afgehaald worden voordat om het netto resultaat te berekenen. Vaste lasten Onder de vaste lasten vallen allen kosten die het bedrijf per maand heeft die direct van toepassing op de producten die verkocht worden. Zo is de huur van het pand waar de producten worden opgeslagen een directe kostenpost voor het product. Daarnaast zijn er personeelskosten waarvan een gedeelte berekend mag worden over de omzet. Als laatste valt onder de vaste lasten alle verzekeringen die betaald moeten worden. Onder vaste lasten vallen: ● Hosting ● Internetbureau ● Huur pand ● Verzekeringen ● Gas/Water/Licht ● Personeel
91
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2.3. conclusie Nu gaat het onderzoek niet om het berekenen van het netto resultaat. Maar het netto resultaat is wel nodig om het rendement te kunnen berekenen. Zoals in de definitie is vast gesteld: “Rendement is de verhouding van de winst ten aanzien van de omzet in procenten.”. Door nauwkeurigsheids niveau 4 te gebruiken kan de winst bepaald worden van een marketing kanaal of een product per marketing kanaal. Randvoorwaarde is wel dat omzet van een product of marketing kanaal bepaald kan worden. Het netto resultaat anzich is een waarde waar de webshop ondernemer kan sturen. Alles boven €0,00 is een positief resultaat. Een percentage daarentegen zou voor de ondernemer niet veel waarde kunnen hebben. Wat betekend 20% rendement? Is dat €0,50 of €10.000,-? Door deze 2 waarden met elkaar te combineren kan de ondernemer zelf invullen wat bijvoorbeeld 20% rendement met een netto resultaat van €300,- betekend. Het rendement word als volgt vast gesteld: 1. De omzet vast stellen De omzet van het product of marketing kanaal vast stellen. 1.a. Voor de omzet van het marketing kanaal worden alle orders nummers die via een marketing kanaal zijn verkocht uit Google Analytics opgehaald en worden de order bedragen bij elkaar opgeteld:
o = o + orderbedrag 1.b. Voor de omzet van een product per marketing kanaal worden uit alle orders uit een bepaald marketing kanaal op gehaald uit Google Analytics en gekeken op een bepaald product op order voorkomt. Daarna word de prijs van het product, de behandelingskosten gedeeld door het aantal producten op de order bij elkaar opgeteld.
o = (productprijs ∗ aantalorder) + (behandelingskosten / aantalproductenorder) 2. Verhouding vaststellen De verhouding van de omzet van het marketing kanaal of het product per marketing kanaal worden vast gesteld tot de totale omzet moet worden vast gesteld
v = omzet / totale omzet 3. Gedeelte van de kosten toekennen Met de verhouding word een zelfde gedeelte van de kosten toegekend aan het marketing kanaal of het product per marketing kanaal.
k = kosten ∗ (verhouding / 100) 92
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4. Netto resultaat vaststellen Het netto resultaat van het marketing kanaal of het product per marketing kanaal moet worden vast gesteld. 4.a. Het netto resultaat van een marketing kanaal word vast gesteld door volgens nauwkeurigheids niveau 4 alle kosten van de berekening af te trekken. Hierbij moet per order het BTW bedrag, de behandelings kosten, de kosten van het marketing kanaal, de inkoopkosten en de vaste lasten worden opgeteld. De kosten posten
btw = btw + btwbedrag order b = b + behandelingskosten order m = costperclick ∗ clicks i = totale inkoopkosten ∗ (verhouding / 100) Kosten
k = btw + b + m + i + vastelasten Netto resultaat
n = o − k Rendement
r = n / o
93
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4. bijlagen bijlage wat is rendement “Het rendement geeft aan wat de opbrengst van een financieel product is of zal zijn. Je kunt het rendement berekenen door je opbrengst te delen door de inleg. Als je het rendement weet en je weet welk eindbedrag je wanneer wilt hebben, dan kun je berekenen hoeveel je elke maand moet inleggen.” Bij het rendement moet je je het volgende afvragen: ● ● ● ● ● ●
wat is het rendement? is het een bruto of netto rendement? wat is het rendement als alle kosten en premies er af zijn? hoe groot is de kans dat ik dit rendement ga halen? past dit rendement bij mijn situaties? welk rendement wordt er uiteindelijk gebruikt om het eindbedrag te berekenen?
Bron: http://www.afm.nl/nl/consumenten/producten/belegging/kennis/rendementen.aspx Auteur: onbekend jaar publicatie: onbekend Betrouwbaarheid(1-10): http://www.afm.nl/nl/consumenten/producten/belegging/kennis/rendementen.aspx
bijlage rendement oud in algemene zin is de opbrengst van iets in verhouding tot de kosten. Men zou het over het rendement van een maaltijd, of van een vakantie kunnen hebben. In de meeste gevallen wordt er echter een meetbare grootheid mee bedoeld: bij een verwarmingsketel, bijvoorbeeld, wordt met rendement gedoeld op de mate waarin de energie die erin gebruikt wordt ook wordt omgezet in bruikbare warmte. Rendement is vaak dimensieloos en wordt dan meestal in een percentage uitgedrukt. Het heeft ook vaak de dimensie 1/tijd, en wordt dan meestal in een percentage per jaar uitgedrukt. Bron: http://nl.wikipedia.org/wiki/Rendement Auteur: onbekend jaar publicatie: onbekend Betrouwbaarheid(1-10): 2 ren·de·ment (het; o; meervoud: rendementen) 94
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1 opbrengst; winst 2 nuttig effect van iets Bron: http://vandale.nl/opzoeken?pattern=rendement&lang=nn Auteur: onbekend jaar publicatie: onbekend Betrouwbaarheid(1-10): 5
bijlage onderzoek team Rendement per product per marketingkanaal
o = omzet gegenereerd in verhouding van totaal van webshop vl = vastelasten van het product in verhouding van totaal webshop in = totale inkoopprijs van het product in verhouding van totaal van webshop mk = kosten marketing kanaal x = verkochte producten marketingkanaal of aangeboden producten marketingkanaal r = rendement in procenten
o − (vl + in + mk) r= 1% (mk/x) Rendement per marketingkanaal
o = omzet in verhouding van totaal van webshop vl = vastelasten in verhouding van totaal webshop in = totale inkoopprijs in verhouding van totaal van webshop mk = kosten marketing kanaal r = rendement in procenten
o − (vl + in + mk) r= 1% mk
95
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Formules uitgaande van bedragen Uitgaande van percentage omzet marketingkanaal op totale omzet. 1. omzet - kosten kanaal = netto resultaat 2. omzet - inkoop - btw - kosten kanaal = netto resultaat 3. omzet - inkoop - btw - behandelings kosten - kosten kanaal = netto resultaat 4. omzet - inkoop - btw - behandelings kosten - kosten kanaal - vaste lasten = netto resultaat Omzet = verkochte producten * prijs, verzendkosten?, kosten betalingsmogelijkheden? Inkoop = inkoopprijs ex btw Behandelingskosten = verzendkosten, kosten betalingsmogelijkheden Vaste lasten = personeel, huur, verzekeringen, hosting, internet bureau, koffie, auto’s e.d Kosten kanaal = click kosten, abonnementskosten Netto resultaat = omzet - alle kosten Totaal overzicht (dag/week/maand/jaar) 1. Overzicht alle kanalen 2. Overzicht specifiek kanaal 3. Overzicht product kanaal 4. Overzicht product bestelling
96
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
bijlage google analytics slaat niet alle bestellingen op Tijdens de brainstorm sessie met esser-emmerik (20-03-2013) over het bereken van rendement, is naar boven gekomen dat niet alle bestellingen in Google Analytics komen te staan. Dit zou in 10% tot 20% van de gevallen voorkomen. Dit probleem heeft een 2-aantal oorzaken: 1. De manier waarop Google Analytics de tracking toepast. De klant word niet op
de betaalpagina van de paymentprovider gevolgd. Hij word pas weer door Google Analytics getraceerd op de afrondingspagina van de webshop. 2. De klant word niet automatisch terug gestuurd van de betaalpagina van de paymentprovider. Hieronder een omschrijving van het probleem Als een bestelling betaald wordt, word de klant naar de website van de paymentprovider doorgestuurd. Daar rond de klant de betaling af en wanneer de betaling voltooid is, word de klant middels een knop of link verzocht terug te keren naar de webshop. Op de afrondingspagina registreert Google Analytics dat de klant het bedrag ook echt voltooid heeft en word de bestelling opgeslagen in Google Analytics en gebruikt voor diverse berekeningen. Zie onderstaande diagram.
Wanneer de klant in het betaalproces het scherm sluit na voltooiing van de betaling of naar een andere webpagina navigeert, komt de klant niet op de afrondingspagina van de webshop. De bestelling word dan niet door Google Analytics opgeslagen en missen er een aantal gegevens die cruciaal zijn voor het doen van diverse berekeningen.
97
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Waarom is dit een probleem? Wanneer de bestelling niet kan worden opgenomen in Google Analytics zijn de berekeningen die Google Analytics doet (bijvoorbeeld conversie en cost per click) minder accuraat; er missen gegevens. Gezien deze gegevens ook nodig zijn voor het berekenen van rendement is het cruciaal dat deze gegevens wel in Google Analytics terrecht komen. Mogelijke oplossing Gezien het niet mogelijk is het betaal proces van de paymentprovider aan te passen, moet er worden gekeken naar een oplossing voor probleem 2. De paymentprovider heeft zelf een plugin voor Magento geleverd waarmee een aantal instellingen gedaan kunnen worden in het betaal proces. Een hiervan is dat na voltooiing van de betaling de klant, zonder dat hij op een knop of link moet klikken, word doorgestuurd naar de afrondingspagina van de webshop. Deze staat op dit moment zo ingesteld dat de klant niet geautomatiseerd word doorgestuurd, hij moet dus zelf doorklikken. Door deze instelling te veranderen kan dit probleem verholpen worden.
Helaas kan op dit moment niet gezegd worden of het aanpassen van deze instelling het probleem daadwerkelijk verhelpt. Het kan nog steeds gebeuren dat de klant het scherm wegklikt of naar een andere website navigeert. Daarom moeten de bestellingen die vermeld staan in Google Analytics vergeleken worden met de bestellingen die vermeld staan in Magento. De bestellingen die in Magento voorkomen en niet terug te vinden zijn in Google Analytics komen terecht onder een categorie overige. Over deze categorie kan geen exact rendement berekend worden omdat hiervan de kosten onbekend zijn. Wel kunnen van deze inkomsten een gelijk percentage van de globale kosten aftrokken worden. Hierdoor heeft de ondernemer wel een inschatting van het rendementt. 98
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Om te meten of het veranderen van de instelling het probleem oplost moet gemeten worden of er geen verschillen meer zitten in de bestellingen in Magento en Google Analytics. Wanneer deze over een langere periode gelijk zijn kan ervan uitgegaan worden dan het probleem geheel is opgelost. Tot die tijd moet het mogelijk zijn om deze verschillen af te vangen en te verwerken in de categorie overige.
4.1. bronnen Henk89 en Rogier, (Mei 16, 2011) Rendement berekenen. In wetenschapsforum, geraadpleegd op 13-03-2013 http://www.wetenschapsforum.nl/index.php/topic/138584-rendement-berekenen/ Geenen, K, (Augustus 19, 2009), Webwinkels opgelet, GA is niet volmaakt!. In karelgeenen, geraadpleegd op 13-03-2013 http://www.karelgeenen.nl/17/webwinkels-opgelet-ga-is-niet-volmaakt/
Adel, van de S, (Oktober 19, 2010), Google Analytics en Magento. In Onetomarket, geraadpleegd op 13-03-2013 http://www.onetomarket.nl/blog/online-marketing/google-analytics-enmagento.html undefined, (undefined), Goederen en diensten met 21% btw. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/goederen_diensten_21_btw/ undefined, (undefined), Tarieven en vrijstellingen. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/ undefined, (undefined), Goederen met 0% btw. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/goederen_0_btw/ undefined, (undefined), Goederen met 6% btw. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/goederen_6_btw/
99
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
bijlage systeem keuze
100
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Systeemkeuze rapport
Auteurs
Dylan Drost IJsbrand van Prattenburg Hugo Zonderland
Opdrachtgever
esser-emmerik 101
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Document
Systeemkeuze rapport
Opdrachtgever
esser-emmerik Herman Versteegt
[email protected] Wouter van Emmerik
[email protected] Peter Esser
[email protected] Gijsbrecht van Amstelstraat 104 1214 BB Hilversum
Onder supervisie
MSc. Alex Jongman Docent Hogeschool Utrecht
[email protected]
Hogeschool
Hogeschool Utrecht (HU) Nijenoord 1 3552 AS Utrecht
Opleiding
Information Engineering
Studiejaar
2012 - 2013
Auteurs
IJsbrand van Prattenburg
[email protected]
1581037
Dylan Drost
[email protected]
1570024
Hugo Zonderland
[email protected]
1585078
102
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inhoudsopgave INLEIDING
104
1. OPTIES
105
1.1. OPTIE 1 | MAGENTO PLUGIN 1.2. OPTIE 2 | GOOGLE ANALYTICS 2.3. OPTIE 3 | EIGEN GEMAAKT SYSTEEM 1.4. OPTIE 4 | ZELFBOUW API DIE MAGENTO PLUGIN ALS UI GEBRUIKT 2.5. OPTIE 5 | COMBINATIE VAN GOOGLE SERVICES
105 107 108 110 111
2. CONCLUSIE
114
103
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inleiding Voordat duidelijk is wat de oplossing is voor het probleem van dit onderzoek moet in kaart worden gebracht wat de optie’s en de wensen van esser-emmerik zijn. Het rapport ‘Systeem keuze’ beschrijft hoe de oplossing van het probleem het beste gerealiseerd kan worden. Zo zou de oplossing tot dit probleem het programmeren van een plugin voor Magento, het toevoegen van meer rapportage mogelijkheden in Google Analytics, een losstaand systeem of een combinatie van alle vorige opties kunnen zijn. In het document worden de opties omschreven met een grafische toelichting en per optie een aantal voor- en nadelen beschreven.
104
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1. opties Voordat over gegaan kan worden tot het keuze van de uiteindelijke oplossing, moet in kaart worden gebracht wat de opties zijn. Met opties worden diverse mogelijke realisaties bedoeld. Zo zou een van de opties een plugin voor Magento kunnen zijn. De informatie die gebruikt is voor de opties staat verder uitgewerkt in de documenten ‘Magento’ en ‘Google Analytics’ en ‘Proof of concept’.
1.1. optie 1 | magento plugin
Het bedrijf bied voor zijn klanten Magento als CMS systeem aan. Hier kan de webshop ondernemer alle producten beheren die de webshop verkoopt. Ook kan de webshop ondernemer hier orders inzien. Door een plugin te realiseren zou de oplossing direct met Magento verweven kunnen worden. 105
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
De plugin word met een nog te bepalen bepaalde interval aangeroepen en spreekt daarbij de Google Analytics API aan. Daar worden gegevens over marketing kanalen en de orders per marketing kanaal opgevraagd. Deze gegevens worden terug gestuurd naar de plugin die het rendement berekend met de orders en overige kosten (behandelingskosten etc) die in Magento te vinden is. De plugin slaat de resultaten van de berekeningen op in de lokale database zodat er een rapportage over de gehele maand gemaakt kan worden. Wanneer de ondernemer het rendement wilt inzien kan hij een daar voor ingerichte webpagina binnen Magento bezoeken. Hierop staat het rendement per marketing kanaal en het rendement per product per marketing kanaal weergegeven. Deze webpagina maakt gebruikt van de plugin, deze haalt de gegevens op uit de database en geeft de data terug aan de webpagina die deze weer kan geven. Wanneer de ondernemer kosten wilt invoeren kan dit ook via de plugin. Op een andere pagina staat een formulier waar de ondernemer diverse kostenposten kan invullen die gebruikt worden voor de rendement berekening. Voordelen ● Alle technieken van Magento zijn beschikbaar omdat de plugin gebruik maakt an alle mogelijkheden die Magento biedt. ● De kosten van het systeem kunnen aan de klant door berekend worden. Het dataverkeer en de rekenkracht die gebruikt wordt kunnen aan de klant doorberekend worden. Nadelen ● Het kost extra tijd om allerlei orders uit te filteren, de order bedragen, BTW bedragen, verzendkosten over al deze orders te berekenen. Een intensieve taak die een aardige impact op de snelheid van het systeem kan hebben. Ook moet er een grote hoeveelheid data uit Google Analytics en Magento opgehaald worden. Het kan zijn dat met deze keuze extra kosten verbonden zijn. Het kost extra processortijd, bandbreedte en opslag om de gegevens op te halen, met elkaar te verrekenen en op te slaan. ● Er moet rekening gehouden worden met de diverse versies van de Magento installaties die de klanten van esser-emmerik hebben. De plugin moet over meerdere versies van Magento werken. ● Omdat esser-emmerik meerdere klanten heeft worden er ook meerdere plugins geïnstalleerd die per klant moet worden onderhouden.
106
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1.2. optie 2 | google analytics Binnen Google Analytics zijn er heel veel mogelijkheden van verzamelen en weergeven van statistische data. Er zijn ook veel mogelijkheden om over die statistische data rapportage te maken en weer te geven. esser-emmerik maakt gebruik van Google Analytics om diverse analyses te tonen over het gebruik van de website van de webshop ondernemer. Door een dashboard in Google Analytics te maken zijn alle gegevens voor handen. Wanneer de ondernemer gedetailleerde informatie/statistieken wilt zit hij al in het juiste systeem. Door zelf data te uploaden naar Google Analytics kan rapportage als cost per click worden berekend. Google Analytics kan alleen berekeningen maken met gegevens die te maken hebben de website bezoeker. Andere kosten, zoals die te maken hebben met bedrijfsvoering, kunnen niet in Google Analytics worden opgenomen. Om deze optie te kunnen testen is een proof of concept gemaakt waar in de bijlage meer over te vinden is. Conclusie uit deze proof of concept is dat het niet mogelijk is om alleen met Google Analytics een oplossing te bieden.
107
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2.3. optie 3 | eigen gemaakt systeem
Wanneer Magento en Google Analytics beiden niet de juiste oplossing blijken is eigen systeem een optie. Het systeem zou met de Magento- en Google Analytics API kunnen communiceren om zo data op te halen en deze met elkaar te combineren om zo het rendement te berekenen. Het systeem staat los van Magento en Google Analytics. Het systeem haalt diverse gegevens uit Magento op via de Magento API en de Google Analytics API. Deze gegevens gebruikt het systeem om de rendement berekeningen te doen. De resultaten van de rendement berekeningen worden opgeslagen in een lokale database waarmee de ondernemer rapportage kan maken.
108
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Voordelen ● Door zelf een systeem te maken heeft esser-emmerik volledig beheer over de interface en zijn de mogelijkheden onbeperkt. ● Door 1 centraal systeem te ontwikkelen hoeft geen plugin ontwikkeld worden die moet werken met diverse versies van Magento. ● Het is eenvoudig om meerdere eCommerce pakketten te gaan ondersteunen. Nadelen ● Het ophalen, combineren, analyseren en het berekenen van gegevens uit 2 systemen kost veel tijd. Daarbij is dit taak die veel rekenkracht kost om uit te voeren. Het filteren, analyseren en berekenen met deze gegevens kan ook langer duren. ● Het ontwikkelen, onderhouden en operationeel houden van een eigen systeem kost veel tijd en geld. ● Security aspecten moeten goed bekeken en getest worden. Het is niet wenselijk dat bedrijfs financiële gegevens toegankelijk zijn voor onbevoegden of dat het systeem makkelijk te hacken is.
109
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1.4. optie 4 | zelfbouw api die magento plugin als ui gebruikt
In de afbeelding hieronder is de visuele weergave van de informatiestroom die bij een Magento plugin die met de eigen ontwikkelde API communiceert en de Magento database van de klant. De Magento plugin roept de API aan die vervolgens data ophaalt uit Google Analytics en terugstuurt naar de Magento plugin. Deze informatie wordt vervolgens opgeslagen en weergegeven in Magento. De webshop ondernemer kan met zijn huidige account in de back-end van zijn Magento webshop inloggen en daar naar de plugin navigeren. Vervolgens ziet de ondernemer op zijn scherm alle statistieken die door de plugin zijn opgehaald.
110
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Voordelen ● Efficiënt kunnen updaten: Een voordeel is dat er 1 API is die alle klanten gebruiken/benaderen. Wanneer de API geupdate wordt is dat direct van toepassing op alle klanten. Nadelen ● Extra hosting kosten: de API op een hosting geplaatst moet worden wat extra kosten met zich meebrengt. ● Versie conflict: Wanneer de klanten verschillende versies van Magento gebruiken kan dit een conflict veroorzaken met de functionaliteit van de plugin. ● Onderhoud: Er is zowel onderhoud aan plugin nodig als aan de API.
2.5. optie 5 | combinatie van google services Google biedt vele verschillende services, deze services kunnen op verschillende manieren met elkaar gecombineerd worden. Zo kan een applicatie gerealiseerd worden door functies van verschillende services met elkaar te combineren. Met Google Forms kunnen formulieren aangemaakt worden. Door Google Forms te gebruiken kan er automatisch een Google Spreadsheet gegenereerd worden. Wanneer de ondernemer zijn kosten in een Google Form invult kan een spreadsheet gemaakt worden die op Google Drive komt te staan met de ingevulde informatie. Met Google App Script kan met de Google Script programmeertaal een script geschreven worden die het aangemaakt spreadsheet document uitleest en combineert met gegevens die worden opgehaald uit de Google Analytics API en de Magento API. Door de resultaten van de rendement berekeningen in Google Drive op te slaan kan een archief aangemaakt worden waar de ondernemer rapportages over kan maken die hij kan gebruiken om zijn organisatie te sturen. Wanneer de Magento webshop ondernemer zijn rendement in wil zien kan hij een webpagina bezoeken op Google Sites. Deze leest het aangemaakte spreadsheet document uit en vertaald de verzamelde gegevens naar een grafiek.
111
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
112
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Voordelen ● Lage ontwikkel, onderhoud en hosting kosten. Alle services worden afgenomen bij Google, welke gratis worden aangeboden. ● De ondernemers hebben al een Google account omdat de Magento webshops gebruik maken van Google Analytics. Deze hoeven zij niet nog extra aan te maken. Nadelen ● Ingewikkelde informatie structuur, hierdoor kan het moeilijk te doorgronden zijn waar een mogelijk probleem zit. ● De functionaliteiten van de gebruikte services kunnen aangepast worden waardoor de informatie structuur niet meer werkt. De updates die Google doorvoert op de gebruikte services moeten nauwlettend in de gaten houden. ● Ingewikkeld om per ondernemer op te zetten. Er moeten rechten op documenten ingesteld worden en de informatie structuur moet opgezet worden.
113
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2. conclusie Wanneer gekeken word naar de mogelijkheden die Google Analytics bied wordt snel duidelijk dat Google Analytics alleen gegevens verzameld over het bezoeker gedrag. Het invoeren van gegevens in Google Analytics is slechts beperkt, Google Analytics heeft de mogelijkheid om ‘vrije variabelen’ in te stellen. In de praktijk blijkt dat deze ‘vrije variabelen’ enkel te gebruiken zijn om analyses te doen met betrekking tot bezoeker gedrag. Ook bied Google Analytics de mogelijkheid om ‘aangepaste definities’ op te geven. Deze aangepaste definities worden gebruikt om zaken als CPC te berekenen. Uit onderzoek kwam naar voren dat het niet mogelijk is om bedrijfskosten in Google Analytics te zetten en Google Analytics hiermee te laten rekenen. Doordat het niet mogelijk is om Google Analytics berekeningen te laten doen met bedrijfsfinanciële gegevens is deze niet geschikt voor de systeem keuze. Het is niet zo dat Google Analytics niet meer gebruikt wordt, Google Analytics is de verzamelbak van allerlei gegevens die betrekking hebben op het bezoeker gedrag in de webshop. Hierin staat bijvoorbeeld welke orders via welke marketing kanaal verzameld zijn. Deze gegevens zijn nodig voor diverse berekeningen. Een eigen systeem bied de vrijheid om gegevens op te halen, te analyseren en daar berekeningen mee te doen. Door in een eigen systeem data uit Google Analytics en Magento te combineren is het mogelijk om vrijwel alles te berekenen. Gezien deze gegevens niet in Google Analytics kunnen worden weergegeven moeten deze in een ander systeem weergegeven worden. Als daarnaast gekeken word naar wat de opdrachtgever wil, makkelijk uitbreidbaar naar andere e-commerce pakketten, automatisch kosten marketing kanaal ophalen. Dan valt een plugin voor Magento af want die kan niet uitgebreid worden naar andere e-commerce pakketten. Dus zal een eigen systeem gecreëerd moeten worden. Met het eigen systeem kun je dan op 1 plek meerdere e-commerce pakketten ondersteunen. Het advies betreffende systeemkeuze: Een eigen systeem die data van Google Analytics en Magento ophaald en daar op de berekeningen uitvoert.
114
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
bijlage proof of concept
115
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Proof of Concept
Auteurs
Dylan Drost IJsbrand van Prattenburg Hugo Zonderland
Opdrachtgever
esser-emmerik
116
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Document
Proof of Concept
Opdrachtgever
esser-emmerik Herman Versteegt
[email protected] Wouter van Emmerik
[email protected] Peter Esser
[email protected] Gijsbrecht van Amstelstraat 104 1214 BB Hilversum
Onder supervisie
MSc. Alex Jongman Docent Hogeschool Utrecht
[email protected]
Hogeschool
Hogeschool Utrecht (HU) Nijenoord 1 3552 AS Utrecht
Opleiding
Information Engineering
Studiejaar
2012 - 2013
Auteurs
IJsbrand van Prattenburg
[email protected]
1581037
Dylan Drost
[email protected]
1570024
Hugo Zonderland
[email protected]
1585078
117
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inhoudsopgave INLEIDING
119
1. COST DATA UPLOAD IN GOOGLE ANALYTICS
120
1.1. DOELSTELLING 1.2. OPZET 1.3. VERWACHTING 1.4. UITVOERING 1.5. CONCLUSIE
120 120 120 120 121
2. REKENEN MET EIGEN DATA
122
2.1. OPZET 2.2. VERWACHTE UITKOMST 2.3. UITVOERING 2.4. CONCLUSIE
122 122 122 122
3. ORDER INFORMATIE OPHALEN
123
3.1. OPZET PROOF OF CONCEPT 3.2. VERWACHTE UITKOMST 3.3. UITKOMST 3.4. CONCLUSIE
123 124 125 125
4. COMMUNICATIE MET DE MAGENTO API
126
4.1. OPZET PROOF OF CONCEPT 4.2. VERWACHTE UITKOMST 4.3. UITKOMST 4.4. CONCLUSIE
126 127 127 127
5. RENDEMENT BEREKENEN
128
5.1. OPZET PROOF OF CONCEPT 5.2. VERWACHTE UITKOMST 5.3. UITKOMST 5.4. CONCLUSIE
128 128 129 129
6. CONCLUSIE
130
7. BIJLAGEN
131
BIJLAGE MAGENTO INSTALLATIE
131
118
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
inleiding Om goede keuze te maken omtrent de implementatie en de systeem keuze zullen er technische mogelijkheden getest worden. Dit zal plaatsvinden in de vorm van een aantal proof of concepts deze zullen in dit document beschreven worden. Alle proof of concepts die in dit document behandeld worden maken gebruik van gegevens uit Magento. Hiervoor is een test omgeving2 van magento opgezet en gevuld met test data om een echte webshop te simuleren. De proof of concepts zijn allemaal geprogrammeerd met behulp van Javascript en/of PHP. Enig verstand hiervan is vereist om de code van de proof of concepts te kunnen analyseren en te begrijpen.
2
Test omgeving Magento: http://magento.presteren.nu/
119
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1. cost data upload in google analytics In Google Analytics kan door gebruik te maken van de API eigen gegevens omtrent kosten geüpload en verwerkt worden.
1.1. doelstelling Met deze proof of concept moet aangetoond worden dat het mogelijk is om van verschillende custom marketing campagnes de kosten per klik in Google Analytics te zetten.
1.2. opzet Om te beginnen is het belangrijk te begrijpen hoe gegevens in Google Analytics kan krijgen. Daarnaast zijn er een aantal basis stappen die ondernomen moeten worden om te kunnen werken met de Google Analytics API. Zie het document ‘Google Analytics installatie’ voor meer informatie hierover. Er zal gebruik gemaakt worden van PHPStorm als ontwikkelomgeving, dit heeft verder geen invloed op het resultaat van deze proof of concept.
1.3. verwachting De verwachting is dat de kosten geüpload kunnen worden vanuit een .csv bestand en verwerkt kunnen worden binnen Google Analytics.
1.4. uitvoering De JavaScript Google Client Library is gedownload en in de map van het proof of concept geplaatst op de server. Deze code maakt gebruik van code die in het beheer is van Google. Het zou kunnen dat in verloop van tijd de code door Google gewijzigd wordt waardoor een ander resultaat het gevolg zou kunnen zijn. De gedachte achter het gebruik van de JavaScript Library in plaats van bijvoorbeeld Java of PHP is dat er dan geen services nodig zijn. Daarnaast is de JavaScript Library makkelijk te gebruiken. Meer informatie over de Google Javascript Client Library is te vinden in het document ‘Google Analytics installatie’. Er zijn een aantal scripts gemaakt in Javascript waarmee er gecommuniceerd kan worden met Google Analytics. Hiervoor is gebruik gemaakt van de huidige documentatie van Google die openbaar toegankelijk is. Meer over de communicatie met Google Analytics is te vinden is in het document ‘Google Analytics’. De scripts en alle code staan op GitHub en daarnaast is er een demo3. 3
Demo custom data upload: http://casadrost.nl/analytics/
120
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
1.5. conclusie Google Analytics is geschikt om gegevens van verschillende marketing kanalen te uploaden. Het duurt maximaal 12 uur voor dat de gegevens verwerkt zijn in Google Analytics. Als de gegevens verwerkt zijn, staan deze onder de tab verkeersbronnen en dan bij kostenanalyse.
121
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
2. rekenen met eigen data Met de vorige proof of concept is gelukt om handmatig kosten in Google Analytics te zetten. Hiermee kunnen berekeningen uitgevoerd worden. Wat met deze test aangetoond zou moeten worden is dat er binnen Google Analytics berekeningen uitgevoerd kunnen worden met de zelf geüploade informatie. Er is bij het onderdeel ‘opzet’ van uitgegaan dat de basis stappen al zijn uitgevoerd. Deze zijn te vinden in het hoofdstuk ‘Cost data upload in Google Analytics’.
2.1. opzet Er zal gebruik gemaakt worden van PHPstorm als ontwikkelomgeving. Daarnaast is er een Google Analytics account klaar gezet die gebruikt kan worden.
2.2. verwachte uitkomst De verwachting is dat via eigen code en anders Google Analytics opdracht kan geven om een eigen formule uit te laten voeren.
2.3. uitvoering Er is in Google Analytics bij alle instellingen geprobeerd een eigen formule toe te voegen zodat wanneer je gegevens upload middels een .csv deze gebruikt kunnen worden voor een formule. Dit is wel mogelijk met gegevens die al door Google Analytics ondersteund worden. Denk hierbij aan cpc, aantal clicks etc.. Gegevens die niet ondersteund worden zoals vaste lasten kunnen niet door Google Analytics verwerkt worden tot een rapportage.
2.4. conclusie Het is mogelijk om met een .csv bestand gegevens te uploaden die vervolgens gebruikt kunnen worden door Google Analytics om een rapportage weer te geven. Het is alleen niet mogelijk om gegevens zoals de huur van een magazijn te kunnen laten gebruiken door Google Analytics om er een rapportage van te maken. Dit heeft er mee te maken dat Google Analytics werkt op bezoekers basis en de huur van een magazijn staat daar helemaal los van.
122
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
3. order informatie ophalen Uit de vorige proof of concept blijkt dat het niet mogelijk is om berekeningen uit te voeren in Google Analytics. Google Analytics biedt een API die het mogelijk maakt om data uit Google Analytics te halen waarmee het mogelijk is om een rendements berekening uit te voeren.
3.1. opzet proof of concept Voor dit proof of concept is een Google Analytics account gebruikt waarbinnen gegevens zijn verzameld van een test Magento omgeving. Hierin staan een aantal orders waarbij naast het order totaal de BTW en de verzendkosten ook in Google Analytics voorkomen. Deze orders moeten middels marketing kanaal in Google Analytics gezet worden, op die manier is het mogelijk om omzet tot dit marketing kanaal toe te kennen. In het document ‘Google Analytics installatie’ staat te lezen (hoofdstuk 4, Marketing kosten upload naar Google Analytics) hoe een marketing kanaal gekoppeld kan worden in Google Analytics. Omdat esser-emmerik veelal werkt met PHP zal deze proof of concept gerealiseerd worden in PHP. Voor de communicatie met Google Analytics biedt Google de Google API PHP Client. Dit is een PHP library waarmee de programmeur met allerlei Google services kan verbinden en daarmee kan communiceren. Voor de proof of concept is versie 0.6.2 gebruikt die te downloaden is op de Google Code pagina van het Google API PHP project4. Met de library wordt een applicatie geautoriseerd om de Google Analytics data te gebruiken die het account heeft. Voor de Google API Client Library moet een applicatie geregistreerd worden bij de Google API Console5. Hierbij wordt een ClientId, ClientSecret en DeveloperKey gegenereerd die nodig zijn om met Google Analytics te kunnen communiceren. Met de Google API Client Library kunnen opdrachten naar de Google Analytics servers verstuurd worden. Deze opdrachten worden geformuleerd als een soort van query. Deze query methoden worden ook wel Dimensions & Metrics6 genoemd. Door het combineren van de juiste dimensions en metrics kan order informatie per marketing kanaal uit Google Analytics gehaald worden. Uit de documentatie pagina van de dimensions en metrics kan worden herleid dat de volgende dimensions en metrics nodig zijn om de orders per marketing kanaal vast te stellen.
4
Google APIs Client Library for PHP: https://code.google.com/p/google-api-php-client/ Google API Console: https://code.google.com/apis/console/ 6 Dimensions & Metrics: https://developers.google.com/analytics/devguides/reporting/core/dimsmets?hl=nl 5
123
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Dimensions
Metrics
ga:source
ga:visits
ga:medium
ga:transactionRevenue ga:transactions ga:uniquePurchases ga:transactionShipping ga:transactionTax
In hoofdstuk 2.3 van het document ‘Google Analytics’ staat te lezen hoe accounts, properties en profiles met elkaar verweven zijn. De dimensions en metrics worden uitgevoerd op een Google Analytics profile. Elke profile wordt gebruikt om rapportage te genereren van de Google Analytics property Om zo nauwkeurig mogelijk rendement te berekenen moet het hoofd profile gebruikt worden. Deze verzameld alle data die het Google Analytics account heeft. De rendements berekening zal op 2 verschillende niveaus plaats vinden. Eerst zal alleen een deel van de kosten, gelijk aan de omzet gegenereerd door het marketing kanaal, en klik kosten gebruikt worden om het rendement te berekenen. Daarna zullen ook verzendkosten en belasting meegenomen worden in de berekening om aan te tonen dat deze een nauwkeuriger rendement geven. Om de informatie van Google Analytics toe te passen is er een proof of concept7 gemaakt.
3.2. verwachte uitkomst Een overzicht met daarin de gebruikte marketing kanalen met daaronder de rendements berekeningen en de winst/verlies in euro’s op 2 verschillende niveaus. Wanneer het rendement hoger is dan 10% zal deze een groene kleur hebben, wanneer het rendement onder de 0% valt zal deze rood kleuren. Alles daartussen zal oranje kleuren.
7
Github Proof of Concept: https://github.com/HMAZonderland/GoogleAnalyticsRendementProofofConcept
124
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
3.3. uitkomst
Op het scherm van het proof of concept8 staan een 2-tal marketing kanalen met daaronder de rendements berekening op 2 verschillende niveaus. Omdat de uitvoer afhankelijk is van het gekoppelde Google Analytics account en dus per persoon kan verschillen is hierboven een schermafbeelding te zien van de uitvoer van de demo webshop. Wanneer er meer kosten ingevuld worden gaat het rendement ook zichtbaar verschuiven. Beiden marketing kanalen laten eerst een rendement zien van meer dan 400%. Na het toevoegen van verzend-, klik kosten en belasting zakt het rendement voor beide kanalen in naar ongeveer 170%.
3.4. conclusie De berekening die gemaakt kan worden met gegevens uit Google Analytics geeft al een nauwkeuriger rendement wanneer er meer kosten worden toegevoegd in de berekening. Wanneer er gekeken wordt naar de verschillende nauwkeurigheid niveaus van rendement berekenen mist hier enkel nog de inkoopkosten. De proof of concept toont op dit moment aan dat het rendement berekend kan worden met gegevens uit Google Analytics. Wanneer er een nauwkeuriger rendement berekend moet worden zijn er meer specifieke kosten nodig. Een van de gegevens die nog kan worden toegevoegd worden zijn de inkoopkosten van producten, welke in Magento te vinden is.
8
Proof of concept: http://google-analytics.esser-emmerik.hugozonderland.nl
125
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4. communicatie met de magento api Gezien de gegevens die uit Google Analytics komen een niet nauwkeurig genoeg rendement geven moet worden gekeken of het mogelijk is meer marketing kanaal specifieke kosten toe te kennen in de rendements berekening. Door de inkoop kosten, die in Magento verwerkt zitten, is het mogelijk een nauwkeurige rendement te berekenen. Met het proof of concept voor Magento is aangetoond of het mogelijk is om gegevens uit de Magento API te halen. In het document ‘Magento’ onder het hoofdstuk ‘Communicatie met Magento’ is onderzocht hoe verbinding gelegd wordt met de Magento API en hoe hier gegevens uitgehaald worden.
4.1. opzet proof of concept Met het proof of concept wordt aangetoond dat het mogelijk is om data uit de Magento API op te halen. Voor de proof of concept is een werkende installatie van Magento nodig. In dit proof of concept wordt een Magento versie 1.7.0.2 gebruikt die gehost staat bij hosting partij Byte9. Deze Magento webshop host is gespecialiseerd in het hosten van Magento webshops. Voor het installeren van Magento is een stappenplan gebruikt die in de bijlage ‘Magento installatie’. In het document ‘Magento’ staat te lezen (inleiding, hoofdstuk 4) dat Magento een 5tal API’s biedt om mee te communiceren. Voor de proof of concept is gebruik gemaakt van Magento SOAP V1 API. Dit omdat de SOAP V2 API langzamer is dan de SOAP V1 API (Magento document, hoofdstuk 4.5, laatste alinea). Voor de communicatie met Magento is een eigen PHP script geprogrammeerd. Dit omdat esser-emmerik enkel producten levert geprogrammeerd in PHP en servers heeft die PHP code hosten. Dit script legt verbinding met de Magento SOAP V1 API, en verstuurd een opdracht waarmee een array overzicht van een product kan worden opgevraagd. Om deze communicatie aan te tonen is er een proof of concept gemaakt waarvan de code op GitHub10 geplaatst is. Voor het proof of concept is het order id van een order uit de sales orders van de Magento Admin panel gehaald. Deze is in de code ingevoerd.
9
Website van Byte: http://www.byte.nl/ GitHub repository van proof of concept: https://github.com/HMAZonderland/MagentoClientProofofConcept 10
126
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
4.2. verwachte uitkomst De verwachting is een array op het scherm te zien waarin gegevens verwerkt zitten van een order en product uit de Magento webshop. In deze array zijn allerlei velden te zien met waarden die ingesteld zijn voor de order en het product in Magento.
4.3. uitkomst Op het scherm11 staat een product uit Magento in array weergave.
4.4. conclusie Door met de Magento V1 SOAP API te communiceren is het mogelijk om gedetailleerde product informatie uit Magento te halen en deze weer te geven op het scherm in array weergave.
11
Schermafbeelding: https://docs.google.com/document/d/1VeJv4fnbUGRE7VJbc1bkrUIECdmjnuDYTqj4dhBqK4/edit
127
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
5. rendement berekenen In de vorige proof of concepts is er steeds vanuit gegaan of om alleen gegevens uit Google Analytics te gebruiken. Hiervan is inmiddels aangetoond dat het een nauwkeurig beeld geeft van het rendement maar dat het nog nauwkeuriger word als er meer kosten opgegeven worden. Deze kosten kunnen onder andere uit Magento gehaald worden zoals inkoopprijs, verzendkosten en aantal verkochte producten. Daarnaast kan de ondernemer zijn vaste lasten opgeven.
5.1. opzet proof of concept Met dit proof of concept12 waarvan de code op GitHub13 staat wordt aangetoond dat met data uit Google Analytics en Magento een accurate rendement berekening gemaakt kan worden. Om de gegevens uit Google Analytics te halen wordt dezelfde code en metrics als in de proof of concept “Order informatie uit Google Analytics halen en verrekenen in script” gebruikt. Om de gegevens uit Magento te halen word dezelfde code gebruikt om als in de proof of concept “Communicatie met de Magento API”. Er wordt eerst order informatie van Google Analytics opgehaald per marketing kanaal. Vervolgens wordt er met de Magento API de order informatie uit Magento gehaald die in de Google Analytics data staan. In de Magento data zit de verzendkosten, inkoopprijs en BTW. De Magento Data en de Google Analytics Data word samengevoegd. Hierop worden de berekening gedaan omtrent Rendement en ROI en dit moet dan per Marketing kanaal op het scherm getoond worden in een tabel waarbij de rij groen word bij een positief rendement en ROI, en rood bij een negatief Rendement en ROI. Daarnaast datzelfde per product per marketing kanaal weer gegeven worden. Er worden via een formulier vastelasten opgegeven en die worden ook meegenomen in de bereken.
5.2. verwachte uitkomst De verwachte uitkomst is dat er een tabel wordt getoond met alle marketing kanalen die beschikbaar zijn op het Google Analytics profile wat gekozen is om de data van halen en waar het Rendement in getoond word. Als het marketing kanaal in de tabel geselecteerd word moet die door gaan naar een tabel met Rendement per product van het geselecteerde marketing kanaal.
12 13
Proof of concept: http://product.esser-emmerik.hugozonderland.nl/ GitHub repository: https://github.com/HMAZonderland/RendementProduct
128
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
5.3. uitkomst De data word opgehaald van Google Analytics en Magento en hier wordt de rendement berekening op uitgevoerd, de resultaten worden getoond per marketing kanaal en per product.
5.4. conclusie Door zowel data van Google Analytics en Magento te gebruiken bij het berekenen van het rendement wordt er een duidelijker beeld geschetst dan als alleen data van Google Analytics gebruikt wordt.
129
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
6. conclusie Na het uitvoeren van de alle proof of concepts is duidelijk geworden dat zowel data uit Google Analytics als uit Magento nodig is om de berekening accuraat uit te voeren. Daarnaast zijn de technische uitwerkingen gemaakt om een degelijke systeem en implementatie keuze te maken. Zo kwamen wij er achter dat data op halen uit Magento te langzaam gaat om een goede gebruikers ervaring te geven. De oplossing is om dit op dagelijkse basis automatisch te laten uitvoeren en op te slaan in een database. In de database zou dan alleen de data opgeslagen worden die nodig is om de berekening uit te voeren.
130
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
7. bijlagen bijlage magento installatie ● ●
● ● ●
Magento 1.7.0.2 is gedownload van officiële Magento site: ○ http://www.magentocommerce.com/download Magento sample data 1.6.1.0 gedownload van officiële website. Hier is voor gekozen omdat dit tijd bespaart met het aanmaken van voorbeeld producten om mee te testen. Er is een database aangemaakt bij de hosting (Byte). De eerder gedownloade sample data geupload in PhpMyAdmin. Magento geïnstalleerd met ondersteuning van de ‘Installation Guide’ die op de Magento website te vinden is: ○ http://www.magentocommerce.com/knowledge-base/entry/magentoinstallation-guide ○ http://www.magentocommerce.com/knowledge-base/entry/magentoinstallation-cheat-sheet
131
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
bijlage definitie rendement – voorbeeld berekening
132
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
10.1. figuren Figuur 1: uitvoer gegevens uitwisseling Google Analytics
25
10.2. tabellen Tabel 1: wat is rendement in dit onderzoek? 12 Tabel 2: wat is een marketing kanaal in dit onderzoek? 12 Tabel 3: wat is Magento en waarom wordt het gebruikt? 12 Tabel 4: Hoe word rendement bepaald? 13 Tabel 5: wat is Google Analytics? 13 Tabel 6: welke product informatie is beschikbaar in Magento? 13 Tabel 7: Welke klant informatie is beschikbaar in Magento? 14 Tabel 8: Hoe worden gegevens met Magento uitgewisseld? 14 Tabel 9: wat is een dashboard? 14 Tabel 10: bieden Magento of Google Analytics de mogelijkheid om gegevens te berekenen, eventueel op te slaan, of moet er een eigen systeem ontwikkeld worden? 15 Tabel 11: hoe wordt een dashboard gerealiseerd waarop inzichtelijk gegevens worden weergegeven aan de hand van adviezen uit dit onderzoek? 15 Tabel 12: rendement marketing kanaal formule toelichting 19 Tabel 13: rendement per product marketing kanaal toelichting 20 Tabel 14: directe kosten invulling met Magento API uitvoer variabelen 23 Tabel 15: voor- en nadeel vergelijking implementatie opties 27
10.3. vergelijkingen Vergelijking 1: standaard rendement formule Vergelijking 2: standaard winst formule Vergelijking 3: marketing kanaal kosten product Vergelijking 4: omzet verhouding Vergelijking 5: product kosten bepaling Vergelijking 6: kosten bepaling Vergelijking 7: rendement marketing kanaal Vergelijking 8: winst vergelijking marketing kanaal Vergelijking 9: rendement per product marketing kanaal Vergelijking 10: winst vergelijking product marketing kanaal Vergelijking 11: ROI berekening marketing kanaal Vergelijking 12: ROI berekening product per marketing kanaal Vergelijking 13: nieuwe notatie rendement formule Vergelijking 14: standaard rendement formule
16 16 17 18 18 18 19 19 20 20 20 20 21 32
133
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
10.4. afkortingen Afkorting
Betekenis
API
Application programming interface
ROI
Return of investment
10.5. woordenboek Definitie
Betekenis
Dashboard
Een dashboard is een instrument waarop het behaalde rendement, zonder waardeoordeel, op verschillende niveau’s wordt weergegeven.
e-Commerce
Verkoop via het internet.
Marketing kanaal
Een online medium waarop producten aangeboden worden die de afzet van het product bevorderd. Een aantal voorbeelden zijn: Kieskeurig, Beslist en AdWords.
Online marketing
De marketing van producten via internet. Hierbij kan gebruik gemaakt worden van o.a. vergelijking sites zoals Kieskeurig en Beslist.
Rendement
Rendement is de winst van de omzet in percentages.
Return of investment
Return on Investment is de opbrengst van de kosten in percentages.
Proof of concept
Een bewijs van de werking van een idee.
134
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
10.6. bronnenlijst Undefined, (undefined) Module: Mage_Catalog. In magentocommerce.com, geraadpleegd op 13-03-2013 http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_prod uct.info.html undefined. (undefined). SOAP. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/SOAP. undefined. (undefined). Web Services Description Language. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/Web_Services_Description_Language. undefined. (undefined). XML. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/XML. undefined. (undefined). Remote procedure call. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/Remote_procedure_call. undefined. (undefined). XML-RPC. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/XML-RPC. undefined. (undefined). Web service interoperability. In Wikipedia. Raadgepleegd Maart 25, 2013, van http://en.wikipedia.org/wiki/Web_Services_Interoperability. undefined. (undefined). Magento API SOAP. In Magento. Raadgepleegd Maart 25, 2013, van http://www.magentocommerce.com/api/soap/introduction.html. undefined. (undefined). Representational state transfer. In Wikipedia. Raadgepleegd April 4, 2013, van https://en.wikipedia.org/wiki/Representational_state_transfer. undefined. (undefined). Magento API REST. In Magento. Raadgepleegd April 4, 2013, van http://www.magentocommerce.com/api/rest/introduction.html.
135
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Magento Marketing. (September 13, 2012). Survey Says: Magento Gets a 3rd Slice of Pie. In Magento - Blog. Geraadpleegd April 4, 2013, from http://www.magentocommerce.com/blog/comments/survey-says-magento-gets-athird-slice-of-pie/. Bondarenko, A. (September 11, 2012). Magento got a Third Slice of Pie. In aheadWorks Magento Blog. Geraadpleegd April 4, 2013, from http://blog.aheadworks.com/2012/09/magento-got-a-third-slice-of-pie/. Bondarenko, A. (Februari 9, 2012). Magento Covers the Quarter of the e-Commerce Market. In aheadWorks Magento Blog. Geraadpleegd April 4, 2013, from http://blog.aheadworks.com/2012/02/magento-covers-the-quarter-of-the-ecommerce-market/ undefined. (undefined). About Us. In Magento - About Us. Geraadpleegd Maart 20, 2013, from http://www.magentocommerce.com/company/ undefined. (undefined). Find the Best magento Solution for Your Business. In Magento - Compare Product. Geraadpleegd Maart 20, 2013, from http://www.magentocommerce.com/product/overviewcompare?utm_source=magentocommerce&utm_medium=topnav Magento. (undefined). Search Engine Optimization. In Magento. Geraadpleegd Maart 25,2013, from http://www.magentocommerce.com/product/features/search-engineoptimization/view. Eichelberger, K. (undefined). Magento SEO Development. In MAGENTO-BLOG. Geraadpleegd Maart 25,2013, from http://www.blueacorn.com/magentoblog/magento-seo-development/. Tomas ,G . (undefined). Tutorial: Multi-Site, Multi-Domain Setup. In Magento Knowledge Base. Geraadpleegd Maart 25, 2013, from http://www.magentocommerce.com/knowledge-base/entry/tutorial-multi-sitemulti-domain-setup undefined. (Juni 25, 2012). De nadelen van Magento. In De nadelen van Magento. Geraadpleegd Maart 25, 2013, from http://blog.webwinkelkeur.nl/de-nadelen-vanmagento/
136
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
Schönebeck ,S. (October 28, 2009). Why is Magento so slow?. In Stackoverflow. Geraadpleegd Maart 20, 2013, from http://stackoverflow.com/questions/1639213/why-is-magento-so-slow Undefined . (Februari 20, 2012). Magento user guide: Why is Magento so slow?. In Eyemagine. Geraadpleegd Maart 20,2013, from http://www.eyemaginetech.com/blog/magento/magento-user-guide-slow-magento/ Undefined. (undefined). E-Commerce Comparison Table. In Template-Help.com. Geraadpleegd April 4, 2013, from http://info.template-help.com/help/e-commerce-comparison-table/ Undefined. (Maart 11, 2012). Payment Method Charge. In Magento connect. Geraadpleegd April 4, 2013, from http://www.magentocommerce.com/magento-connect/payment-method-charge4050.html Undefined. (undefined). Vergelijk tarieven voor iDEAL, achteraf betalen en creditcard. In over Online Betalen. Geraadpleegd April 4, 2013, from http://overonlinebetalen.nl/vergelijk-tarieven-ideal/ Undefined. (undefined). Pakket. In postnl. Geraadpleegd April 4, 2013, from http://www.postnl.nl/zakelijk/pakket/pakket/ Undefined. (undefined). How Do I Set Up Table Rate Shipping?. In Magento Knowledge Base. Geraadpleegd April 4, 2013, from http://www.magentocommerce.com/knowledge-base/entry/how-do-i-set-up-tablerate-shipping van de Adel, S (2010). Google Analytics en Magento. In onetomarket. Geraadpleegd April 4, 2013, from http://www.onetomarket.nl/blog/online-marketing/googleanalytics-en-magento.html Fielding, R.T. (2000). Architectural Styles and the Design of Network-based Software Architectures. In UNIVERSITY OF CALIFORNIA, IRVINE. Geraadpleegd April 4, 2013, from http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
137
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
McDermott, J. (2012). The Basics Of Creating A Magento Module. In smashingmagazine. Geraadpleegd Mei 14, 2013, from http://coding.smashingmagazine.com/2012/03/01/basics-creating-magentomodule/ Undefined. (undefined). Magento Connect. In Magento. Geraadpleegd Mei 14, 2013, from http://www.magentocommerce.com/magento-connect/ undefined.(Oktober 29, 2012). Tracking Code Overview. In Google Developers. Geraadpleegd April 9, 2013 from https://developers.google.com/analytics/resources/concepts/gaConceptsTrackingO verview undefined. (undefined). Ontwikkel uw vaardigheden op het gebied van analyse. In Google Analytics. Geraadpleegd April 8, 2013 from http://www.google.com/intl/nl_ALL/analytics/learn/index.html undefined. (April 5, 2013). De Google Analytics-API’s. In Google Analytics. Geraadpleegd April 9, 2013 from https://support.google.com/analytics/answer/1008004?hl=nl undefined. (Februari 11, 2013). Accounts, gebruikers, property's en profielen. in Google Analytics. Geraadpleegd April 9, 2013 from https://support.google.com/analytics/answer/1009618?hl=nl undefined. (Januari 30, 2013). Custom Variables - Dimensions & Metrics Reference. In http://developers.google.com. Geraadpleegd April 9, 2013 from https://developers.google.com/analytics/devguides/reporting/core/dimsmets/custo mvars undefined. (Januari 15, 2013). Dimensions & Metrics Reference. In http://developers.google.com. Geraadpleegd April 9, 2013 from https://developers.google.com/analytics/devguides/reporting/core/dimsmets undefined. (Maart 21, 2013). Doelen instellen en bewerken. in Google Analytics. Geraadpleegd April 9, 2013 from http://support.google.com/analytics/answer/1032415?hl=nl undefined. (Januari 2, 2013). Cost Data Upload - Feature Reference. in Google Analytics. Geraadpleegd April 9, 2013 from
138
Scriptie onderzoek semester 13/06/2013
IJsbrand van Prattenburg Hugo Zonderland Dylan Drost
https://developers.google.com/analytics/devguides/platform/features/cost-dataimport undefined. (undefined). Analysehulpprogramma's. in Google Analytics. Geraadpleegd April 9, 2013 from http://www.google.com/intl/nl/analytics/features/analysistools.html Henk89 en Rogier, (Mei 16, 2011) Rendement berekenen. In wetenschapsforum, geraadpleegd op 13-03-2013 http://www.wetenschapsforum.nl/index.php/topic/138584-rendement-berekenen/ Geenen, K, (Augustus 19, 2009), Webwinkels opgelet, GA is niet volmaakt!. In karelgeenen, geraadpleegd op 13-03-2013 http://www.karelgeenen.nl/17/webwinkels-opgelet-ga-is-niet-volmaakt/ undefined, (undefined), Goederen en diensten met 21% btw. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/goederen_diensten_21_btw/ undefined, (undefined), Tarieven en vrijstellingen. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/ undefined, (undefined), Goederen met 0% btw. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/goederen_0_btw/ undefined, (undefined), Goederen met 6% btw. In Belastingdienst, geraadpleegd op 13-03-2013 http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakeli jk/btw/tarieven_en_vrijstellingen/goederen_6_btw/ undefined, (undefined), Marketing. In woord.org, geraadpleegd op 13-03-2013 http://www.woorden.org/woord/marketing
139