Ska du vara relevant i morgon behöver du förstå ditt data

Så byggde MittMedia sin nya grundplatta

Magnus Engström
mittmedia
12 min readFeb 21, 2017

--

Digitala produkter är lättflyktiga. I en bransch som under århundraden arbetat med en och samma produkt har det i många avseenden varit ett hårt uppvaknande att inse hur snabbt kundernas fokus kan skifta och hur många aktörer som med enkla medel kan vara med och konkurrera om både användarnas engagemang och pengar.

Läxan vi har lärt oss på MittMedia är att vi måste ha en solid och trygg grund att stå på. En plattform som kan utgöra grunden för vår produktutveckling och som erbjuder en lättrörlighet som uppmuntrar till innovation och konstant förbättring. Något som gör att vi inte alltid måste ligga vakna om nätterna över att vi en dag ska vakna upp och inse att vi har lagt all vår utvecklingstid på en tjänst som under natten har tappat sin relevans. En dataplattform är en produkt som säkerställer att vi har råd att göra fel ofta och snabbt, och som säkerställer att varje omtag kan bygga på de lärdomar vi dragit från vårt tidigare arbete.

I det här inlägget kommer vi att göra en resa genom MittMedias dataplattform, Soldr, som har lånat sitt namn för engelskans ord för att löda, alltså att binda ihop materia. Syftet är att på ett transparent och konkret sätt tydliggöra de olika aspekterna av det digitala ekosystem som utgör Soldr. Det finns många olika perspektiv och skärningspunkter att utgå från för att göra detta, men för att skapa ett tydligt flöde med en början och ett slut har jag valt att utgå från innehållets resa genom kretsloppet och hur användaren interagerar med plattformen.

Del 1. Innehållet

Produktionsflödet

1. Producenten

För att lagra innehåll krävs det producenter. I MittMedias fall finns det en verksamhetsstruktur som definierar de olika rollerna. Beroende på vad innehållet handlar om (och hur det ska presenteras) kan det finnas en rad olika producenter som ska lägga sin hand vid en publicering. För att hantera detta i en organisation i MittMedias storleksordning (cirka 1400 anställda) krävs det verktyg som hjälper till att strukturera innehållet, såsom planeringsverktyg och automatisk hantering av metadata. Vi återkommer till detta under avsnittet “hjälpfunktioner” under nästa flödesbild.

I det här läget behöver vi notera att producenter både kan arbeta i grupp och enskilt. Det är också i här som textrobotarna agerar både som understöd till redaktionen och som fristående producenter.

2. Branschaktören

MittMedia är en mediakoncern med huvudverksamheten inom dagspress, lokaltidningar. Varje dag flödar innehåll in i plattformen från en rad olika källor och publiceras via ett stort antal olika kanaler och plattformar. Inte att förglömma är att utöver de digitala tjänster ska innehållet dagligen även publiceras i över 20 olika tryckta tidningar spridda över landet.

Men en branschaktör kan också utgöras av en enskild producent som skapar innehåll för en eller ett fåtal kanaler. Det kan handla om det lokala initiativet för att hjälpa ortsborna följa fotbollslaget, eller en entreprenör som tycker sig se en lucka där en nischprodukt kan finna sina läsare.

3. Inflöden

Det finns i stora drag tre olika typer av inflöden som plattformen måste ta hänsyn till.

Aracua är MittMedias egna produktionsverktyg, framtagen som en fristående webbapplikation men också djupt integrerat i Soldr. Med Aracua är MittMedia trygga med att medarbetarna jobbar smart genom alla hjälpfunktioner i sitt innehållsskapande, såsom autotaggning, rättstavning, hierarkisk kategorisering, anpassning av medier och inbäddningar och så vidare. Läs mer om utvecklingen av Aracua här.

Det är också möjligt att koppla fristående verktyg som inte är utvecklade med Soldr i åtanke mot innehållslagringen (och dra nytta av samma funktionalitet som i Aracua). Dock kräver detta naturligtvis utveckling i form av adaptrar och hantering av användarroller.

Den tredje typen av innehållskapande bygger på ett rent API-gränssnitt. Detta används redan mycket frekvent i dagsläget, då de robotproducenter MittMedia utvecklat för hantering av bland annat sportinnehåll och väderrapport använder sig av denna typ av lagring. Fullt logiskt naturligtvis, då robotarna mycket sällan behöver dra nytta av de hjälpfunktionerna som ett grafiskt gränssnitt erbjuder.

4. Lagringsgränssnittet

Lagringsgränssnittet är i stora drag det lager där medarbetarens verktyg i bakgrunden gör samma sak som robotproducenten. Innehållet transformeras till ett anrop som servern kan tyda. I Aracua sker detta steg integrerat och i andra verktyg är det möjligt via en adapter.

Innehållslagringen

