• No results found

Utveckling av webbapplikation förvisualisering av rankingdata över tid EXAMENSARBETE

N/A
N/A
Protected

Academic year: 2021

Share "Utveckling av webbapplikation förvisualisering av rankingdata över tid EXAMENSARBETE"

Copied!
41
0
0

Loading.... (view fulltext now)

Full text

(1)

Utveckling av webbapplikation för visualisering av rankingdata över tid

Marika Sjöberg

Högskoleingenjörsexamen Datateknik

Luleå tekniska universitet Institutionen för system- och rymdteknik

(2)

i Sammanfattning

Sammanfattning

Denna rapport beskriver utvecklingen av en webbapplikation för visualisering av rankingdata över tid åt SESNordic AB i Vilhelmina. Applikationen är skriven i PHP och läser in data från antingen en Excel- eller CSV-fil. Vissa beräkningar görs på indatat och resultatet visas sedan i grafer. Den färdiga resultatrapporten kan sedan skickas till kunden som inbäddad HTML eller exporteras till en PDF-fil.

Nuvarande programvaran som SESNordic använder vid sina analyser av ranking, Web CEO, har en bristfällig funktionalitet när det gäller grafvisualisering. Dess rankingdata visas i tabellform med en lista på sökorden och dess nuvarande rank. När rankingen jämförs över tid visas även detta i tabellform. Denna applikation ska användas som ett komplement till nuvarande rankingrapport och sammanställa informationen i grafer som enkelt visar hur resultatet har ändrats över tid.

Nyckelord: PHP, ranking, sökmotoroptimering, webbapplikation.

(3)

Abstract

This report is about the development of a web application for visualizing rank data over time for SESNordic AB in Vilhelmina. The application is built in PHP and can read data from either Excel or CSV files. Some calculations are made and the result is then displayed in graphs. The resulting report can then be sent directly to the client as embedded HTML or exported to a PDF file.

The software that SESNordic currently uses for their rank analyses, Web CEO, has insufficient functions for graphically visualizing the rank data. The current reports show the progress in a table with a list of keywords and their current rank. When the rank is compared over time it is also shown in a table. This application is going to be used as a complement to that report and compile the information in graphs that shows how the result changes over time.

Keywords: PHP, ranking, search engine optimization, web application.

(4)

iii Förord

Förord

Jag har skrivit denna rapport som en del av mitt examensarbete under våren 2012 på utbildningen Högskoleingenjör inom Datateknik (ing on-line) som jag läst på distans mot Luleå Tekniska

Universitet. Projektet genomfördes på uppdrag av SESNordic AB i Vilhelmina och projektet fick namnet Utveckling av webbapplikation för visualisering av rankingdata över tid. Jag är väldigt nöjd med sammarbetet och vill tacka min handledare Rebecca Hansson på SESNordic AB för allt stöd under denna tid. Jag vill också tacka min handledare Robert Brännström på Luleå Tekniska

Universitet för att ha besvarat alla mina frågor rörande projektet. Till sist vill jag även tacka alla andra som på något vis varit involverad i detta arbete med mig och hjälpt mig på vägen.

Vilhelmina maj 2012 Marika Sjöberg

(5)
(6)

v Förord

Innehållsförteckning

1 Inledning ... 1

1.1 Bakgrund ... 1

1.2 Syfte ... 1

1.3 Problembeskrivning ... 1

1.4 Tillvägagångssätt ... 1

1.5 Rapportstruktur ... 2

1.6 Målgrupp ... 2

2 Förarbete ... 2

2.1 Sökmotoroptimering ... 2

2.2 Vad är en placering värd? ... 3

2.3 Intresse från kunden ... 4

2.4 Befintliga alternativ ... 4

3 Metod ... 5

3.1 Planering ... 5

3.1.1 Kravspecifikation ... 5

3.1.2 Aktivitetsdiagram ... 6

3.1.3 Tidsplan ... 7

3.2 Utförande ... 7

3.2.1 Utvecklingsmiljö ... 7

3.2.2 Grafbibliotek ... 7

3.2.3 Utseende och funktionalitet ... 8

3.2.4 Inläsning från Excelfiler ... 9

3.2.5 Beräkningar av data ... 9

3.2.6 Sammanställning av resultatet ... 11

3.2.7 Mejlfunktionen ... 12

3.2.8 Exportering till en PDF-fil ... 12

4 Resultat ... 13

4.1 Välj filer ... 13

4.2 Se resultatet ... 13

4.3 Mejla resultatet ... 18

4.4 Exportera till PDF ... 18

4.5 Inställningar ... 19

4.6 Licenser ... 19

(7)

5 Analys ... 20

5.1 Test av applikationen ... 20

5.2 Synpunkter från kunder... 21

5.3 Synpunkter från SESNordic ... 21

5.4 Egna synpunkter ... 21

6 Slutsatser ... 22

7 Fortsatt arbete... 22

8 Litteraturförteckning ... 23

9 Bilagor ... 26

Bilaga A – Begrepps- och ordförklaringar ... 26

Bilaga B – Resultatrapporten ... 28

Bilaga C – Frågeformulär ... 30

Bilaga D – Resultat av frågeformulär ... 32

(8)

vii Tabellförteckning

Tabellförteckning

Tabell 1. Exempel på hur resultatet visas i nuvarande resultatrapport. ... 4

Tabell 2. Exempel på sortering av rankingdata för den första grafen. ... 9

Tabell 3. Värden för olika rankingintervaller. ... 10

Tabell 4. Exempel på sortering av rankingdata för den tredje grafen. ... 11

Tabell 5. Tabell som visar resultatet för enskilda sökmotorer. ... 15

Figurförteckning

Figur 1. Sammanställt data från undersökningarna i artikeln av Goodwin. ... 3

Figur 2. Aktivitetsdiagram. ... 6

Figur 3. Översikt över applikationens struktur. ... 8

Figur 4. Startsidan där användaren väljer filer att läsa in. ... 13

Figur 5. Resultatsidan där senaste resultatet visas. ... 14

Figur 6. Grafen Fördelning av placeringar. ... 14

Figur 7. Grafen Summering av rankdata. ... 15

Figur 8. Här väljs det vilket företag som är kund när data för konkurrenter läses in. ... 15

Figur 9. Grafen Summering av rankdata med konkurrentdata också. ... 16

Figur 10. Grafen Total fördelning av placeringar. ... 16

Figur 11. Graferna med enbart en fil som indata (graferna åt vänster) eller två filer (höger sida). ... 17

Figur 12. Formulär att fylla i för att sända resultatet som mejl. ... 18

Figur 13. Exempel på hur PDF-filen sparas. ... 18

Figur 14. Översikt av valet Inställningar. ... 19

Figur 15. Exempel på felmeddelande och bekräftelser från applikationen. ... 20

Figur 16. Exempel på en bugg i applikationen. ... 21

(9)
(10)

1 Inledning

1 Inledning

I detta avsnitt finns information om bakgrunden till projektet, dess syfte och frågeställningar. Det finns även en genomgång av tillvägagångssättet samt rapportens struktur och dess målgrupp.

1.1 Bakgrund

SESNordic är ett nystartat sökbolag där de anställda har lång erfarenhet inom sökmotoroptimering och sökmarknadsföring. I sitt arbete använder de anställda sig av ett analysprogram som heter Web CEO. Med det kan de ta fram en tabell som visar hur deras kunder är placerade i sökmotorerna i dagsläget jämfört med tidigare tidpunkter. Denna tabell listar utvalda sökord för kundens webbplats och vilken rank dessa sökord har i olika sökmotorer. Det visas även hur rankingen har förändrats sedan ett tidigare datum dvs. om placeringen gått upp eller ned. Tabellen kan sedan sammanställas i en resultatrapport som sedan kan skickas till kunden i ett mejl eller som PDF.

Nackdelen med dessa tabeller är att de snabbt blir oöverskådliga p.g.a. antalet sökord. I de flesta fall är det över tjugo olika sökord men det kan vara betydligt fler också. Om då några sökord har tappat i rank och andra stigit är det svårt för kunden att direkt avgöra om de ligger bättre eller sämre till i sökmotorerna idag än tidigare. Därför har det efterfrågats ett komplement till denna resultatrapport som mer översiktligt visar hur utvecklingen ser ut.

1.2 Syfte

Önskemålet från SESNordic var att utveckla en ny resultatrapport som enklare kunde visa rankutvecklingen för kunderna. Istället för att visa rankingdata i tabellform som tidigare ville SESNordic ha ett webbverktyg som kan visualisera data i olika grafer för en effektivare redovisning.

På detta vis skulle kunderna lättare kunna se hur deras ranking har förändrats över tid.

1.3 Problembeskrivning

