Ässäduunissa
Do Not Track -asetuksen kunnioittaminen ison organisaation verkkosivustojen seurannassa
29.5.2019
Olli Kavén
GDPR-asetuksen myötä asiakkaiden tietosuojan huomioiminen myös verkossa on tullut entistä tärkeämmäksi. S-ryhmä on Suomen suurimpia henkilötiedon käsittelijöitä, ja haluamme toimia tietosuojan osalta vastuullisesti, jotta asiakkaamme voivat luottaa meihin. Siksi meille on tärkeää, että kunnioitamme asiakkaidemme yksityisyyttä niin kaupassa kuin verkossa. Toukokuussa 2018 paransimme asiakkaan mahdollisuutta vaikuttaa siihen, mitä tietoja keräämme hänestä verkossa, ottamalla käyttöön Do Not Track-asetuksen kunnioittamisen verkkosivustojemme seurannassa.
Verkkosivustojen seuranta lyhyesti
Verkkosivustojen seuranta tapahtuu niin sanotuilla seurantakoodeilla (”tagi”), jotka hyödyntävät kävijän selaimesta saatavaa tietoa ja käyttävät muun muassa evästeitä tiedon keräämiseen. Seurantaa voidaan käyttää useampaan eri tarkoitukseen, mutta tässä kirjoituksessa keskitytään ensisijaisesti kahteen kategoriaan: * Analytiikka eli käyttömäärien, käytön ja suorituskyvyn seuranta * Kohdennettu mainonta eli seurantakoodit, jotka mahdollistavat mainonnan kohdentamisen verkossa sivustolla vierailleille
Ottamalla Do Not Track -asetuksen käyttöön halusimme tarjota asiakkaalle mahdollisuuden estää verkkoselaustietojen käyttö ylläoleviin käyttötarkoituksiin.
Seurantakoodien hallinta S-ryhmässä
S-ryhmän seurantakoodien hallinta on keskitetty yhden tiimin vastuulle SOK:n asiakasanalytiikkayksikössä. Seurantakoodien hallinnan tekee haastavaksi verkkosivustojen määrä, joka liikkuu useissa kymmenissä.
Seurantakoodien hallintaan käytämme Googlen Tag Manager (GTM) -työkalua. GTM:n avulla seurantakoodeja on mahdollista lisätä ja poistaa verkkosivustolta ilman että sovelluskoodiin tarvitsee koskea. GTM tarjoaa valmiita pohjia (”template”) moniin seurankoodeihin kuten esimerkiksi Google Analyticsiin, jota käytämme verkkosivustojen analytiikkatyökaluna. Pyrimme hyödyntämään näitä valmiita pohjia paljon, koska ne helpottavat hallittavuutta ja varmistavat uusimmat päivitykset automaattisesti.
GTM-työkalumme rakenne koostuu useista eri tileistä (”account”) ja niiden alla olevista säilöistä (”container”). Yksi container vastaa yhtä verkkosivustoa. Kaikki verkkosivustomme ovat erilaisia ja myös seurantakoodien määrä containereissa vaihtelee hyvin paljon.
Do Not Track -selainasetus
Do Not Track on internet-selaimessa oleva asetus, jolla käyttäjä voi pyytää verkkosivustoa olemaan keräämättä tai seuraamatta selaustietojaan. Mitä tiedoille tapahtuu, riippuu kuitenkin verkkosivuston vastauksesta tähän pyyntöön. Verkkosivustot voivat myös jättää pyynnön huomioimatta ja kerätä tiedot joka tapauksessa.
GTM:ssä jokaiselle seurantakoodille määritellään erikseen sääntö, jonka täyttyessä seurantakoodi suoritetaan sivustolla. Yleisin niistä on ”Kaikki sivut” niminen sääntö, joka tarkoittaa, että seurantakoodi suoritetaan kaikilla sivuston sivuilla. Sääntöjä voi luoda myös itse ja niitä voi kiinnittää esimerkiksi tietyn painikkeen klikkaamiseen tai tuotteen lisäämiseen ostoskoriin. S-ryhmän verkkoseurannassa näitä sääntöjä on vuosien saatossa kertynyt paljon. GTM:ssä sääntöihin voi myös luoda poikkeuksia. Poikkeuksilla voidaan estää seurantakoodin suorittaminen, vaikka seurantakoodiin liitetty sääntö täyttyisikin.
Päätös Do Not Track -asetuksen noudattamisesta tarkoitti käytännössä, että joka ikiseen seurantakoodiin ja niihin liittyviin sääntöihin piti tehdä poikkeus, joka tarkistaa onko Do Not Track päällä. Käsin tämän muutoksen tekeminen olisi ollut valtava urakka. Onneksi GTM tarjoaa seurantakoodien hallintaan myös rajapinnan, jota päätimme hyödyntää tässä.
Massamuutosten tekeminen GTM-rajapinnan avulla
GTM-rajapinta mahdollistaa kaikkien GTM:ssä olevien seurantakoodien, sääntöjen ja muuttujien muokkaamisen ohjelmallisesti. Do Not Track -poikkeuksen luomiseksi meidän piti tehdä jokaiseen containeriin seuraavat muutokset: * Workspace, johon muutokset tehdään, ettei rikota mitään :) * Custom Javascript muuttuja, joka tutkii selaimen asetuksista, onko doNotTrack -arvo asetettu * Sääntö, joka aktivoituu, kun yllä kuvattu muuttuja tunnistaa, että Do Not Track on päällä * Lisätä edellinen sääntö poikkeukseksi jokaiseen seurantakoodiin, joka containerista löytyy.
Kuva 1: Lopputulos muutetusta Google Analytics -seurantakoodista
Rajapinnan käyttöön toteutimme pienen Python-ohjelman. Ohjelmaa kutsutaan komentoriviltä (Kuva 2) ja sillä voi päivittää kaikki tilit kerralla tai tehdä muutoksen yksi container kerrallaan.
Kuva 2: Yksittäisen containerin päivitys komentoriviltä
Myös muutosten automaattinen julkaisu olisi ollut mahdollista. Varmuuden vuoksi päätimme jättää muutosten tarkastuksen ja julkaisun kuitenkin manuaaliseksi toimenpiteeksi.
Lopputulos ja jatkokehitys
Toteuttamalla Do Not Track -asetuksen kunnioittamisen GTM-rajapinnan avulla pystyimme automatisoimaan muutokset satoihin seurantakoodeihin. Muutosten ajaminen kaikkiin tileihimme kesti joitain minuutteja ja manuaalinen tarkistus ja julkaisu noin tunnin. Itse ohjelman tekemiseen meni noin yhden työpäivän verran aikaa. Ohjelmaa on kuitenkin helppo hyödyntää jatkossa myös muihin käyttötapauksiin, joissa tarvitsee muuttaa useita seurantakoodeja kerralla.
Jatkossa jos asiakkaamme ei halua, että häntä seurataan verkkosivustoillamme, hän voi laittaa selaimen asetuksista Do Not Track -asetuksen päälle, jonka jälkeen verkkosivustoillamme ei suoriteta yhtään seurantakoodia.
Edellä kuvatun toteutuksen haasteena on kuitenkin se, että jokaisen selaimen asetukset ovat erilaiset ja monelle Do Not Track asetuksen löytäminen voi olla haastavaa. Tulemmekin jatkossa kehittämään verkkosivustojemme tietosuojaa siihen suuntaan, että kysymme asiakkaalta nimenomaisen suostumuksen tietojen käytöstä eri käyttötarkoituksiin. Uskomme, että tämä lähestyminen tarjoaa asiakkaillemme vielä läpinäkyvämmän tavan vaikuttaa omaan yksityisyyteensä.
Kuvat: Unsplash
Olli Kavén
Kehityspäällikkö
Kehityspäällikkö, Data and Tech, SOK MEDIA
SOK