1. Lagringsgränssnittet

Om du känner igen den här punkten så beror det förhoppningsvis på att det är samma punkt som vi slutade på i flödet innan det vi ser ovan. Det kommer att bli ett tema framåt, där varje flöde startar med samma punkt som flödet innan slutade på. Scrolla upp och läs på om lagringsgränssnittet vid behov, sedan fortsätter vi.

2. Adminstrationsmodellen

Vad är en administrationsmodell? Enkelt uttryckt är det i det här steget som plattformen säkerställer att den som försöker lagra innehållet har rättigheter att göra det. I praktiken sker detta naturligtvis i regel redan när användaren försöker logga in i sitt verktyg, men oavsett om inloggningen gick bra eller inte kommer Soldr ändå att dubbelkolla när innehållet ska sparas i databasen.

För att vi ska hålla den här genomgången på en rimlig nivå kommer jag inte att djupdyka i det administrativa lagret utan stanna vid konstaterandet att det ofta är en återspegling av hur själva verksamheten är uppsatt med rättigheter, hierarkier och samarbeten.

Samma sak gäller normaliseringen som enkelt uttryckt måste innehållet “städas” och formateras på ett sätt så att det är anpassat för att lagras i databasen.

3. Innehållslagringen

När vi rör oss på den här abstraktionsnivån blir själva lagringen en lustigt kort punkt i sammanhanget. Systemet har redan kontrollerat att användaren har rättigheter att spara data, och innehållet är formaterat för att passa i databasen. Det som återstår är att skicka innehållet till databasen, vilket alltså sker här.

4. Hjälpfunktionerna

Detta steg faller under det otacksamma samlingsnamnet hjälpfunktioner. Om vi vill klä funktioner som automatisk kategorisering och taggning av innehåll, förslag på länkar, bildigenkänning och textsammanfattning i någon form av AI-term så är det ofta här det sker i produktionsarbetet.

5. Distributionsgränssnittet

Det är genom detta gränssnitt som de olika produkterna hämtar innehåll till sina användare. Ur ett lagringsperspektiv är det också via detta gränssnitt som systemet skickar ut uppdateringar till andra system som ligger och lyssnar på förändringar i innehållet. Förresten, “ligger och lyssnar” är något av en utvecklarterm och det betyder enkelt att det finns en kö någonstans där allt innehåll placeras. Varje gång detta sker berättar systemet det för alla andra system som är intresserade av att det finns uppdateringar. Skrivare har en dokumentkö, det här är lite samma sak.

Distributionen

1a. Urvalsfunktioner

Kommer du ihåg när jag skrev att upplägget kommer att vara detsamma hela vägen igenom, där den sista punkten i en flödesbild är första punkten i nästa? Vi måste tyvärr göra ett avsteg från det nu.

Vad är egentligen ett distributionsgränssnitt ur ett användarperspektiv? Jag vill nog beskriva det som ett rör genom vilket allt innehåll levereras, men det är även ett filter. Teoretiskt sett skulle sajten allehanda.se kunna hämta precis allt innehåll som publicerats i plattformen, och sedan i sista steget filtrera så att det enbart är aktuella nyheter publicerade av den lokala redaktionen som visas. Men detta vore väldigt ineffektivt. Sajten bör helst inte ansvara för att sortera innehållet, utan den bör istället fokusera på att presentera innehållet för användaren.

Eftersom vi vet att det finns behov av olika typer av filter för innehåll är dessa inbyggda i plattformen. Inte heller detta är specifikt för just nyhetspublicering. Oavsett innehåll finns det i regel ett behov av att styra inte bara vilket innehåll som ska hämtas utan även hur det ska rangordnas. Till exempel om artiklarna ska listas efter kronologi, popularitet eller genom ytterligare ett filter baserat på användarens intressen.

1b. Distributionsgränssnittet

Det är hit produkterna vänder sig för att be om innehåll. I sin förfrågan skickar till exempel en nyhetsapp med parametrar som säger om innehållet på den aktuella sidvisningen ska gälla enbart sport i Örebro, och om det ska listas i kronologisk ordning.

2. Plattformen

I MittMedias fall finns det en publiceringsplattform, Tweakit, som våra produkter står på. Det denna plattform ansvarar för är till exempel att säkerställa att en artikel presenteras på samma sätt oavsett om användaren besöker någon av våra sajter, använder någon av våra mobilappar eller prenumererar på ett av våra nyhetsbrev. Tweakit är alltså det som befinner sig mellan produkten och dataplattformen. I utvecklartermer kallas detta för ett anti corruption layer.

En plattform kan också utgöras av det som brukar klumpas ihop under termen CMS, vilket i grova drag betyder publiceringssystem. MittMedia har inget fullfjädrat CMS eftersom det är ytterst lite tid som läggs på att “hantera startsidorna” numera, efter att de automatiserade urvalsfunktionerna gjort sitt intåg.