De krav som fanns från SESNordic var att verktyget skulle vara i form av en webbapplikation skrivet i PHP för att enkelt kunna användas på flera olika datorer. Applikationen skulle kunna läsa in data från tre olika tidpunkter från antingen Excel- eller CSV-filer då det var dessa format som det befintliga analysprogrammet, Web CEO, kunde exportera data till. Den färdiga resultatrapporten ska sedan kunna skickas som inbäddad HTML i direktmejl till kund eller exporteras till en PDF-fil. Kravet på den färdiga resultatrapporten var att den skulle sammanställa indatat i olika grafer för en enkel överblick av resultatet.

1.4 Tillvägagångssätt

För att strukturera arbetet på ett bra sätt användes vissa delar från Scrum som är en metod som främst används vid systemutveckling. Jag valde att göra så eftersom jag prövat på det arbetssättet en gång tidigare och gillade hur arbetet planeras och struktureras på. Scrum är egentligen skapat för grupparbeten men jag valde de delar som jag trodde kunde effektivisera mitt arbete och det fungerade bra även för detta soloprojekt.

Arbetet har skett på SESNordics kontor i Vilhelmina och de har tillhandahållit all utrustning och programvara som har behövts. Arbetet har skett i nära sammarbete med handledaren på SESNordic, Rebecca Hansson, och det är henne som det syftas på i resterande del av rapporten när det står handledaren. Det är även hon som framfört de önskemål som fanns från SESNordic.

(11)

1.5 Rapportstruktur

I nästa del av rapporten finns en genomgång av relevant teori angående sökmotoroptimering. Detta följs av metoddelen där en genomgång av arbetet görs från start till slut och utformningen av applikationen beskrivs. Sedan visas det färdiga resultatet med exempelbilder och data. Den sista delen består av en analys av projektarbetet och diskussion kring resultatet samt tankar kring fortsatt arbete. Därefter finns listan över referenser samt bilagor.

1.6 Målgrupp

Denna rapport är skriven för de som har viss kunskap om PHP och HTML. Det krävs inga tidigare kunskaper om sökmotoroptimering utan den mest grundläggande teorin beskrivs i nästa del av rapporten. I Bilaga A finns en lista med förklaringar för att öka förstålsen för vissa begrepp och ord.

Tanken är att om någon skulle vara intresserad av att skapa en liknande version av applikationen skulle denna rapport tillsammans med litteraturförteckningen, där alla bibliotek och programvara som använts listas, vara tillräckligt för en person som kan PHP och HTML. För de som är mer intresserade av analysen ska denna rapport vara tillräckligt för att de själva ska kunna göra dessa beräkningar och skapa dessa grafer utifrån liknande indata och annan programvara.

2 Förarbete

Eftersom jag hade väldigt lite kunskap inom området sökmotoroptimering när examensarbetet påbörjades behövde jag läsa på först för att lättare kunna förstå vad det var kunderna ville se i resultatrapporten. Förutom den kunskap som handledaren förmedlade läste jag även diverse statistik på Internet gällande ranking och sök.

2.1 Sökmotoroptimering

Sökmotoroptimering handlar i stora drag om att optimera en webbplats för att den ska placeras högt upp i resultatlistorna hos sökmotorerna. Förutom att få bra placeringar handlar det även om att träffarna ska vara relevanta för att de som söker sedan ska fortsätta och klicka sig in till sidan samt förhoppningsvis använda företagets tjänster. (Hansson, 2012)

Dagens sökmotorer använder sig av olika algoritmer för att rangorda webbsidorna som visas i sökresultatet och sökmotoroptimering handlar om att på bästa sätt utforma de punkter som sökmotorerna baserar sina algoritmer på. Sökmotorerna i sin tur vill att de mest relevanta sidorna ska placera sig högt upp för att användarna ska hitta det som de letar efter. (SESNordic AB, u.d.) En analys av rankingen utförs för att se hur ett företags webbplats placerar sig i sökmotorerna.

Resultaten från olika tidpunkter jämförs sedan för att se att arbetet ger önskat resultat dvs. bättre placeringar. Vid en analys används sökord som är relevanta för företaget och sedan kontrolleras det vilken ranking webbplatsen har i olika sökmotorer för dessa sökord. Sökorden är vanliga ord som det söks på i sökmotorerna och som företaget vill synas i resultatet för. Sökorden kan även vara fraser som t.ex. ”hyra en server”. Ibland används enbart prioord, det är utvalda sökord som är viktigast för företaget att synas med dvs. prioriterade ord.

(12)

3 Förarbete

När resultatet sedan visas i en sökmotor som t.ex. Google visas det i en rankad lista kallad SERP, search engine result page. Det första resultatet har alltså rank 1, det andra rank 2 osv. Ranking är samma som placering dvs. en sida som är rankad etta har placering ett. Det finns även sponsrade länkar som visas ovanför själva listan men dessa har inte behandlats i detta examensarbete.

Ibland används uttrycket förstasidesplaceringar och med det menas de resultat som visas på sökmotorns första resultatsida. Som standard visar sökmotorerna tio träffar per sida men det kan ändras av användaren. Det betyder att förstasidesplaceringarna är rank 1 till rank 10,

andrasidesplaceringarna är rank 11 till rank 20 osv. Vid analysen väljs vilka placeringar som ska tas med i resultatet, oftast används topp 100 och träffar utanför det räknas som inte rankade.

2.2 Vad är en placering värd?

De studier som är gjorda angående sökmotoroptimering handlar främst om att beräkna hur mycket en viss placering är värd. I en artikel på Search Engine Watch sammanfattar Goodwin fyra olika undersökningar gjorda de senaste åren. Där har de beräknat CTR, clickthrough rate eller

klickfrekvens, för topp tio eller tjugo. Även om resultatet är olika i undersökningarna så ser kurvans form likadan ut med väldigt högt värde för rank 1 och sedan sjunker värdet snabbt som ses i Figur 1.

Hans sammanfattning av resultaten var att det är väldigt viktigt att placera sig bra i sökresultaten och att en rank 1 placering är väldigt mycket värd. (Goodwin, 2011)

Figur 1. Sammanställt data från undersökningarna i artikeln av Goodwin.

I undersökningen från Optify, som är den senaste av de fyra, kom de fram till att en rank 1 placering har ett CTR på 36,4 % medan rank 2 enbart har 12,5 %. I resultatet för hela sidor har första sidan, dvs.

rank 1 till 10, ett medelvärde på 8,9 % i CTR medan andra sidan enbart har 1,5 %. Med sådana värden är det tydligt hur viktigt det är att ha en rank 1 placering och att det inte räcker med att ligga inom topp tio. I sin redovisning menar Optify att placeringar efter sidan två inte har något värde alls för företaget när det gäller att få trafik till webbplatsen. (Optify, 2011)

I en äldre undersökning av Pan, Hembrooke m.fl. har de gjort ett experiment med studenter där de undersökt vilka sökresultat de klickar på. Genom att både se på vilka resultat studenterna tittar på genom att följa hur ögonen rör sig över skärmen samt se vilken länk de tillslut väljer att klicka på kom

0,00%

10,00%

20,00%

30,00%

40,00%

50,00%

1 2 3 4 5 6 7 8 9 10

CTR

Rank

Optify AOL Neil Walker Chitika

(13)

de fram till ett intressant resultat. Även om ordningen på sökresultaten är den omvända dvs. rank 1 visas som rank 10, rank 2 som rank 9 och rank 10 som rank 1 osv. litade studenterna ändå på det resultat som Google visar och klickar främst på de översta resultaten. Skillnaden var dock inte lika stor mellan topplaceringarna och de övriga i det fallet samt att det även var fler som faktiskt valde att klicka på resultaten längre ned på sidan. (Pan, et al., 2007)

2.3 Intresse från kunden

Från kunderna har det efterfrågats en enkel och överskådlig resultatrapport som tydligt visar hur kundens webbplats ligger till i SERP. Kunderna har även uttryckt önskemål om att kunna jämföra resultatet med tidigare tidpunkter för att kunna se hur resultatet har ändrats över tid.

Sammanfattningsvis vill de alltså ha en klart beskrivande resultatrapport som inte kräver någon genomgång eller analys av tabeller och som enkelt sammanfattar resultatet. (Hansson, 2012)

2.4 Befintliga alternativ

Det analysprogram som SESNordic använder sig av heter Web CEO och i det stora hela är de anställda nöjda med programmet då de har använt det i många år. Det som alltså kunde ha varit bättre är hur resultatet visas i programmet och även i den rankingrapport som för närvarande skickas till

kunderna. SESNordic har funderat på att byta ut Web CEO mot någon annan programvara för analys av ranking men än är det inte aktuellt. I och med att de nu får denna applikation som komplement till sin nuvarande resultatrapport kommer det inte heller att behövas.

