TL;DR:
(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
e=o.createElement(i);r=o.getElementsByTagName(i)[0];
e.src='//www.google-analytics.com/analytics.js';
r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
ga('create','UA-XXXXX-X',{'storage': 'none','clientId':localStorage.getItem('gaClientId')});
ga(function(t){localStorage.setItem('gaClientId',t.get('clientId'));});
ga('send','pageview');
๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค ๋ฌธ์:
https://developers.google.com/analytics/devguides/collection/analyticsjs/domains#disableCookies
Modernizer.localstorage
๋ฅผ ์ฌ์ฉํ์ฌ localStorage
์ง์์ ํ์ธํ๊ณ ์ฟ ํค๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋์ฒดํ ์ ์์ต๋๋ค. Modernizr์ ์ข
์์ฑ์ผ๋ก ์ ๊ทธ๊ณ ์ถ์์ง ํ์คํ์ง ์์ต๋๋ค.
์์?
Google์ ๊ทํ์ ๋๋ฉ์ธ์ ๋ํ ๋ชจ๋ ๋จ์ผ ์์ฒญ์ ๋ํด ๊ทํ์ ์๋ฒ์ ์ฟ ํค๋ฅผ ๋ณด๋ผ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
Modernizr์ ์ข ์์ฑ์ผ๋ก ์ ๊ทธ๊ณ ์ถ์์ง ํ์คํ์ง ์์ต๋๋ค.
์ด์ฉ๋ฉด ๋ฌธ์์ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์๊น์?
๋ํ ping @mathiasbynens.
์ค๋ํ์ ์ต์ ํํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค, David. @alrra ๋ก์ ๋๋ ๊ทธ๊ฒ์ ๋ฌธ์์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํฌ๋ ๋ง์ ์ ์์ ๊ฐ ์๋๋๋ค. ์ด๊ฒ์ @elmerbulthuis์ ์ํด ์ ์ฃผ์๋ฅผ ๋์์ต๋๋ค. ๋น๋ก ์ด๊ฒ์ด _snippet_ ์์ฒด์ ์ต์ ํ๋ผ๊ณ ์๊ฐํ์ง๋ ์์ง๋ง, ๊ทธ ์์ฒด๋ก --- ์น ์ ์ฒด์ ์ต์ ํ์ ๊ฐ๊น์ต๋๋ค :-p.
๋ชจ๋๊ฐ localStorage
์๋ฃจ์
์ ์ฑํํ๋ค๋ฉด ์ ์ธ๊ณ์ ์ผ๋ก ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํธ๋ฅผ ์ ์ฝํ ์ ์์์ง ๊ถ๊ธํฉ๋๋ค.
๋๋ ๋ถ๋ช
ํ ์ด ์๋ฃจ์
์ ์ด๋ ฌํ ํฌ์
๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด์ผ๋ฌํ๋ ์ดํธ์ ํฌํจํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์ ์ผํ ๋ฌธ์ ๋ @davidmurdoch ๊ฐ ์ธ๊ธํ ๋ฌธ์ ์
๋๋ค. ๋จผ์ localStorage
์ ๋ํ ๊ธฐ๋ฅ ํ
์คํธ๊ฐ ํ์ํฉ๋๋ค. ์ด๊ฒ์ Modernizr๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์์ ๋
๋ฆฝ ์คํํ ์ฝ๋ ๋ฅผ ์ถ๊ฐํ์ฌ ์ํํ ์ ์์ง๋ง ์ด๋ ์ชฝ์ด๋ ํ์ด์ง ํฌ๊ธฐ๊ฐ ์ฝ๊ฐ ์ฆ๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ํฅ์ ๋ฐ๋ ๋๋ฉ์ธ์ ๋ฆฌ์์ค์ ๋ํ ์์ฒญ ํค๋์ ์ฟ ํค๊ฐ ์ ์ก๋์ง ์๊ธฐ ๋๋ฌธ์ ์ฅ๊ธฐ์ ์ผ๋ก ๋ง์ ๋ฐ์ดํธ๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค.
์ด ๊ฐ์:
(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
e=o.createElement(i);r=o.getElementsByTagName(i)[0];
e.src='//www.google-analytics.com/analytics.js';
r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
(function(){var a=(function(){var c=new Date,b;try{
localStorage.setItem(c,c);b=localStorage.getItem(c)==c;
localStorage.removeItem(c);return b&&localStorage}catch(d){}}());
ga('create','UA-XXXXX-X',a?{storage:'none',clientId:a.gaId}:{});
ga(function(b){a.gaId=b.get('clientId')});ga('send','pageview')}());
(http://mathiasbynens.be/notes/localstorage-pattern์์ ๊ฐ์ ธ์จ localStorage
๊ธฐ๋ฅ ํ
์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.)
๋ช ๊ฐ์ง ๋น ๋ฅธ ํ ์คํธ ํ์ ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ๋ ๊ด๋ฒ์ํ๊ฒ ํ ์คํธํ ํ PR์ ์์ฑํ๊ฒ ์ต๋๋ค. (๋ฌผ๋ก ํ์ํฉ๋๋ค!)
์ฐธ๊ณ : ์ํฅ์ ๋ฐ๋ ๋๋ฉ์ธ์ ๋ํ ๊ฐ ์์ฒญ์ ๋ํด ์๋ณต๋น ์ฝ 33๊ฐ์ ์์ ๋ฐ์ดํธ(ํค๋/์ฟ ํค๊ฐ ์์ถ๋์ง ์์)๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค.
@mathiasbynens ' ํ์ฌ ์ธ๋ผ์ธ ๊ธฐ๋ฅ ๊ฐ์ง ์๋ฃจ์ ์ 130 ์์ถ ๋ฐ์ดํธ* ๋ ํฝ๋๋ค(๋ถ๋ช ํ ์ด๊ฒ์ ๊ฐ ๊ณ ์ ํ์ด์ง๋ง๋ค ๋ค๋ฅด์ง๋ง ๋๋ต์ ์ธ ์์ด๋์ด๋ฅผ ์ ๊ณตํฉ๋๋ค). ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ์กฐ๊ธ ๋ ๊ณจํ๋ฅผ ์น ์ ์๋์ง ๋ด์ผ ํ ๊ฒ์ ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก gzip์ผ๋ก ์์ถ๋ diff๋ฅผ 65๋ฐ์ดํธ๊น์ง ๋ณด๊ณ ์ถ๊ณ ๊ณง ์ง์ ์๋ํด ๋ณผ ๊ฒ์ ๋๋ค. :-)
_*์ด ๋ํ๋ ์ดํฐ ์ฌ์ฉ: http://www.vervestudios.co/projects/compression-tests/snippet-deflator_
318 GZIPped ๋ฐ์ดํธ(ํ์ฌ ๋ฒ์ ์ 248 GZIPped ๋ฐ์ดํธ):
(function(l,e){GoogleAnalyticsObject='ga',(window.ga||(ga=function(l,e){(ga.q=ga.q||[]).push(arguments)})).l=+new Date,l=document.createElement('script'),l.src='//www.google-analytics.com/analytics.js',(e=document.getElementsByTagName('script')[0]).parentNode.insertBefore(l,e);ga('create','UA-XXXXX-X',(function(l,e){try{l=(localStorage[ga.l]=ga.l)==ga.l;localStorage.removeItem(ga.l);return l}catch(l){}}())?{storage:'none',clientId:localStorage.clientId}:{});ga(function(l,e){localStorage.clientId=l.get('clientId')});ga('send','pageview')}())
์ด๊ฒ์ ์ ํ ์คํธ๋์ง ์์์ผ๋ฏ๋ก ์ฌ์ ํํด์ผํฉ๋๋ค. ํ์ง๋ง ์์์ ๋๋ค.
๋ถํํ๋ setItem
๋ฐ getItem
ํธ์ถ์ ์ ๊ฑฐํ๊ณ ๋ค๋ฅธ ๊ณจํ "ํธ๋ฆญ"์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ localStorage
ํ
์คํธ๋ ์ผ๋ถ ๋ธ๋ผ์ฐ์ ์์ ์์๋์์ ์ ์์ต๋๋ค.
์ง๊ธ์ ๊ทธ๊ฒ ๋ค์ผ. :-)
๋ฐฉ๊ธ ์ฐ๋ฆฌ๊ฐ ์ค๋ํซ ์์ฒด๋ฅผ ์์ถํ๊ณ ์๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์ด๋ ๋ค์ ๋ฌด์๋ฏธํฉ๋๋ค. Gzip ๊ฒฐ๊ณผ๋ ๋ฌธ์์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค(์: ๋ฌธ์์ ์ธ๋ผ์ธ๋ ๊ฒฝ์ฐ HTML ์์ค, ๋ฌธ์์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ JavaScript ํ์ผ์ ๋๋จธ์ง ๋ถ๋ถ). ์ค๋ํซ์ gzip ์์ถ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ ๊ฒ์ด ์ด๊ฒ์ ์ธก์ ํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ์๋ ์์ต๋๋ค.
์ค๋ํซ์ด ์ข์ ๋ณด์
๋๋ค. ์ ํ์์คํฌํ๋ฅผ ์์ฑํ๋ ๋์ ga.l
ํ์์คํฌํ๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค!
๋ถํํ๋
localStorage
ํ ์คํธ๋ ์๋ง๋ setItem ๋ฐ getItem ํธ์ถ์ ์ ๊ฑฐํ๊ณ ๋ค๋ฅธ ๊ณจํ "ํธ๋ฆญ"์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ๋ธ๋ผ์ฐ์ ์์ ์์๋์์ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ทธ๊ฒ์ ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ IMHO๊ฐ ๋ ๊ฒ์ ๋๋ค.
Firefox < 9 ์ง์์ด ๋ ์ด์ ๋ฌธ์ ๊ฐ ๋์ง ์์ ๋ document.getElementsByTagName('script')[0]
๋ฅผ document.scripts[0]
๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค.
@mathiasbynens GZIPping ์ค๋ํซ์ ์์ถ์ผ๋ก ์ธํ _์ต์_๋ฐ์ดํธ ์ ์ฝ์ ๊ฐ๊น์ต๋๋ค. ๋ฐ๋ผ์ ์์ ํ ๋ ผ์ ์ด ์๋๋๋ค. ๊ฑฐ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ํ์ด์ง ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ค๋ํซ์ ์์ถ ๋น์จ์ด ์ฆ๊ฐํฉ๋๋ค.
์์ง ํ
์คํธ๊ฐ ํ์ํฉ๋๋ค! getItem
๋ฐ setItem
ํธ์ถ์ ๋ค์ ์ถ๊ฐํ๊ณ 309๋ฐ์ดํธ๋ก ์ค์์ต๋๋ค.
+function(l,e){(ct=this[GoogleAnalyticsObject='ct']||function(l,e){(ct.q=ct.q||[]).push(arguments)}).l=+new Date,l=document.createElement('script'),l.src='//www.google-analytics.com/analytics.js',(e=document.getElementsByTagName('script')[0]).parentNode.insertBefore(l,e);try{localStorage.setItem(ct.l,ct.l),l=localStorage.getItem(ct.l)-ct.l,localStorage.removeItem(ct.l)}catch(l){};ct('create','UA-XXXXX-X',l?{}:{clientId:localStorage.clientId,storage:'none'}),ct(function(l,e){localStorage.clientId=l.get('clientId')}),ct('send','pageview')}()
+
๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ IIFE๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.localStorage.clientId
๋์ localStorage.gaId
๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค clientId
๊ฐ ๋ฐ์ดํธ๋ฅผ ์ ์ฝํ๊ธฐ ๋๋ฌธ์
๋๋ค.window
this
๋ฅผ ์ฌ์ฉํ๋ฉด 1๋ฐ์ดํธ๊ฐ ๋ ์ ์ฝ๋ฉ๋๋ค( GoogleAnalyticsObject
ํ ๋น ์ด๋๊ณผ ํจ๊ป).ga
๋ฅผ ct
๋ก ๋ณ๊ฒฝํ๋ฉด(ct๊ฐ ๋ ์ผ๋ฐ์ ์) 1๋ฐ์ดํธ๋ฅผ ๋ ์ ์ฝํ ์ ์์ต๋๋ค(์ด๋ ์๋ง๋ ํผ๋ํ ๊ฐ์น๊ฐ ์์ ๊ฒ์
๋๋ค).0
์ ํ ๋นํ์ฌ localStorage
๊ฒ์ฌ์ l
๋ฅผ ์ฌ์ฌ์ฉํ๋ฉด ๋ง์ ๋ฐ์ดํธ๊ฐ ์ ์ฝ๋ฉ๋๋ค.๋ค์ ๋งํ์ง๋ง ์ด๊ฒ์ ๋ ๋ง์ ํ ์คํธ๊ฐ ํ์ํฉ๋๋ค.
@davidmurdoch ์์ง ํ ์คํธ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๋ค๋ฅธ ์ฌ๋๋ค์ด ํ ์คํธ๋ฅผ ๋์ธ ์ ์๋๋ก ํ ์คํธ ํ๋ฆ์ ๊ธฐ๋กํ ์ ์์ต๋๊น?
์ฃ์กํฉ๋๋ค. ์ ๋ MIA์์ต๋๋ค. ์ฐ์ ์์๊ฐ ๋์ 6๊ฐ์ ํ๋ก์ ํธ์ ๋ฐฐ์ ๋์ด ๋ค๋ฅธ ์ผ์ ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์์์ต๋๋ค.
์ด๊ฒ์ ํ
์คํธํ๋ ๊ฐ์ฅ ์ฌ์ด(๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ด๋ฆฌ์์) ๋ฐฉ๋ฒ์ ๋ถ์ ์ฝ๋๋ฅผ ์ด ์ ์ฝ๋๋ก ๊ต์ฒดํ๊ณ ์ซ์์ ๋ธ๋ผ์ฐ์ ๋ฒ์ ์ ์ด์ํ ๋ณ๋์ด ์๋์ง ํ์ธํ๋ ๊ฒ์
๋๋ค. ๋๋ ์ด๊ฒ์ ์ง์ ํ๊ณ ๋์ ๋๋ ๊ฒ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ oldie
๋ฐฉ๋ฌธ์๊ฐ ๋ง์ง ์์ต๋๋ค.
๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์ฑ๋ iframe์ ์ด ์คํ์ ๋ถ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ๊ณ (์์ ์ ์ธ ๋ถ์ ์ค๋ํซ์ ๋ฐฉํดํ์ง ์๋๋ก) ๋ฌผ๋ก ๋ค๋ฅธ GA ๊ณ์ ์ผ๋ก ๊ฑฐ๊ธฐ์์ _trackPageview
๋ฅผ ํธ์ถํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ผ์ฃผ์ผ ์ ๋ ํ์ ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์กฐ๋ง๊ฐ ์ด๊ฒ์ ํ ์คํธํ๊ธฐ ์ํ ๋๋กญ์ธ ์ค๋ํซ ์์ ์ ํ ์ ์๋ค๊ณ ์ฅ๋ดํ ์๋ ์์ต๋๋ค. ๋ด๊ฐ ์จ์ด ์๋ ๋์ ๋ค๋ฅธ ์ฌ๋์ด ์ด ์์ด๋์ด์ ์์ ๊ถ์ ๊ฐ๊ณ ์ถ๋ค๋ฉด ๋ฐ๋ก ๊ฐ์ธ์. :-)
๋ฐฉ๊ธ http://drublic.github.io/css-modal/์ ๋ํ ํ ์คํธ๋ฅผ ์์ํ์ต๋๋ค. ์ง๋ ๋ฌ์ 97,000 ํ์ด์ง ๋ทฐ๋ฅผ ์ป์์ง๋ง ๋ธ๋ผ์ฐ์ ์ ์ฒด์ ๋๋ฆฌ ํผ์ก์ต๋๋ค.
์ซ์๋ค:
๊ธฐ๋ค๋ฆฌ๊ณ ๋ณด์. ๋ณ๋ ฌ๋ก ์คํ๋๋ "์ ์" ํต๊ณ๊ฐ ์์ต๋๋ค.
๊ทธ ์ธ์๋ ์ฝ๋๊ฐ ๊ฐ๋ ์ฑ์ ์ํด ์ถ๊ฐ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(ํ ์ค์ 80์ ๋ฐ ์๋ณ์๋ฅผ ์ฝ์ ํ ์์น).
์ฝ ์ผ์ฃผ์ผ ํ์ ์ด ํ ์คํธ๋ก ๋์์ค๊ฒ ์ต๋๋ค.
๋๋ ์กฐ๊ธ ์ด๋ฅด์ง๋ง ๋ด ๋ฐ๊ฒฌ์ ํ์ฌ ๋งค์ฐ ์์ ์ ์ ๋๋ค. ๋ถํํ๋ ๋ ๊ณ์ ์ ๋ฐฉ๋ฌธ์ ์์๋ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๊ธฐ๋ณธ ๊ตฌํ ์ 3์ 13์ผ๋ถํฐ 17์ผ๊น์ง 2,964ํ์ ๊ณ ์ ๋ฐฉ๋ฌธ ์ ํ์ํฉ๋๋ค.
๋ก์ปฌ ์คํ ๋ฆฌ์ง ๊ธฐ๋ฐ ์ ๊ฐ์ ๊ธฐ๊ฐ ๋์ 756๋ช
์ ๊ณ ์ ํ ๋ฐฉ๋ฌธ ์ ๋ณด์ฌ์ค๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง ์ด์ ๊ฐ ์์ ์ ์์ต๋๋ค.
ํ์ฌ ๋ด ์ฝ๋์ ์ค๋ฅ๊ฐ ์์ต๋๋ค. http://drublic.github.io/css-modal/test-gau-localstorage.html (์ฌ์ดํธ์ ํตํฉ๋ iframe์).
๋ํ ๋ธ๋ผ์ฐ์ ๋ ํ์ด์ง์์ iframe์ด ์ฐจ๋จ๋๋ ๊ฒ์ ๊ฒฝํํ ์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ด ์ผ์ด๋ ์ ์๋์ง ์๋ ์ฌ๋์ด ์์ต๋๊น?
์ด๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง GUA๊ฐ ์ค๋ํํ ๋ฒ๊ทธ๊ฐ ์๋ ์๋ฃจ์
์ผ๋ก ์๋ดํฉ๋๋ค. ๋๋ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์กฐ์ฌํ์ง ์์์ต๋๋ค.
์ถ๊ฐ ํ
์คํธ๋ฅผ ์ํด ์ถ์๋์ง ์์ ๋ณํ์ ๊ฐ๋ฐํ๊ณ ์์
์๋ฃจ์
์ ๋ง๋ ํ ์ต์ํํ ์ ์์ต๋๊น?
๋ํ HTML5BP v5.0์์ ์ด๋ฅผ ์ค๋ช ํ๊ณ ์๋ฃจ์ ์ ์ฐพ์ผ๋ฉด 5.1๋ก ๋ฆด๋ฆฌ์คํ๋๋ก ์ ํํ๊ฒ ์ต๋๋ค. ์ฌ๋ฌ๋ถ์ ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
๋ํ HTML5BP v5.0์์ ์ด๊ฒ์ ์ค๋ช ํ๊ณ 5.1๊ณผ ํจ๊ป ๋ฆด๋ฆฌ์คํ๊ธฐ๋ก ์ ํํ์ต๋๋ค.
@drublic :+1: ( v5.1.0 ๋ง์ผ์คํค ์ ๋ฌธ์ ์ถ๊ฐ๋จ).
์ซ์๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ ga('create',
w/ storage:'none'
๋ฅผ ํธ์ถํ ๋ ๊ธฐ๋ณธ clientId๋ฅผ ์ ๊ณต ํด์ผ ํ๋ค๋ ์ฌ์ค์ผ ์ ์์ต๋๋ค.
https://developers.google.com/analytics/devguides/collection/analyticsjs/domains#disableCookies
๋ด ์ฌ์ดํธ(์ฌ๊ธฐ: LocalStorage๋ฅผ ์ฌ์ฉํ๋ Google Async Analytics ๋ฐ ํ ์คํธ ํ์ด์ง ์ค์ : http://davidmurdoch.com/google-async-analytics-using-localstorage-test/)์์ ์ด ๋ฌธ์ ์ ๋ํด ๋ฐฉ๊ธ ๋ธ๋ก๊ทธ์ ์ฌ๋ ธ์ต๋๋ค.
์ฝ๊ณ ๊ณต์ ํ๊ณ ํ ์คํธํ์ญ์์ค.
(์ฐธ๊ณ : ํด๋น ํ์ด์ง์์ ์คํ๋ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ํธ์ํฐ @pxcoach ๋ก ์๋ ค์ฃผ์ธ์.
์ด๋ด, ํํฐ์ ์กฐ๊ธ ๋ฆ๊ฒ ๋์ฐฉํด์ ๋ฏธ์ํด. ์ ๋ Google Analytics ํ์์ ์ผํ๊ณ ์์ผ๋ฉฐ ์ด ๋ฌธ์ ์ ๋ํด ์๊ฒฌ์ ์ ์ํ๊ณ ์ ์๊ฐ์ ์ ๊ณตํ๊ณ ์ถ์ต๋๋ค.
๋จผ์ H5BP ํ๋ก์ ํธ์์ ๊ณต์์ ์ผ๋ก ๊ถ์ฅํ๋ ๊ฒ๊ณผ ๊ธฐ๋ฅ์ ์ผ๋ก ๋ค๋ฅธ ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค ์ถ์ ์ค๋ํซ์ ์ถ์ฒํ๋ ๊ฒ์ ์ข์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๋๋ค์ ์๋ง ๊ทธ๋ค์ด ๊ฐ๋ค๊ณ ์๊ฐํ ๊ฒ์ด๊ณ , ์ค์ ๋ก ๊ทธ๋ ์ง ์๋ค๋ฉด ํผ๋์ ์ผ์ผํฌ ๊ฒ์ ๋๋ค. Google ์น๋ก๊ทธ ๋ถ์ ๋ฌธ์์์ GA๊ฐ ์ผ๋ถ ๊ธฐ๋ฅ์ ์ง์ํ๋ค๊ณ ์ฃผ์ฅํ์ง๋ง ๋๊ตฐ๊ฐ ๋ค๋ฅธ ์ค๋ํซ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ง์ํ์ง ์๋ ๊ฒฝ์ฐ ๋๋ฒ๊ทธํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค(ํนํ H5BP๊ฐ ์ค๋ํซ์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ถ๋ช ํ ํ์ง ์๋ ๊ฒฝ์ฐ).
GA๊ฐ ๋ ์ํ ์ ์๋ ๊ฒ์ด ์๋ค๋ฉด ์ปค๋ฎค๋ํฐ์์ ๋ฒ์ด๋์ง ์๊ณ ์ปค๋ฎค๋ํฐ์ ์๊ตฌ์ ํจ๊ป ๋ฐ์ ํ๊ณ ์ถ์ต๋๋ค. (BTW, GA์ ๊ด๋ จ๋ Github ๋ฌธ์ ์ ๋ํด ์์ ๋กญ๊ฒ pingํ๊ฑฐ๋ ์ฐธ์กฐํ์ญ์์ค.)
์ด์จ๋ , ๋ค์์ localStorage์ ์ฃผ์ ๋ฌธ์ ์ GA๊ฐ ์ด๋ฅผ ๊ธฐ๋ณธ ์ ์ฅ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ ๊ณตํ์ง ์๋ ์ด์ ์ ๋๋ค.
localStorage์ ๋ฒ์๋ location.origin
์ธ ๋ฐ๋ฉด ์ฟ ํค๋ ์ต์์ ๋๋ฉ์ธ์ผ๋ก ๋ฒ์๊ฐ ์ง์ ๋ ์ ์์ต๋๋ค. ์ฟ ํค ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ฉด analytics.js๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ ๋๋ฉ์ธ ์ถ์ ์ ์ํํ ์ ์์ผ๋ฉฐ ์ด๋ localStorage์์๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ํ ์ฌ์ดํธ์ ์ผ๋ถ๊ฐ HTTP์ด๊ณ ๋ค๋ฅธ ๋ถ๋ถ์ด HTTPS์ธ ๊ฒฝ์ฐ์๋ ์คํจํฉ๋๋ค(์คํจํ๋ฉด ์คํ ๋ฆฌ์ง๊ฐ ๊ณต์ ๋์ง ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ ID๊ฐ ์์ค๋๊ณ GA๋ ์ด๋ฅผ ๋ณ๋์ ์ธ์
์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ). ์ด๊ฒ์ด ๋๋ถ๋ถ์ GA ์ฌ์ฉ์์๊ฒ ๋ฌธ์ ๊ฐ ๋์ง ์๋ ๊ฒ์ ์ฌ์ค์ด์ง๋ง, ๋ด๊ฐ ๋ฐฉ๊ธ ์ค๋ช
ํ ๊ธฐ๋ฅ ์์ค๋ก ์ธํด ์ด ์ ์๋ ์ค๋ํซ์ ๋๋กญ์ธ ๋์ฒดํ์ผ๋ก ์ ๊ณตํ๋ ๊ฒ์ ์ฌ์ ํ โโ๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฆ, ์ด ๋ฌธ์ ์ @davidmurdoch ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณต์์ ์ผ๋ก ์ง์๋๋ localStorage ๋ฉ์ปค๋์ฆ ๊ตฌ์ถ์ ์ฐ์ ์์๋ฅผ ๋๋ ค๊ณ ํฉ๋๋ค. ํ์ฌ storage
๋งค๊ฐ๋ณ์๋ cookie
๋ฐ none
์ต์
๋ง ์ง์ํ์ง๋ง ์ธ ๋ฒ์งธ localStorage
์ต์
์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. ํ์ ๋๋ฉ์ธ์ด ํ์ํ๊ฑฐ๋ ๊ต์ฐจ ์ฒด๊ณ ์ถ์ ์ด ์ตํธ์ธํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ธ์ ์ถ๊ฐ๋ ์ง ๋ชจ๋ฅด์ง๋ง ์ถ๊ฐ๋ ๋ ์ด ๋ฌธ์ ๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ชจ๋ ์ฌ๋์๊ฒ ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์ ๋๊น?
@philipwalton ๋๊ธ ๊ฐ์ฌํฉ๋๋ค!
์ด๊ฒ์ด ๋ชจ๋ ์ฌ๋์๊ฒ ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์ ๋๊น?
์ฐธ์กฐ: @davidmurdoch , @mathiasbynens
์ฆ, ์ด ๋ฌธ์ ์ @davidmurdoch ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณต์์ ์ผ๋ก ์ง์๋๋ localStorage ๋ฉ์ปค๋์ฆ ๊ตฌ์ถ์ ์ฐ์ ์์๋ฅผ ๋๋ ค๊ณ ํฉ๋๋ค.
:+1:
์ด๊ฒ์ด ์ถ๊ฐ๋๋ฉด ๋ฌธ์ ๋ฅผ ์ ๋ฐ์ดํธํ์ญ์์ค. ๊ฐ์ฌ ํด์!
@philipwalton , :+1: ์ข์ ์์์ ๋๋ค! ๊ทธ๋ฌ๋ ๋น๋ํ๊ธฐ ์ํด _์๋_ํ ํ์๋ ์์ต๋๋ค. ์ด๋ฏธ ํ์ต๋๋ค! :-p (๋๋ ๊ผฌ๋ง, ๋๋ ๊ผฌ๋ง).
์ด ๋ด์ค๋ก ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์
๋ฐ์ดํธํ๊ณ ๋น๊ณต์ localStorage
์ถ์ ์ฝ๋๋ก GitHub ์ ์ฅ์๋ฅผ ๋ง๋ค์ด ๋จ์ ์ ๊ฐ์กฐํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌ ํด์!
:+1: ํ์ง๋ง ๋ฏธ๋์ ์น์๋ ์ผ์ข
์ topLevelStorage
๊ฐ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ต์
์ ์ฌ์ฉํ ์ ์๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์ด๋ฅผ ์ผ๋์ ๋๊ณ ์ค๋ํซ์ด ๋ค์ด์ฌ ๋ h5bp์ ๋ํ ๊ธฐ๋ณธ ์ค์ ์ ๋ฌด์์
๋๊น?
@jonathantneal , ์ฐ๋ฆฌ๋ ํ์ด์ดํญ์ค์ globalStorage
๋ฅผ ๊ฐ์ง๊ณ ์์๋๋ฐ, ์ด๊ฒ์ ๊ต์ฐจ ์ฒด๊ณ, ํฌํธ, ๊ทธ๋ฆฌ๊ณ ํ์ ๋๋ฉ์ธ ์ ์ฅ์ ํ์ต๋๋ค. Firefox๋ ๊ทธ๊ฒ์ ๊ตฌํํ ์ ์ผํ ์ฌ๋์ด์๊ณ ๊ทธ ์ดํ๋ก ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ฒ์ผ๋ก ํ์๋์์ต๋๋ค. :-(
@davidmurdoch ์ด ํธ๋ฅผ ์ด์ด์ ์กฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@philipwalton ํ ๋ก ์ ์ฐธ์ฌํด ์ฃผ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ @mathiasbynens ๊ฐ ๋งํ๋ฏ ์ด ์ต์ ์ ๋ณด๋ฅผ ๊ณ์ ์๋ ค์ฃผ์ธ์!
๊ทธ๋ฆฌ๊ณ ๋น๊ณต์ localStorage ์ถ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด ๋จ์ ์ ๊ฐ์กฐํฉ๋๋ค.
@davidmurdoch ์ ์ ์ฅ์๋ https://github.com/davidmurdoch/ga-localstorage ์
๋๋ค.(์์ง ์
๋ฐ์ดํธ๋์ง๋ ์์์ง๋ง).
๋ฐฉ๊ธ "localStorage๋ฅผ ์ฌ์ฉํ๋ Google ์ ๋๋ฆฌํฑ์ค" ์คํฌ๋ฆฝํธ๋ฅผ npm์ ๊ฒ์ํ์ต๋๋ค. https://www.npmjs.org/package/ga-localstorage
https://github.com/davidmurdoch/ga-localstorage ๋ฆฌํฌ์งํ ๋ฆฌ๋ ์ฝ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์๋ ํ์ธ์, ์ด SO ๋๊ธ์ ์ฝ์์ต๋๊น?
๋ค๋ค ์ด๋ป๊ฒ ์๊ฐํ์๋์ง ๊ถ๊ธํฉ๋๋ค.
@caesarsol ์ ๋ง ๋์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ด ์๊ฒฌ ์์ ์ค๋ช ํ๋ฏ์ด ์ฟ ํค์ localStorage์๋ ๋์ผํ ์ ํ์ด ์์ผ๋ฏ๋ก ํ์ด์ง์์ ์คํ๋๋ ๋ชจ๋ ๋จ์ผ ์คํฌ๋ฆฝํธ์ ๋ํด ์ฟ ํค๋ฅผ ๊ต์ฒดํ๋ ๊ฒ์ ๋งค์ฐ ์ํํฉ๋๋ค.
์๋ ํ์ธ์ @philipwalton๋ , ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ์ง๋ง ์ ๊ฐ ์ค๋ช ์ ์๋ชปํ์ ์๋ ์์ต๋๋ค. SO ์ฌ์ฉ์ _smhmic_์ ์ด ๋๊ธ์ ์ฐธ์กฐํ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ GA TOS๋ฅผ ์๋ฐํ ์ ์์ต๋๋ค! ๋ค์์ ์ด ๋ฌธ์์์ ๊ฐ์ ธ์จ GA ํ ๊ตฌ์ฑ์์ ๊ฐ์ ์ธ์ฉ๋ฌธ์ ๋๋ค. "์ฟ ํค ์ํ๋ฅผ ์ ํํ๊ธฐ ์ํด HTTP ์ํ ๊ด๋ฆฌ ๋ฉ์ปค๋์ฆ ์ฌ์ฉ"(localStorage ์ฝ๊ธฐ) "์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ๋ฅผ ์ฐํํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ Google Analytics ์๋น์ค ์ฝ๊ด์ ์๋ฐํ๋ ๊ฒ์ ๋๋ค. ". ์ด์ ๋ํ ๋์ ํด์์ ๋ ๋ง์ ์ฌ์ฉ์๊ฐ ์ฟ ํค์ ๊ฐ๋ ๊ณผ ์ฟ ํค๋ฅผ ์ง์ฐ๋ ๋ฐฉ๋ฒ์ ์ต์ํ๊ธฐ ๋๋ฌธ์ GA๊ฐ localStorage๊ฐ ์๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ GA์ ์ฟ ํค ์ฌ์ฉ์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ธฐ๋ฅ์ ๋๋ค. โ ํ ํ
HTTP ์ํ ๊ด๋ฆฌ ๋ฉ์ปค๋์ฆ"(localStorage ์ฐธ์กฐ)์ ์ฌ์ฉํ์ฌ ์ฟ ํค ์ํ๋ฅผ ์ ํํ๋ ๊ฒ์ ๋น์ฌ์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ์ฅ์น๋ฅผ ์ฐํํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ Google Analytics ์๋น์ค ์ฝ๊ด์ ์๋ฐํ๋ ๊ฒ์ ๋๋ค.
ํ , ๋๋ ์ด๊ฒ์ด ์ฌ์ค์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ตฌํ์์ ์์กดํ์ง ์๋ GA๊ฐ ์ ๊ณตํ๋ ์ ํ ํด์ ๊ธฐ๋ฅ(์: Chrome ํ์ฅ ํ๋ก๊ทธ๋จ)์ด ์์ต๋๋ค. ์ด TOS ์น์ ์ ์์ ์ ๊ณต์ "์ถ์ ๊ธ์ง" ํ์ฅ์ ์ฌ์ฉํ๋ ์ฌ๋์ด _์ฌ์ ํ_ ์ถ์ ๋๋ ๋ฉ์ปค๋์ฆ์ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ ์์ธํ ์กฐ์ฌํ ์ ์์ผ๋ฉฐ ์ด ์ค๋ ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค. ๋ด ๊ฐ์ ์ด ๊ฑฐ์ง์ผ๋ก ํ๋ช ๋๋ฉด ์ด ์ค๋ ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
์ ๋ฐ์ดํธ:
LocalStorage๋ฅผ ์ฌ์ฉํ์ฌ ClientID๋ฅผ ์ ์ฅํ๋ ๊ฒ์ TOS์ ์๋ฐฐ๋์ง ์์ต๋๋ค. ์ด์ Google์์ ๊ณต์์ ์ผ๋ก ์ง์ํฉ๋๋ค. https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#using_localstorage_to_store_the_client_id
์ฐธ๊ณ : iOS5 ๋ฐ FF4์ ๊ฐ์ ์ค๋๋ ๋ธ๋ผ์ฐ์ ๋ฅผ (๋งค์ฐ) ์ง์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์์ ์ค๋ํซ์ด ์คํจํ ์ ์์ต๋๋ค(https://github.com/Modernizr/Modernizr/blob/master/feature-detects/storage/localstorage ์ฐธ์กฐ). js).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ๋ฐ์ดํธ:
LocalStorage๋ฅผ ์ฌ์ฉํ์ฌ ClientID๋ฅผ ์ ์ฅํ๋ ๊ฒ์ TOS์ ์๋ฐฐ๋์ง ์์ต๋๋ค. ์ด์ Google์์ ๊ณต์์ ์ผ๋ก ์ง์ํฉ๋๋ค. https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#using_localstorage_to_store_the_client_id
์ฐธ๊ณ : iOS5 ๋ฐ FF4์ ๊ฐ์ ์ค๋๋ ๋ธ๋ผ์ฐ์ ๋ฅผ (๋งค์ฐ) ์ง์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์์ ์ค๋ํซ์ด ์คํจํ ์ ์์ต๋๋ค(https://github.com/Modernizr/Modernizr/blob/master/feature-detects/storage/localstorage ์ฐธ์กฐ). js).