Men det måste inte finnas en publiceringsplattform för att hämta innehåll från Soldr, det räcker egentligen med att ha en enskild sajt eller app som är inställd på att i bakgrunden ställa frågor direkt mot plattformen.

Ett annat användningsområde är publicering direkt till andra innehållsplattformar, till exempel Facebook Instant Articles. I det fallet behövs det dock en liten adapter som ansvarar för att ställa innehållsfrågor mot Soldr och sedan presentera svaret på ett sätt som passar Facebooks API.

3. Produkter

När MittMedia pratar om sin produkter handlar det i regel om gränssnittet mellan användaren och dataplattformen. Det är i det här kontexten som besökaren möter innehållet, men det är också här som Soldr möter användaren. Enkelt uttryckt är syftet med en nyhetstjänst att erbjuda en miljö som uppmuntrar till innehållskonsumtion samtidigt som det skapas incitament för att användaren ska vilja berätta mer om sig själv (och i fall med betalinnehåll även betala).

4. Konsumenten

Om vi föreställer oss innehållsplattformen som ett strömmande vattendrag befinner sig producenten längst upp efter bäcken och användaren nere vid mynningen. Detsamma gäller produktutveckling, det är i slutändan användaren som konsumerar utvecklingen. Därefter haltar liknelsen något, eftersom det i samband med konsumtionen också skickas mycket information (både aktivt och passivt) tillbaka i motsatt riktning.

5. Feedbackloopen

Det är väldigt mycket som samlas under denna punkt. Låt oss föregå nästa kapitel lite genom att sammanfatta detta i ett par korta meningar: Det är här processen startar som driver arbetet med att lära känna konsumenten på ett sätt som gör det möjligt att kontinuerligt skapa bättre innehåll och mer relevanta produkter. Det är inte konsumtionen i sig som är mest intressant här utan vart, när och hur den sker.

Del 2. Användaren

Användarupplevelsen

1. Användaren

När vi tittade på flödet för innehåll hette denna punkt “konsumenten”, men nu när vi byter fokus är det bättre att den får bära namnet “användaren”. Det är flödet som startar här som i slutändan hjälper MittMedia att förstå hur innehållet presterar.

Allt som nu följer är en effekt av den tvåvägskommunikation som sker mellan användaren och plattformen. Och istället för “feedbackloopen” kan vi kalla det för “lagring av interaktioner och användardata”.

2. Kundloopen

Detta är en stor punkt. I det här steget bor det en hel marknadsorganisation inom MittMedia, och detsamma gäller de flesta andra stora mediakoncerner. Oftast brukar denna del av organisationen heta privatmarknad eller B2C (Business to consumer). När MittMedia under hösten 2016 sjösatte sitt storskaliga betalinnehållsprojekt var det här utvecklingsarbetet genomfördes.

Precis som det går att utläsa ur ordet loop handlar det om att någonting förväntas komma tillbaka. Mer konkret kan det till exempel handla om att användaren gör en interaktion i form av en betalning och förväntar sig att det som kommer tillbaka är en bekräftelse (“roligt att du har valt att bli kund hos oss!”) och en förändrad produktupplevelse där det låsta innehållet nu är tillgängligt. Ett annat exempel är när användaren fyller i sina inloggningsuppgifter och förväntar sig att bli inloggad i produkten.

I det här steget finns det också ett antal samarbetspartners som MittMedia jobbar med. Främst huserar Adeprimo här, som byggt affärssystemet Payway. Det systemet hanterar genom API:er våra processer kring köp av betalinnehåll (bland annat bor prenumerationsmotorn i detta system, som sköter alla återkommande betalningar). Även rena betallösningar som Klarna återfinner vi i detta sammanhang.

3. Distributionsprodukten

Visst, den här punkten hade också kunnat ha en lite roligare titel. Men kommer du ihåg liknelsen med vattendraget där användaren står nere vid mynningen? Även om det bor mycket komplexitet bakom hur innehållet når användaren är det i regel bara själva sajten eller appen som användaren exponeras för i sin upplevelse. Ur det perspektivet finns det bara ett steg i distributionen och det sker på produktnivå.

4. Datasamling

Ur ett plattformsperspektiv kan vi kalla det för en feedbackloop eller en prestandamätning på innehållet, men ur användares perspektiv är det en uppsamling av data som sker. Det är därför viktigt att vi bär med oss det perspektivet och tänker oss noga för hur vi hanterar uppgifter som användaren både aktivt och passivt förser oss med.

5. Plattformsgränssnittet

Nu har vi nått den punkt då datauppsamlingen övergår till att vara intern angelägenhet inom Soldr. Det data som skickas in via användarens webbläsare är ganska enkelt att följa fram till denna punkt.

Hantering av interaktioner och användardata