I Tabell 1 visas hur resultatet presenteras i den nuvarande resultatrapporten med sökorden och dess rank i en tabell. I parentesen bakom rankingen visas den eventuella förändringen som skett sedan ett tidigare datum där siffran efter pilen anger antalet placeringar som flyttats upp eller ned. Detta är enbart för en sökmotor, Google, och om fler sökmotorer skulle ha varit med skulle rankingen för dessa ha visats i ytterligare kolumner. Det var också få sökord med i denna resultatrapport, ifall det varit fler ord med samt fler sökmotorer skulle den snabbt blivit väldigt svår att överblicka.

Tabell 1. Exempel på hur resultatet visas i nuvarande resultatrapport.

(14)

5 Metod

Det som är bra med denna tabell är att det går att se hur företaget ligger till på enskilda sökord. I vissa fall kan det vara intressant att se vilken rank som företaget har på t.ex. sitt eget namn bara och för det krävs det inga grafer. Denna tabell och resultatrapport behövs alltså också och kommer fortsätta att användas men det behövs även ett komplement till den.

SESNordic ville alltså ha en applikation som är speciellt gjord för deras behov och som använder data från deras befintliga analysprogram. Tanken var att de själva ville kunna påverka hur

resultatrapporten skulle se ut och därför fanns det inga befintliga alternativ att använda. Däremot har jag tittat på några andra analysprogram för att se vilka olika grafer de har att erbjuda för att få inspiration till mina egna samt för att se vilka beräkningar som kunde vara intressanta.

3 Metod

Detta kapitel går igenom hur arbetsgången såg ut från planeringsfasen till det färdiga resultatet.

3.1 Planering

3.1.1 Kravspecifikation

Tillsammans med handledaren togs i början fram en lista med punkter som applikationen skulle uppfylla, en product backlog. Dessa punkter tidsuppskattades sedan för att se om det skulle finnas tid att implementera de viktigaste delarna av programmet. Listan innehöll de första tio punkterna som finns nedanför vid arbetets början och den sista punkten tillkom under arbetets gång samt att punkt nio och tio blev inaktuella. Den uppskattade tiden i arbetsdagar står inom parentes.

1. Välja/ladda upp filer för indata, tre stycken (3) 2. Skriva ut resultatet som en PDF (2)

3. Skriva ut resultatet som inbäddad HTML för direktepost (3) 4. Företagsnamnet (kunden) skall klart framgå (1)

5. SESNordic skall kunna visa sin företagslogga (1)

6. Graferna skall vara cirkeldiagram och stapeldiagram (4) 7. Datum för respektive rapport skall framgå, år och månad (1)

8. Ämnesraden epost, en standard samt att den bör gå att ändra enkelt (1) 9. Om antalet sökmotorer är fler än en ska detta viktas in i samma graf (1)

10. Om prioord väljs att importeras (tre filer) skall denna graf framgå i samma dokument som övriga grafer (2)

11. Om konkurrentdata importeras ska konkurrenterna visas som linjer i summa grafen (2) I den första grova tidsplanen var fyra veckor planerade åt själva implementationen av programmet.

När den uppskattade tidsåtgången för alla önskade funktioner som fanns i början (punkt ett till tio i listan ovanför) summerades blev det nitton arbetsdagar. Om allt gick enligt plan skulle alltså tiden precis räcka till men eftersom de uppskattade tiderna var avrundade uppåt fanns det en viss säkerhetsmarginal också. I den första planen var de två första veckorna satt åt att planera och strukturera arbetet samt undersöka bakgrund och önskemål men det tog bara en vecka. Därför fanns en extra vecka som kunde användas åt implementationen ifall allt inte skulle hinnas på de tänkta fyra veckorna.

(15)

3.1.2 Aktivitetsdiagram

När det var bestämt vilka funktioner som applikationen skulle innehålla skapades ett

aktivitetsdiagram. Det var främst för att ha en struktur på flödet i applikationen, kunna se hur filerna skulle vara sammanlänkade och vilka steg som skulle finnas med. I den färdiga applikationen ser det inte alls ut som i diagrammet men det var bra att ha att utgå ifrån samt att jag tvingades fundera på strukturen innan arbetet med koden påbörjades vilket förenklade det efterföljande arbetet.

I aktivitetsdiagrammet i Figur 2 nedan är bilden delad i två delar, en för användaren och en för applikationen. Detta är för att det ska gå att se vilka saker som är tänkt att användaren ska kunna välja samt vilka saker som bestäms av applikationen. I diagrammet står aktiviteter eller saker som sker inom rutorna och valen som går att göra visas som en romb där de enskilda valen är utskrivna vid pilen som visar vart valet leder.

Figur 2. Aktivitetsdiagram.

(16)

7 Metod

T.ex. kan användaren från start välja att ändra inställningar och får då mata in sina ändringar och sedan spara eller avbryta. Om användaren sparar sina val kommer applikationen att spara ändringarna i fil och sedan kommer användaren tillbaka till startsidan.

Det som kom till mest nytta med diagrammet är hur applikationen skulle spara resultatet och sedan återanvända det för att skicka mejlet och exportera till en PDF. Just för att jag hade satt mig ner och funderat över hur applikationen skulle vara uppbyggd kom jag på att jag skulle kunna spara resultatet som HTML och sedan återanvända detta. Ifall jag hade satt mig med koden direkt hade jag kanske inte kommit fram till samma lösning och jag tror inte det skulle ha varit lika enkelt.

3.1.3 Tidsplan

För att få ännu bättre överblick över arbetet delades de fyra veckorna som var planerade för implementationen in i sprints där ordningen som punkterna skulle färdigställas i valdes samt hur de skulle demonstreras. Indelningen blev naturlig då de punkter som hörde ihop på något vis sattes tillsammans samt att delmålet valdes så att det skulle bli något synligt att demonstrera. Listan blev då som följande med de tillhörande punkternas nummer inom parentes:

 Sprint 1 – Visa utseendet på graferna och beräkningar på exempeldata (6, 7 och 9)

 Sprint 2 – Visa utseendet på resultatet som visas på skärmen (4 och 5)

Sprint 3 – Visa hur graferna visas utifrån det data som väljs samt hur det ser ut om prioord väljs (1, 10 och 11)

 Sprint 4 – Visa hur det ser ut när resultatet sparas som en PDF eller skickas som mejl samt hur inställningarna ändras (2, 3 och 8)

3.2 Utförande

3.2.1 Utvecklingsmiljö

Eftersom applikationen skulle vara skriven i PHP behövdes PHP samt en lokal webbserver med stöd för PHP installeras på datorn för att kunna testa applikationen under utvecklingen. Därför användes EasyPHP som är ett gratis programpaket för utveckling av applikationer och webbsidor. EasyPHP valdes för att jag har använt det tidigare och det är väldigt enkelt att installera eftersom ingen egen konfiguration behövs.

Sedan användes Eclipse PDT (PHP Development Tools), en version av Eclipse som är gjord speciellt för att skriva PHP i. Även det för att jag jobbat i Eclipse tidigare när jag programmerat i Java och C++ plus att det finns ett plug-in till Eclipse för att synkronisera mappar som heter FileSync. Detta plug-in användes eftersom jag satt lokalt på min dator och skrev koden men ville även att projektet skulle sparas på företagets server ifall något skulle ske med datorn. På det viset hade jag även tillgång till projektet ifall jag arbetade hemifrån eller reste bort. Med FileSync sparas alla ändringar som görs i Eclipse till en mapp på servern automatiskt och det behövs inte göras manuellt.

3.2.2 Grafbibliotek

Först behövdes ett bibliotek som kunde användas för att rita upp graferna eftersom graferna var själva huvuddelen i resultatrapporten och det var viktigt att de skulle se bra ut. PHP har inga inbyggda funktioner för att skapa grafer, därför sökte jag bland gratis bibliotek som fanns att hämta på nätet. Anledningen till att jag började med de som var gratis var för att det skulle vara enklare att

(17)

hämta hem och testa de innan jag bestämt mig för vilket jag skulle använda. Det fanns även väldigt många bra alternativ som var gratis och därför fanns det inget behov av att titta på betalversioner.

Först jämfördes själva utseendet på de olika exempelgraferna som fanns tillgängliga. SESNordic efterfrågade en graf som hade ett modernt utseende och inte alls liknade de grafer som går att skapa i t.ex. Excel. Sedan jämfördes även de olika funktioner som erbjöds av biblioteken t.ex. att de kunde skapa både cirkel och stapeldiagram, kunde spara graferna som bilder för att användas i

resultatrapporten, vilka färger som gick att använda samt andra finesser. Olika exempel på grafer visades för handledaren så att vi tillsammans kunde välja bort vissa bibliotek.

