Anoniminio IP nustatymas sistemoje „Analytics“

Techninis paaiškinimas, kaip sistemoje „Analytics“ nustatomi anoniminiai IP adresai

Trumpai

Kai „Analytics“ klientas paprašo nustatyti anoniminį IP adresą, tai atliekama „Analytics“ duomenų rinkimo tinkle kaip įmanoma greičiau atsižvelgiant į technines galimybes. Naudojant „Analytics“ anoniminio IP nustatymo funkciją, netrukus po to, kai adresai nusiunčiami į „Analytics“ duomenų rinkimo tinklą, paskutinis naudotojo IP adresų „IPv4“ oktetas ir „IPv6“ adresų paskutiniai 80 bitų atmintyje nustatomi į nulius. Tokiu atveju visas IP adresas niekada neįrašomas diske.

Išsamesnė apžvalga

Nuo 2010 m. gegužės 25 d. „Analytics“ teikia _anonymizelp funkciją ga.js „JavaScript“ bibliotekoje (o dar anksčiau ga('set', 'anonymizeIp', true) analytics.js bibliotekoje) siekdama leisti svetainių savininkams teikti užklausas, kad produkte visi naudotojų IP adresai būtų nustatomi kaip anoniminiai. Ši funkcija skirta padėti svetainių savininkams laikytis savo privatumo politikos arba kai kuriose šalyse vietinių duomenų apsaugos institucijų rekomendacijų, pagal kurias neleidžiama saugoti viso IP adreso informacijos. Anoniminis arba užmaskuotas IP nustatomas kaip įmanoma greičiau, kai duomenys nusiunčiami į „Analytics“ duomenų rinkimo tinklą, prieš išsaugant ar apdorojant bet kokius duomenis.

Anoniminis IP nustatymas atliekamas dviejose „Analytics“ duomenų rinkimo sistemos vietose: „JavaScript“ žymoje ir duomenų rinkimo tinkle. Šie veiksmai paaiškinti toliau

„Analytics“ „JavaScript“ žyma

Kai žiniatinklio svetainė su įgalintu „JavaScript“ įkelia puslapį su „Analytics“ žyma (ga.js arba analytics.js), ji asinchroniškai atlieka du dalykus: įkelia ir apdoroja „Analytics“ funkcijų eilę ir pateikia „Analytics“ „JavaScript“ užklausą. Funkcijų eilė yra „JavaScript“ masyvas, kuriame yra skirtingos „Analytics“ konfigūracijos ir duomenų rinkimo funkcijos. Šios funkcijos (kurias nustato svetainės savininkas, įdiegdamas „Analytics“) gali apimti tokias funkcijas kaip „Analytics“ paskyros numerio nurodymas ir faktinis puslapio peržiūros duomenų siuntimas į „Analytics“ duomenų rinkimo tinklą, kad būtų apdoroti.

Kai „Analytics“ „JavaScript“ paleidžia funkcijų eilėje esančią funkciją, kuri suaktyvina duomenų siuntimą į „Analytics“ duomenų rinkimo tinklą (paprastai paleidžiama analytics.js „JavaScript“ bibliotekos funkcija ga('send', 'pageview') arba ga.js bibliotekos funkcija _trackPageview), duomenys siunčiami adresu http://www.google-analytics.com/_utm.gif (naudojant ga.js) arba http://www.google-analytics.com/collect (naudojant analytics.js) kaip URL parametrai, pridėti prie HTTP užklausos. Jei anoniminio adreso nustatymo funkcija paleidžiama anksčiau nei puslapio stebėjimo funkcija, prie taškų užklausos pridedamas papildomas parametras. Anoniminio IP nustatymo parametras atrodo taip: &aip=1

„Analytics“ duomenų rinkimo tinklas

„Analytics“ duomenų rinkimo tinklą sudaro serveriai, kuriuos naudojant teikiamos dvi pagrindinės paslaugos: teikiamos ga.js ir analytics.js („Analytics“ „JavaScript“) ir renkami duomenys, siunčiami naudojant _utm.gif ir /collect užklausas.

Kai gaunama ga.js, analytics.js, _utm.gif arba /collect užklausa, HTTP užklausos antraštėje būna papildomos informacijos (nurodomas naršyklės tipas), o taip pat papildoma informacija nurodoma TCP/IP antraštėje (užklausos teikėjo IP adresas).

Gauta _utm.gif užklausa iš karto išsaugoma atmintyje, kad būtų galima nustatyti anoniminį adresą. Parametras &aip=1 pridedamas prie užklausos URL (kaip jį pridėtų ir „Analytics“ „JavaScript“ apdorojus anoniminio adreso nustatymo funkciją naudojant ga.js arba analytics.js). Tada paskutinis naudotojo IP adreso, vis dar saugomo atmintyje, oktetas nustatomas į nulius. Pvz., IP adresas 12.214.31.144 būtų pakeistas į 12.214.31.0. (Jei IP adresas yra „IPv6“ adresas, paskutiniai 80 iš 128 bitų būtų nustatomi į nulius.) Tik įvykdžius šį anonimiškumo nustatymo procesą užklausa įrašoma diske, kad būtų apdorota. Naudojant anoniminio IP nustatymo metodą, visas IP adresas niekada neįrašomas į diską, nes anoniminis adresas nustatomas atmintyje beveik iškart po to, kai gaunama užklausa.

Ar tai buvo naudinga?
Kaip galime jį patobulinti?