1. Plattformsgränssnittet

Välkommen tillbaka till insidan av Soldr. Vi har varit här förut, när vi tittade på hur innehållet lagrades. När vi nu återbesöker insidan av plattformen gör vi det i samband med lagringen av interaktionsdata.

2. Datalagring

Eftersom jag redan tidigare gått igenom lagringen av innehåll kan vi nu rita ut den igen för att göra bilden komplett. I detta steg har vi därmed totalt tre olika typer av data: interaktionsdata (som kommer från webbläsaren), innehållsdata (som kommer från producenten) och användardata (som samlas upp i kundloopen).

3. Dataprocesseringen

Naturligtvis finns det en uppsjö av funktion och tjänster som kommer i spel i samband med att databilden här blir komplett. Vissa funktioner är förhållandevis enkelspåriga, till exempel exporter av användarmodeller till nyhetsbrev och CRM-system. Men det finns också betydligt komplexare processer som bygger på att det finns en komplett databild. Jag har valt personalisering och anonymisering som två tydliga exempel.

För att kunna ge användaren en personlig upplevelse krävs det att systemet har tillgång till både information om användaren och innehållet, och statistik över hur användaren har valt att interagera med innehållet.

Anonymisering av användardata är en extremt viktig del av plattformen. Det är genom att avpersonalisera information om användarna som vi tryggt kan exportera vårt data till vår annonsplattform, Reacher, och där bygga starka och effektiva målgrupper att styra annonser mot. Det är också här vi har möjlighet att sätta upp temporära lösningar för att skapa ett bra underlag för proof of concepts och akademiska arbeten.

4. Formatering

Formateringen av data behövs för att plattformen sömlöst ska kunna interagera med andra plattformar och tjänster. Ett tydligt exempel är hanteringen av pushnotifikationer. MittMedia erbjuder bland annat notifikationer från sina mobila appar baserat på geografiska punkter som användaren anger i sina inställningar, och för att detta ska fungera tekniskt krävs det att Soldr kan förse Apple och Google med rätt information om vilken device som ska ha vilket innehåll.

5. Dataexport

Detta är andra sidan av plattformen, där processat och förädlat data blir tillgängligt utanför plattformens egna silos. Det formaterade och ofta anonymiserade innehåll som Soldr hanterar exponeras i detta steg för system och tjänster som använder plattformen som datakälla.

Export av analysdata

1. Dataexport

I den sista flödesbilden i den här genomgången är det dataexporten som utgör startpunkten. Det är genom detta gränssnitt som olika typer av verktyg och system har möjlighet att tillgängliggöra sig det analytiska värdet i det innehåll som Soldr hanterar.

2. Analys

I väldigt grova drag går det att dela upp analysverktygen som kopplas mot Soldr i tre grupper:

  • Data science, där en eller flera medarbetare manuellt skapar frågor direkt mot de databaser som Soldr tillhandahåller för dataexport. Ofta är detta tillfälliga arbetsinsatser där resultatet används av olika intressenter för att ta strategiska beslut.
  • Interna analysverktyg. Detta inkluderar helt egenutvecklade verktyg som till exempel visualiseringar av användarmönster, men även verktyg som till exempel Tableau som ofta kräver en integreringsinsats.
  • Externa verktyg. Ett externt verktyg är enligt MittMedias definition ett isolerat system där vi inte kan påverka datamodellen eller genom vilka gränssnitt som analyserna presenteras för användaren. Här hittar vi ofta stora analysverktyg som Comscore och Google Analytics.

3. Intern feedbackloop

Under denna punkt ryms allt kompetensarbete och all verksamhetsutveckling som behövs för att säkerställa att det finns mottagare för det analytiska arbete som produceras. Behoven skiljer sig kraftigt beroende på vem mottagaren är. I vissa fall kan slutresultatet vara en dashboard som projiceras på skärmar på redaktionen, och i andra fall kan den slutgiltiga produkten bestå av ett kalkylblad som automatiskt uppdateras för att möjliggöra ekonomistyrning.

4. Producenten

Den sista anhalten i denna resa genom Soldr är densamma som vi började med. Det är genom att tillgodose sig analytiskt data från plattformen som producenten kan lära sig förstå mottagaren för det innehåll som produceras. Och det är när nytt innehåll, baserat på dessa lärdomar, produceras och sedan konsumeras som cirkeln sluts.

Avslutningsvis

Digitala produkter är lättflyktiga. Med Soldr står MittMedia på en solid och trygg grund när våra produkter behöver förändras med våra användares behov. Genom vår datahantering inom plattformen möjliggör vi produktutveckling och som erbjuder en lättrörlighet som uppmuntrar till innovation och konstant förbättring. I det arbetet förväntar vi oss att även plattformen i sig itereras löpande. Välkommen att följa oss i det arbetet.

--

--