Till sist valdes tillsammans med handledaren att använda biblioteket pChart. Anledningen till att det blev just pChart var främst utseendet på graferna och att det fanns alla funktioner som behövdes.

Det var även väldigt enkelt att använda, fanns bra dokumentation och exempel på hur graferna skapas samt att det gick att påverka utseendet mycket själv.

3.2.3 Utseende och funktionalitet

Det fanns inga stora krav på utseendet av applikationen utan det var dess funktion som var det viktiga. Därför skapades bara en väldigt enkel meny för att navigera runt i applikationen samt att SESNordics logotyp sattes som sidhuvud. Målet har hela tiden varit att hålla det enkelt med tydliga rubriker och enbart de nödvändigaste valen för att det sedan ska gå fort att göra resultatrapporterna.

Koden är skriven så att den ska vara enkel att förstå och följa för att underlätta eventuell

vidareutveckling av applikationen av andra personer. I Figur 3 visas strukturen på applikationen och hur de olika filerna samverkar. En pil till en fil betyder att den filen påverkas av den andra filen. Till exempel är filen header.php inkluderad i alla filer som visar något resultat på skärmen eftersom applikationens meny finns i den filen.

Figur 3. Översikt över applikationens struktur.

(18)

9 Metod

För att applikationen skulle kunna spara vissa inställningar som t.ex. företagets information och mejlserver skapades en PHP fil där dessa inställningar sparas i variabler. Denna fil, settings.php, skrivs över med den nya informationen när några ändringar har gjorts via sidan configuration.php. För att komma åt dessa variabler inkluderas filen i andra filer där några sparade inställningar behövs och då kan alltså variablerna som finns i settings.php användas.

3.2.4 Inläsning från Excelfiler

Eftersom PHP inte har något inbyggt stöd för att läsa in data från Excelfiler valdes att använda ett befintligt bibliotek för att göra detta. De krav som fanns på biblioteket var att det skulle vara enkelt att använda och resurssnålt. Efter att ha letat på Internet hittades bara ett alternativ och det var PHP-ExcelReader.

PHP-ExcelReader är ett öppet källkodsprogram som är fritt att använda. Av de recensioner som fanns om biblioteket verkade det passa behovet och fungera bra. Filerna laddades ned och testades för att se om det fungerade och det gjorde det. Eftersom inget annat alternativ funnits bestämdes att detta skulle användas i applikationen.

3.2.5 Beräkningar av data

När grafbiblioteket var valt samt att data kunde läsas in från Excelfilerna behövdes det bestämmas vad graferna skulle visa samt hur dessa beräkningar skulle göras. I början gjordes beräkningarna i Microsoft Excel för att enklare kunna se resultatet direkt i grafer och för att inte skriva en massa kod innan det var bestämt hur beräkningarna skulle ske.

3.2.5.1 Den första grafen – Fördelning av placeringar

I den första grafen valdes att visa hur många placeringar kunden hade inom vissa rankingintervall.

Detta skulle då visas i ett stapeldiagram med en stapel för varje datum. För den grafen krävdes det inga egentliga beräkningar utan applikationen läser bara in placeringarna för alla sökord och sorterar dessa i intervallen. Ett litet exempel på hur det ser ut visas i Tabell 2 där listan med sökord finns till vänster tillsammans med ordets ranking. Dessa sorteras då in i intervallen som ses i den högra tabellen och då blir resultatet antalet placeringar inom dessa intervall.

Tabell 2. Exempel på sortering av rankingdata för den första grafen.

Exempeldata Exempelresultat

Sökord 1 1 Rank 1 3 (38 %)

Sökord 2 3 Rank 2-10 1 (13 %)

Sökord 3 14 Rank 11-20 2 (25 %)

Sökord 4 1 Rank 21-30 0 (0 %)

Sökord 5 48 Sökord 6 1 Sökord 7 17 Sökord 8 -

För att se hur stor andel av det totala antalet sökord som ligger inom dessa intervall räknades sedan resultatet om till procent genom att ta antalet dividerat med det totala antalet sökord (3/8 = 0,375 ≈ 38 %). Det är alltså detta som visas inom parentes i exempelresultatet i Tabell 2.

(19)

Denna graf visas först i resultatrapporten eftersom det ger en tydlig bild av vad som händer i topp 30 och specifikt rank 1 placeringar. Eftersom rank 1 placeringar är värda mycket mer än övriga är det intressant att se det resultatet separat. De övriga intervallen är sedan indelade efter första, andra och tredje sidan i sökresultatet eftersom det är de som är mest intressant för kunden att se.

3.2.5.2 Flera sökmotorer

Vissa företag vill se data från flera olika sökmotorer och då läses data in enskilt för de olika sökmotorerna först och sedan beräknas medelvärdet av dessa för att få ett genomsnittligt värde.

Medelvärdet beräknas alltså som summan av antalet placeringar inom ett visst intervall för alla sökmotorerna dividerat med antalet sökmotorer. Detta visas sedan i grafen.

SESNordic ville också att det skulle gå att se värdena för de enskilda sökmotorerna ifall det fanns intresse av en särskild sökmotor. Vi kom då tillsammans fram till att visa detta i en tabell under grafen eftersom det skulle bli alldeles för rörigt att visa detta i bara en graf.

3.2.5.3 Den andra grafen – Summering av rankdata

Den andra grafen skulle vara en sorts summering av alla placeringar där rankingarna viktas. Med en sådan graf skulle det gå snabbt att se hur kunden ligger till som helhet. När rankingarna skulle viktas utgicks det från undersökningarna om CTR och därför har rank 1 ett väldigt stort värde som sedan snabbt sjunker med rankingen. Detta är ingen exakt beräkning men det ger en bra fingervisning om vad som skett med placeringarna när flera tidpunkter jämförs med varandra.

Tabell 3. Värden för olika rankingintervaller.

Precis som med den första grafen har alltså placeringarna läst in och sorterats i intervall där varje intervall har ett eget värde som visas i Tabell 3 ovan. Antalet placeringar inom varje intervall multipliceras med intervallets värde och sedan summeras allting. Istället för att visa denna

totalsumma i grafen beräknades hur stor andel det var av en tänkt maxsumma som består av enbart rank 1 placeringar (totalt antal sökord multiplicerat med värdet för rank 1).

Värdena som är satta betyder alltså inget utan det är bara valt så att en rank 1 placering är betydligt mer värd än t.ex. en rank 50 placering. Detta gör alltså att en rank 1 placering kommer att påverka totalsumman betydligt mer än övriga just för att en rank 1 placeringar är betydligt mer värd.

Precis som med första grafen beräknas medelvärdet ifall data för flera olika sökmotorer är inlästa men i detta fall visas inte någon tabell för de enskilda sökmotorerna för det var inte aktuellt.

3.2.5.4 Konkurrenter

Under arbetets gång kom det önskemål från SESNordic att kunna visa en analys av rankingen för kundens konkurrenter i den andra grafen. Denna punkt lades då till i kravspecifikationen. Då skulle applikationen kunna läsa in data från en CSV-fil istället eftersom det var den enda möjligheten i deras nuvarande analysprogram för att få med konkurrenternas ranking för de utvalda sökorden. Om CSV- filer matas in läser applikationen in data för kundens konkurrenter också och deras totalsumma beräknas på samma vis som för kunden men det visas i grafen som linjer istället. På det viset är det tydligt hur kunden ligger till som helhet i jämförelse med sina konkurrenter.

Rank 1 2-10 11-20 21-30 31-100

Värde 100 40 10 5 1

(20)

11 Metod

3.2.5.5 Den tredje grafen – Total fördelning av placeringar

I den sista grafen visas den totala fördelningen av alla sökord. Det är alltså beräknat på samma vis som i den första grafen men med andra intervall. Anledningen till att det är andra intervall är för att inte visa samma resultat igen som i den första grafen utan nu skulle ett mer sammanfattande resultat kunna ses men ändå med en tanke på vad som är intressant för kunderna. Med samma exempeldata som i Tabell 2 blir resultatet som det visas i Tabell 4 nedan.

Tabell 4. Exempel på sortering av rankingdata för den tredje grafen.

Exempeldata Exempelresultat

Sökord 1 1 Rank 1-5 4 (50 %)

Sökord 2 3 Rank 6-10 0 (0 %)

Sökord 3 14 Rank 11-30 2 (25 %)

Sökord 4 1 Rank 31-40 0 (0 %)

Sökord 5 48 Rank 41-100 1 (13 %)

Sökord 6 1 Ej rankade 1 (13 %)

Sökord 7 17 Sökord 8 -

Denna graf valdes att sättas som ett cirkeldiagram eftersom nu är alla sökord med och totalsumman blir 100 % vilket blir tydligare i ett cirkeldiagram. Det som är bra med denna graf är att det går att se hur stor andel av samtliga sökord som räknas som inte rankade beroende på antalet resultatsidor som analyserats, vanligtvis upp till topp 100. Dessa lägre placeringar har inte speciellt stor betydelse när det gäller att få trafik till webbplatsen men det visar om sökmotoroptimeringen ger resultat.

3.2.6 Sammanställning av resultatet

När graferna skapas sparas de som JPEG bilder som sedan går att bifoga i HTML koden med en vanlig img-tagg. Rubrikerna och texten till rapportförklaringarna tas från variabler i filen settings.php och kundens namn är inläst från Excel- eller CSV-filen. Allt resultat som visas på skärmen är formaterad med HTML och min stilmall som ligger i filen style.php.

Ifall en tabell över de enskilda sökmotorerna har skapats för den första grafen ligger den som HTML kod i en vanlig textfil, table.txt, och dess innehåll kan enkelt läsas in för att visas i resultatet. Denna textfil skapas av filen graphsFunctions.php i samband med att data läses in och graferna skapas.

Detta fungerar på samma sätt som när inställningarna för applikationen sparas dvs. informationen skrivs ut till en textfil för att sedan kunna användas av en annan fil.

Hela det färdiga resultatet med rubriker, grafer, tabell och rapportförklaringar sparas sedan i en annan textfil som heter recent.txt. Det är i princip allt som ligger inom body-taggen som sparas för att kunna användas senare. Anledningen till att starttaggarna (html, head, title, body) inte sparas är för att de ser olika ut när resultatet visas på skärmen, skickas som mejl eller exporteras till en PDF.

När resultatet visas på skärmen ligger starttaggarna i filen header.php där även menyn till

applikationen finns med. Denna kunde inte användas när resultatet skickas som mejl eller exporteras till PDF eftersom då ska inte menyn vara med. Sedan behövde taggarna utformas olika för mejlet och exporten till en PDF för att få ett bra resultat. Detta för att biblioteket som användes för exporten till PDF enbart accepterade vissa sorters taggar samt att mejlet skulle vara utformat på ett visst sätt för att visas bra i flera olika mejlklienter.

(21)

3.2.7 Mejlfunktionen

När slutresultatet visas på skärmen ligger alltså allt i HTML kod och för att spara arbete används så mycket som möjligt av samma kod också i mejlet. Eftersom jag aldrig tidigare utformat ett HTML mejl visste jag inte vilka krav om fanns på koden för att få ett bra resultat. I det första testet som gjordes prövades att skicka samma kod som används för att visa resultatet direkt i applikationen men det såg verkligen inte bra ut. Efter vissa sökningar på nätet efter guider om hur mejlen ska vara utformade användes sedan främst tips från en artikel på SitePoint (Slavin, 2011).

Det som är den stora skillnaden för HTML mejlet är att allt är placerat i en tabell och sedan i flera undertabeller och den information som tidigare låg i stilmallen ligger nu istället som attribut till dessa tabeller. Detta var enligt guiden av Slavin (Slavin, 2011) och då blev resultatet bättre.

I PHP finns det inbyggt stöd för att skicka mejl men den klarar inte av att skicka SMTP mejl med auktorisering och det krävdes för att SESNordic skulle kunna skicka från sina egna mejladresser. Att det skickas med auktorisering betyder alltså att lösenordet till mejlkontot krävs. Istället användes olika paket från PEAR som är ett bibliotek med massor med tillägg och applikationer med öppen källkod till PHP. Paketen som hämtades hem var Mail, Mime, SMTP och Socket.

När mejlet ska skickas får användaren välja avsändaradress, mejlets mottagare samt ev. kopior.

Ämnesraden till mejlet har en standard som finns satt i inställningar men den går att ändra för varje gång också om det finns behov av det. Det finns även en meddelanderuta för att det ska vara möjligt att skriva en kort analys av resultatrapporten eller något annat meddelande till kunden. Detta meddelande läggs då först i mejlet innan själva resultatrapporten.

Ifall mejlklienten inte kan hantera HTML mejl kommer enbart ett kort meddelande visas där det står att innehållet inte kan ses. Detta är för att SESNordic inte ville göra en textversion av

resultatrapporten utan om kunden inte kan ta emot HTML mejl skickar de den som en PDF-fil istället.

3.2.8 Exportering till en PDF-fil

I PHP går det att skapa PDF-dokument med befintliga funktioner men de var inte tillräckliga eftersom texten skulle vara formaterad med HTML samt ha med bilder. Därför behövdes ett bibliotek som kunde exportera HTML till PDF och precis som tidigare söktes det efter ett gratis program med öppen källkod. Först testades ett bibliotek som heter HTML2PDF men kvalitén på bilderna blev inte bra nog.

Därför provades dompdf istället men det blev inte heller bra.

Problemet var att graferna såg suddiga ut i den färdiga PDF-filen men det fanns ingen förklaring till varför det blev så. Efter viss experimenterande med lite olika inställningar i dompdf och även i pChart för graferna men det blev inte bättre. Tillslut kom det fram att problemet var en inställning i Adobe Reader, programmet som användes för att öppna PDF-filen. Graferna sparas som JPEG bilder med 96 DPI, dots per inch eller bildpunkter per tum, och det är det som är standard i de flesta webbläsare.

Därför ser graferna bra ut i applikationen men suddigt i Adobe Reader eftersom den var inställd på 110 DPI. När den inställningen i programmet ändrades blev bilderna precis som de skulle vara.

Eftersom detta är en inställning i en annan programvara ansågs att det inte fanns något att ändra i applikationen. Ifall en kund funderar över det så finns en lösning till problemet och det fick räcka.

Skillnaden i HTML koden som exporteras till en PDF jämfört med den som mejlas är attributen till taggarna eftersom nu ska koden vara anpassad till en A4 sida.

(22)

13 Resultat

4 Resultat

I denna del visas exempel på hur det färdiga resultatet fungerar och ser ut. I alla exempelfigurer har kundens och konkurrenternas riktiga namn ersatts med generella namn.

4.1 Välj filer

Själva utseendet på applikationen består av att SESNordics logo visas längst uppe i vänstra hörnet och under den finns menyn för applikationen. Den första sidan i applikationen är en enkel sida där det finns tre rutor för att välja att läsa in tre filer. Data som läses in kommer att presenteras i den ordning som filerna är valda så för bästa resultat så ska de ligga i rätt ordning tidsmässigt och data från den senaste tidpunkten ska ligga i Fil 3. Ifall filerna är valda i fel ordning så kommer det synas tydligt i graferna eftersom datumen ligger i fel ordning. Denna sida finns i menyn under Välj filer och består av sidan index.php som syns i applikationens struktur i Figur 4. Ifall filerna innehåller data för prioord finns det en kryssruta att fylla i som då ger en annan rubrik i slutresultatet där det anges att det enbart är resultatet för prioord som resultatrapporten visar.

Figur 4. Startsidan där användaren väljer filer att läsa in.

4.2 Se resultatet

När användaren tryckt på knappen Läs in filer kommer applikationen att läsa in data från dessa filer och rita upp graferna. Ifall det är Excel-filer som valts kommer applikationen att länkas till filen graphs.php och om det är CSV-filer blir det filen graphsCSV.php. Dessa filer visar inget resultat på skärmen till användaren utan resultatet av beräkningarna skickas bara vidare. Det är i dessa filer som koden för att läsa in data finns och sedan anropas funktioner från filen graphsFunctions.php för att skapa graferna och tabellen. Filen graphsFunctions.php använder även filen graphsSettings.php eftersom där ligger alla inställningarna för hur graferna ska visas, dess utseende med mera. Se Figur 3 för att se applikationens struktur igen.

Filerna som väljs att läsa in kommer först att laddas upp till den lokala webbservern och läggas i samma mapp som applikationens filer ligger i men när allt data är inläst tar applikationen bort filerna. Detta är för att det inte ska sparas gamla filer som tar upp plats på webbservern.

(23)

När alla grafer är färdiga skickar applikationen vidare kundens namn samt om resultatrapporten gällde prioord eller inte till resultatsidan result.php där allting sammanställs och sedan visas på skärmen. Sidan finns även i menyn under Se resultatet och har inga nya filer lästs in kommer det senaste resultatet att visas på denna sida som i Figur 5. När det senaste resultatet visas läses det in från textfilen recent.txt och det var en bra funktion att ha eftersom då är den senaste

resultatrapporten alltid tillgänglig ifall den skulle behövas igen.

Figur 5. Resultatsidan där senaste resultatet visas.

Själva resultatet består av tre stycken grafer och eventuellt en tabell. Den första grafen Fördelning av placeringar som finns i Figur 6 visar hur många procent av det totala antalet sökord som är placerade inom vissa rankintervall. I detta fall syns det i underrubriken att data från flera olika sökmotorer har använts och då har medelvärdet av dessa beräknats och visas i grafen.

Figur 6. Grafen Fördelning av placeringar.

Det som går att utläsa ur grafen är att från april 2010 till oktober 2011 sker inga större förändringar men till april 2012 har antalet placeringar ökat rejält inom topp 20.

(24)

15 Resultat

Eftersom det i detta fall fanns data från flera olika sökmotorer visas även en tabell där resultatet för de enskilda sökmotorerna listas som i Tabell 5. Det är för att det ska vara möjligt att se om

webbplatsen ligger speciellt bra eller dåligt till i en viss sökmotor. Detta är speciellt till nytta för webbplatser som finns för olika språk där kunderna vill se hur de ligger till i olika versioner av Google som t.ex. svenska eller norska Google. I detta fall är webbplatsen betydligt sämre placerad i Bing.

Tabell 5. Tabell som visar resultatet för enskilda sökmotorer.

I den andra grafen har alltså alla placeringar för webbsidan summerats och sedan beräknats hur stor del det är av en tänkt totalsumma. Den visas i Figur 7 nedan och visar alltså hur företaget ligger till som helhet beräknat på alla sökord. Precis som i den första grafen står det i underrubriken om det är medelvärdet för alla sökmotorer som visas eller enbart för en enskild sökmotor.

Figur 7. Grafen Summering av rankdata.

Det är även i denna graf som data för konkurrenterna kan visas precis som i Figur 9. När data för konkurrenterna ska användas läses det in från CSV-filer och i dessa filer framgår det inte vilket av företagen som är kunden. Därför läser applikationen först in alla företagsnamn och användaren får själv välja kundens namn från en lista som den i Figur 8.

Figur 8. Här väljs det vilket företag som är kund när data för konkurrenter läses in.

(25)

Istället för att visa konkurrenternas resultat som staplar visas det som heldragna linjer. Anledningen till det är för att resultatet inte blev lika tydligt om det visades som staplar. Det är ofta data för väldigt många konkurrenter som läses in och då blir väldigt många staplar som skulle behöva vara väldigt smala för att få plats i grafen. På det här viset är det ändå kundens resultat som är i fokus eftersom det syns tydligt som stora staplar och sedan går det att jämföra deras resultat med konkurrenterna också på ett tydligt sätt.

Figur 9. Grafen Summering av rankdata med konkurrentdata också.

Färgerna på konkurrenternas linjer valdes så att de skulle vara lätta att urskilja men om det är många konkurrenter som ligger väldigt när varandra blir det lite rörigt. Fast det viktiga var inte att exakt kunna se var varje enskild konkurrent låg utan mer kunna se vilken av dem som sticker iväg.

I den sista grafen visas den totala fördelningen av placeringarna dvs. alla sökord är med, även de som inte ligger på topp 100. De data som visas i Figur 10 nedanför är samma data som även finns i Figur 6 tidigare. I den förra figuren visas bara hur fördelningen ser ut i topp 30 medan det i denna figur visas den totala fördelningen.

Figur 10. Grafen Total fördelning av placeringar.

Färgerna till cirkeldiagrammet är valda så att det ska vara enkelt att se om det är ett bra resultat eller inte. De gröna färgerna representerar toppen placeringarna, gula färgen är mittenplaceringarna och

(26)

17 Resultat

sedan blir det sämre placeringar med mörkare nyans av orange. Detta för att det skulle vara väldigt tydligt och enkelt att utläsa information från grafen.

Eftersom detta är en resultatrapport som ska skickas ut till kunder behövdes även en kort beskrivning av graferna i resultatrapporten så att kunderna förstår vad det är som visas. Denna beskrivning visas sist i resultatet och består av några rader per graf. Beskrivningarna finns att läsa i Bilaga B där ett exempel på hela resultatrapporten visas.

Denna applikation var främst tänkt att användas med tre filer som indata där startpunkten jämförs med en senare tidpunkt samt en som representerar nuläget. Fast i vissa fall finns det bara en eller två stycken filer att utgå ifrån t.ex. om det är en ny kund. Därför är applikationen byggd så att den kan läsa in data från enbart en eller två filer också samt visa detta på ett liknande sätt.

Figur 11. Graferna med enbart en fil som indata (graferna åt vänster) eller två filer (höger sida).

Det blir inga stor skillnader i graferna utan det är antalet staplar och storleken på staplarna som är annorlunda samt att placeringen på cirkeldiagrammen ändras. I den graf där konkurrenternas data visas blir markeringen för konkurrenterna enbart en punkt när bara en fil lästs in.

Detta var inget som var specificerat bland kraven från start men det var inte heller svårt att ordna.

De flesta av skillnaderna som syns sker automatiskt eftersom mindre data skickas till funktionerna som ritar graferna. Det som behövdes ändras var hur konkurrenterna visas när enbart en fil lästs in samt hur positionen på cirkeldiagrammen ändras men det gick väldigt snabbt.

(27)

4.3 Mejla resultatet

När resultatet ska skickas till kunden går användaren till menyn och väljer Mejla resultatet. Då visas formuläret som finns i Figur 12 som det bara är att fylla i och sedan skicka iväg. I den första rutan ska kundens adress fyllas i och sedan finns det två rutor för kopior. Det går att skicka fler kopior också om mejladresserna separeras med kommatecken i rutan. Avsändaren väljs från en lista med redan inlagda adresser som lagts in från Inställningar. Ämnesraden är ifylld med standardämnet som också är satt i inställningarna men det går att ändra för varje mejl också ifall det behövs.

Figur 12. Formulär att fylla i för att sända resultatet som mejl.

4.4 Exportera till PDF

När resultatrapporten ska exporteras till en PDF generaras PDF-filen direkt och resultatet visas på skärmen i webbläsaren. Det ska sedan finnas en meny för att hantera PDF-filen, denna meny kan se olika ut beroende på vilken webbläsare som används. I Chrome så visas menyn i det nedre högra hörnet som i Figur 13 och där går det att klicka på Spara som vilket är knappen som ser ut som en diskett. Då visas en ruta där namnet på filen kan ändras från standarnamnet RankAnalys samt att det går att bestämma var filen ska sparas. Detta är bara ett exempel på hur det kan se ut eftersom det varierar beroende på vilken webbläsare och operativsystem som används.

Figur 13. Exempel på hur PDF-filen sparas.

(28)

19 Resultat

4.5 Inställningar

På sidan Inställningar går det enbart att göra de mest grundläggande inställningarna i applikationen.

De övriga inställningarna är enkla att ändra i koden men tanken var att vissa ändringar skulle vara tillgängliga även för någon som inte kan PHP.

Figur 14. Översikt av valet Inställningar.

Som Figur 14 visar är det information om företaget och inställningar för mejlen som går att ändra.

Informationen om företaget är det som syns i sidfoten av resultatrapporten, se Bilaga B. Saker som företagsnamn, adress och webbplats är inte troligt att det kommer att ändras inom en snar framtid men det kan tänkas att de kanske vill ta bort informationen helt från resultatrapporten och då går det att göra här. Ifall logotypen skulle ändras är det enkelt att ladda upp en ny bild som sedan kommer användas i applikationen och resultatrapportens sidhuvud. Denna bild flyttas till webbservern och sparas i samma mapp som applikationens filer.

Den inställning som troligtvis kommer att användas mest i början är att lägga till avsändaradresser men det behövs bara göras en gång för att det ska vara sparat. Även om den här sidan inte kommer att användas särskilt mycket var det bra att ha med den för då finns det en stomme att bygga på ifall det finns behov av att lägga till fler inställningar sedan.

4.6 Licenser

De bibliotek som använts till applikationen är släppta under ett par olika licenser som är GNU GPL, LGPL, PHP licensen samt BSD licensen. Dessa licenser säger mest vad som gäller ifall applikationen ska användas för kommersiellt bruk eller släppas fritt till allmänheten och det är inte aktuellt i dagsläget. Eftersom applikationen inte kommer att distribueras på något vis utan den kommer bara att användas internt på SESNordic påverkas applikationen inte av licenserna. Hur resultatrapporten används berörs inte av licenserna eftersom de enbart rör källkoderna.

Om applikationen ska distribueras i framtiden måste licenserna tas hänsyn till och ev. måste licenser för vissa av biblioteken köpas eller ansökas om. För vissa av licenserna krävs det bara att speciella dokument som beskriver licensen med mera är bifogad i applikationen. Detta var inte aktuellt under arbetet med applikationen utan det var tillräckligt att undersöka vad som gällde för att använda applikationen internt.

(29)

5 Analys

Här utvärderas applikationen och dess funktioner samt att åsikter från kunder som fått ta del av resultatrapporten förs fram samt synpunkter från SESNordic.

5.1 Test av applikationen

För att testa applikationens funktion har resultatrapporter av flera olika indata skapats. Även försök med att mata in felaktiga filer och på andra sätt använda applikationen på ett felaktigt sätt är gjorda.

Felhantering var inte speciellt viktigt i detta fall eftersom det är få personer som kommer att använda applikationen och det är få val vilket gör det svårt att använda applikationen på fel sätt.

Figur 15. Exempel på felmeddelande och bekräftelser från applikationen.

De felmeddelanden som kan dyka upp är om det är fel filändelse på t.ex. loggan eller att det inte är en Excel- eller CSV-fil som försöks ladda upp. Sedan skriver applikationen ut en bekräftelse på att ändringarna är sparade om någon inställning är ändrad och att mejlet blivit sänt så att användaren ser att valet har lyckats. Skulle något ha blivit fel med mejlet visas det också som ett felmeddelande.

Applikationen är inte utformad på så vis att den kollar att filerna som användaren matar in verkligen innehåller det som applikationen förväntar sig. Det fanns inget behov att lägga till någon sådan felhantering eftersom det syns tydligt i resultatet om något inte stämmer samt att det är de anställdas uppgift att se till så att det är rätt data som laddas in till applikationen.

Det har inte framkommit några större buggar i applikationen under de tester som körts hittills utan de fel som framkommit har gått enkelt att ordna under utvecklingen av applikationen. Ett större problem som framkommit är att viss skuggning i graferna försvinner, se Figur 16 nedan. Pilarna i figuren pekar på de staplar som har tappt sin skuggning av någon anledning.

(30)

21 Analys

Figur 16. Exempel på en bugg i applikationen.

Detta problem framkom sent under arbetet och därför fanns det ingen tid till att hitta en lösning på det. Det har bara blivit på det här viset med data för en viss kund och det är bara en av de tre filerna som är valda som skapar problemet. Antagligen är det något tecken som finns i indatat men som inte syns som orsakar problemet eftersom det försvann om indatat modifierades.

Eftersom det bara är utseendet som påverkas och det inte verkar uppstå för all sorts indata är det inte en bugg som är prioriterad att lösa direkt utan det får ske senare när det finns tid.

Resultatrapporten går ändå att skicka ut då skuggningen inte påverkar själva resultatet.

5.2 Synpunkter från kunder

För att få in synpunkter från riktiga kunder skickades resultatrapporten ut med en kort förklaring om examensarbetet till några utvalda kunder. Även en länk till formuläret i Bilaga C skickades med. Syftet var att se om resultatrapporten verkligen var så enkel att förstå som det var meningen samt om kunderna tyckte informationen var intressant och användbar.

Det första svaret som kom in var väldigt negativt och därför skrevs rapportförklaringarna om innan resterande resultatrapporter skickades ut. Då blev det betydligt bättre svar och kunderna verkade förstå vad resultatrapporten ville visa. Alla svaren finns att se i Bilaga D.

Det var sent under arbetets gång som det bestämdes att denna undersökning skulle genomföras men tyvärr var det för sent för att hinna skicka ut ett större antal testrapporter samt hinna få svar.

5.3 Synpunkter från SESNordic

SESNordic är nöjda med den färdiga applikationen och anser att både syftet och målet med den har uppnåtts. De är även väldigt nöjda med vårt sammarbete och mina kunskaper inom programmering samt applikationsutveckling. (Hansson, 2012)

5.4 Egna synpunkter

Det som har varit svårt med applikationen är att skapa resultatrapporten för kunderna så att de förstår vad den visar samt att de tycker informationen är intressant. Tanken är att även de som inte är direkt insatta i ämnet ändå ska kunna läsa resultatrapporten och utläsa information från den. För att lösa detta på bästa vis så var kontakten med riktiga kunder ovärderlig eftersom det är de som i slutändan ska använda resultatrapporten och jag hade ingen erfarenhet av vad som är intressant för dem att se.

(31)

6 Slutsatser

Jag är väldigt nöjd med den färdiga applikationen och hur arbetet med den har gått. Jag har kunnat kryssa av alla punkter på den kravspecifikation som vi satte upp vid arbetets början och under den tid som var planerat. Det var nog främst pga. min noggranna planering i början som arbetet har löpt på så bra. Under arbetets gång har jag inte varit noggrann med att fylla i planeringen varje dag som är praxis inom Scrum men jag har ändå haft bra kontroll över hur jag ligger till tidsmässigt hela tiden.

Det jag hade kunna göra bättre är främst strukturen på PHP-koden som jag inte tror är optimal. Jag har bl.a. använt mig av ett stort antal for-loopar för att sortera in data i olika fält men det finns säkert en bättre lösning på detta. Trots det verkar applikationen vara effektiv även om filerna innehåller ett stort antal sökord och under testningen av applikationen tycker jag att alla beräkningar har skett tillräckligt snabbt.

Ett annat problem är hur applikationen fungerar vid samtidigt användning. Det är inget som testats eftersom det inte är klart ännu var applikationen kommer att ligga eller hur den ska användas av de anställda. Eftersom applikationen använder sig av bilder och filer som sparas på servern kommer dessa att uppdateras för varje ny resultatrapport vilket gör det omöjligt för flera användare att göra resultatrapporter samtidigt i dagsläger. Det kan lösas genom att applikationen tilldelar varje

användare en enskild mapp dit bilderna och filerna sparas men det är något som blir aktuellt sedan när applikationen ska vidareutvecklas.

Jag anser själv att jag har kunnat arbeta väldigt självständigt med applikationen samt komma med egna initiativ och förslag vilket min handledare också håller med om. (Hansson, 2012) Det är något som jag lärt mig av min utbildning eftersom den har skett på distans vilket kräver planering och strukturering av arbetet på ett bra sätt. Mer som jag har haft nytta av från min utbildning är mina kunskaper om PHP, HTML och Scrum.

I det stora hela har arbetet varit väldigt intressant och jag har lärt mig mycket nytt främst inom sökmotoroptimering. Det som känns mest givande är att min applikation kommer att användas på riktigt av de anställda på SESNordic och resultatrapporten av deras kunder. Det var en stor anledning till varför jag valde att göra mitt examensarbete på SESNordic just för att slutprodukten skulle komma till användning och underlätta arbetet för de anställda.

7 Fortsatt arbete

Nu den närmaste tiden ska applikationen börja användas för testrapportering till kunder för att se om eventuella justeringar bör göras. Det finns planer på att fortsätta utveckla programvaran då i första hand utifrån de synpunkter som kommer in från kunderna. Sedan finns det andra planer på att utöka applikationen för att användas som stöd för säljarna på SESNordic och koppla samman den med Googles API samt få in sökstatistik från Google och andra sökmotorer. (Hansson, 2012)

Eftersom jag har blivit erbjuden anställning på SESNordic efter avslutat examensarbete kommer jag fortsätta vara delaktig i hur applikationen används och utvecklas vilket känns väldigt roligt.

(32)

23 Litteraturförteckning

8 Litteraturförteckning

Carson, B., 2012. Downloads - dompdf - HTML to PDF converter. [Online]

Tillgänglig på: http://code.google.com/p/dompdf/downloads/list [Använd 23 April 2012].

EasyPHP, u.d. EasyPHP | A quick starter guide for PHP developers : how to use PHP and how to create a PHP file.. [Online]

Tillgänglig på: http://www.easyphp.org/introduction.php [Använd 9 Maj 2012].

EasyPHP, u.d. EasyPHP | Download EasyPHP : Get the latest version of WAMP package EasyPHP (PHP 5, Apache 2, MySQL 5, PhpMyAdmin, Xdebig... + modules). [Online]

Tillgänglig på: http://www.easyphp.org/download.php [Använd 26 Mars 2012].

GNU Operating System, u.d. A Quick Guide to GPLv3 - GNU Project - Free Software Foundation (FSF).

[Online]

Tillgänglig på: http://www.gnu.org/licenses/quick-guide-gplv3.html [Använd 26 April 2012].

GNU Operating System, u.d. GNU Lesser General Public License v3.0 - GNU Project - Free Software Foundation (FSF). [Online]

Tillgänglig på: http://www.gnu.org/copyleft/lesser.html [Använd 26 April 2012].

Goodwin, D., 2011. Top Google Result Gets 36.4% of Clicks [Study] - Search Engine Watch (#SEW).

[Online]

Tillgänglig på: http://searchenginewatch.com/article/2049695/Top-Google-Result-Gets-36.4-of- Clicks-Study

[Använd 21 Mars 2012].

Google AdWords, 2011. Clickthrough rate (CTR) - AdWords Help. [Online]

Tillgänglig på:

http://support.google.com/adwords/bin/answer.py?hl=en&answer=107955&from=6305&rd=1 [Använd 9 Maj 2012].

Google, u.d. Google Drive. [Online]

Tillgänglig på: https://drive.google.com [Använd 2 Maj 2012].

Hansson, R., 2012. Etisk Sökmotoroptimering SEO, Sökstrategier och Sökoptimering. [Online]

Tillgänglig på: http://www.sesnordic.se/nyheter-pressmeddelanden/etisk-sokmotoroptimering-seo- sokstrategier-sokoptimering-rebecca-hansson-senior-search-strategist-sesnordic/

[Använd 20 Mars 2012].

Hansson, R., 2012. Synpunkter om applikationen [Intervju] (11 Maj 2012).

Kniberg, H., 2007. Scrum and XP from the Trenches, u.o.: C4Media.

(33)

Loskutov, A., 2011. FileSync plugin for Eclipse. [Online]

Tillgänglig på: http://andrei.gmxhome.de/filesync/

[Använd 26 Mars 2012].

Open Source Initiative, u.d. Open Source Initiative OSI - The BSD 3-Clause License | Open Source Initiative. [Online]

Tillgänglig på: http://opensource.org/licenses/BSD-3-Clause [Använd 8 Maj 2012].

Optify, 2011. The Changing Face of SERPs: Organic Click Through Rate Curve. [Online]

Tillgänglig på: http://www.optify.net/guides/organic-click-through-rate-curve [Använd 21 Mars 2012].

Pan, B. o.a., 2007. In Google We Trust: Users' Decisions on Rank, Position, and Relevance. [Online]

Tillgänglig på: http://jcmc.indiana.edu/vol12/issue3/pan.html [Använd 22 Mars 2012].

Pogolotti, J.-D., 2011. pChart 2.0 - a PHP charting library. [Online]

Tillgänglig på: http://www.pchart.net/download [Använd 26 Mars 2012].

SESNordic AB, u.d. Etisk Sökmotoroptimering SEO. Sökmotoroptimering med RESULTAT | SES.

[Online]

Tillgänglig på: http://www.sesnordic.se/vara-tjanster/etisk-sokmotoroptimering-seo/

[Använd 20 Mars 2012].

Slavin, T., 2011. How to Code HTML Email Newsletters Article - SitePoint. [Online]

Tillgänglig på: http://www.sitepoint.com/code-html-email-newsletters/

[Använd 24 April 2012].

The Eclipse Foundation, 2009. PHP Development Tools (PDT) - Downloads. [Online]

Tillgänglig på: http://www.eclipse.org/pdt/downloads/

[Använd 26 Mars 2012].

The PHP Group, 2010. Mail. [Online]

Tillgänglig på: http://pear.php.net/package/Mail/download [Använd 24 April 2012].

The PHP Group, 2010. Net_Socket. [Online]

Tillgänglig på: http://pear.php.net/package/Net_Socket/download [Använd 24 April 2012].

The PHP Group, 2011. Net_SMTP. [Online]

Tillgänglig på: http://pear.php.net/package/Net_SMTP/download [Använd 24 April 2012].

The PHP Group, 2011. PEAR. [Online]

Tillgänglig på: http://pear.php.net/package/PEAR/download [Använd 24 April 2012].

(34)

25 Litteraturförteckning

The PHP Group, 2012. Mail_Mime. [Online]

Tillgänglig på: http://pear.php.net/package/Mail_Mime/download [Använd 24 April 2012].

The PHP Group, u.d. PHP: License Information. [Online]

Tillgänglig på: http://www.php.net/license/distrib-guidelines-code.php [Använd 9 Maj 2012].

The PHP Group, u.d. PHP: What is PHP? - Manual. [Online]

Tillgänglig på: http://se2.php.net/manual/en/intro-whatis.php [Använd 9 Maj 2012].

Tkachenko, V., 2007. PHP-ExcelReader - Browse Files at SourceForge.net. [Online]

Tillgänglig på: http://sourceforge.net/projects/phpexcelreader/files/

[Använd 27 Mars 2012].

(35)

9 Bilagor

Bilaga A – Begrepps- och ordförklaringar

Detta är en lista med ord och begrepp som jag använder i denna rapport och som kan behöva en mer ingående förklaring.

BSD-licensen – Denna licens finns i olika versioner men det som är gemensamt med dem är att det är fritt att ändra i koden och använda i andra applikationer och sedan släppa fritt under andra

licensformer eller sälja. De enda kraven är att det ska bifogas text om upphovsrätten i koden. (Open Source Initiative, u.d.)

CSV-filer – CSV står för comma-separated values dvs. värden som är separerade med kommatecken och det är för att filen är uppbyggd på detta vis. I jämförelse med en Excelfil som har sina värden i olika kolumner motsvaras dessa kolumner istället av kommatecken för att skilja värdena.

CTR – CTR står för clickthrough rate eller klickfrekvens. Det beskriver hur stor del av de som ser en annons eller länk som även klickar på den. Ifall en länk är visad 100 gånger och 10 stycken av dem har även klickat på den har länken en klickfrekvens på 10/100 = 10 %. (Google AdWords, 2011)

EasyPHP – EasyPHP är ett gratis programpaket som installerar en lokal server på datorn med PHP och MySQL databas samt att det finns många gratis tillägg att hämta hem också. (EasyPHP, u.d.) Det behövs ett program som detta när arbetet med att utveckla PHP-filerna sker lokalt eftersom PHP måste köras från en webbserver. Det är alltså inte som en vanlig HTML-sida som går att skapa själv i en vanlig textredigerare och sedan öppna i en webbläsare.

Eclipse – Det går att skapa PHP-filer i en vanlig textredigerare men fördelen med att använda ett program som Eclipse som utvecklingsmiljö är att den visar vissa varningar om det finns fel i koden, koden kan formateras så att den blir lättare att följa, länkar till dokumentation av funktioner visas med mera. Eclipse finns i flera olika versioner och är anpassad för olika programmeringsspråk eller skriptspråk. Det finns även ett stort antal tillägg som är gratis att använda och som kan vara till stor hjälp. Den version som jag använde heter Eclipse PDT och är anpassad för PHP.

GNU GPLv3 – GNU General Public License version 3 är en licens som används ofta vid spridningen av gratis programvara. I stora drag säger den att programvara som är släppt under denna licens är fritt att använda, ändra i och fortsätta sprida samt att den alltid kommer att fortsätta vara det. (GNU Operating System, u.d.)

GNU LGPL – GNU Lesser General Public License är en annan licens som används med fri programvara.

Skillnaden mellan LGPL och GPL är att program som är släppta under LGPL är tillåtna att inkludera i program som sedan inte släpps under denna licens. Detta är alltså inte tillåtet under GPL där tanken är att programvaran alltid ska fortsätta släppas under samma licens. (GNU Operating System, u.d.) Inbäddad HTML/Embedded HTML – I detta fall har jag använt inbäddad HTML i mejlet som skickas ut från applikationen. Det betyder helt enkelt att istället för att skicka ett vanligt mejl med enbart text har jag formatterat mejlet med HTML. Det är för att få ett snyggt resultat med bilder och tabell i mejlet. Det är inte alla mejlklienter som stödjer HTML mejl eftersom det finns vissa säkerhetsrisker med det och därför är det standard att även skicka med en textversion av mejlet.

References

Outline

Related documents

2 Visa fl iken Fält (Fields) och klicka på något av alternativen i gruppen Lägg till och ta bort (Add & Delete) för att lägga till ett fält av mot- svarande datatyp. 3

Även om elevens lösningar på andra problemlösningsuppgifter inte kunde synliggöra alla av Krutetskiis matematiska förmågor som avsågs att synliggöras var elevens

Detta kan förklara de stora procentuellmässiga skillnaderna i utdelningarna som studien tittat på där resultatet för ett bolags utdelning över en konjunkturcykel ofta är

Hilton HHonors anknutna hotell hade även det stora globala närverket till förfogande vilket gjorde att kunden kunde ta ut poängen på exempelvis Maldiverna eller New York 30..

Vi är skeptiska till mervärdet med ursprungsgarantier för värme då det i praktiken inte finns någon risk för "dubbelräkning" av förnybar värme i de mer än 500 lokala

bosatt i Motala, mannen folkskole- och ämneslärare bosatt på Terrassgatan 10 i Motala [Ola Lönnqvist] [Ur mapp innehållande från Karin Lilja Lennermark diverse handlingar om Carl

Belysning god under mörker totalt men mer i högre nivår - kontinuerlig belysning längs med gatan med hängande lampor från ena sidan till andra - men mer tänkt för bilen - dock ger

Men om fel skulle förekomma så beklagar vi detta och ni får hemskt gärna påpeka detta så vi kan ändra felet eller lägga till nya