Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Analytics para Devs
Search
Marcus Ortense
April 28, 2020
1
91
Analytics para Devs
Marcus Ortense
April 28, 2020
Tweet
Share
More Decks by Marcus Ortense
See All by Marcus Ortense
Concrete on Beer JavaScript - Offline first
ortense
0
130
Natura Meet Up PWA - Offline first
ortense
0
73
Escrevendo javascript testável
ortense
1
170
Serverless
ortense
0
82
Talk - let, const & arrow functions
ortense
0
58
Talk - JavaScript Isomórfico
ortense
0
74
Desenvolvimento vs Conversão
ortense
2
110
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
33
8.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
19
1.2k
Designing for humans not robots
tammielis
254
26k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Faster Mobile Websites
deanohume
310
31k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Practical Orchestrator
shlominoach
190
11k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Designing for Performance
lara
610
69k
GitHub's CSS Performance
jonrohan
1032
470k
Transcript
None
None
analytics para devs
1 DE SETEMBRO DE 2013
Por onde começar?
None
None
instalação <script async src="https://www.googletagmanager.com/gtag/js?id=UA-000000-X"> </script> <script> window.dataLayer = window.dataLayer ||
[]; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-000000-X'); </script>
instalação <script async src="https://www.googletagmanager.com/gtag/js?id=UA-000000-X"> </script> <script> window.dataLayer = window.dataLayer ||
[]; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-000000-X'); </script>
instalação <script async src="https://www.googletagmanager.com/gtag/js?id=UA-000000-X"> </script> <script> window.dataLayer = window.dataLayer ||
[]; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-000000-X'); </script>
instalação <script async src="https://www.googletagmanager.com/gtag/js?id=UA-000000-X"> </script> <script> window.dataLayer = window.dataLayer ||
[]; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-000000-X'); </script>
<script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-00000'); </script>
instalação
<script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-00000'); </script>
instalação
relatórios built-in
tempo real
None
navegadores
None
sistemas operacionais
None
resoluções de tela
None
regiões
None
dispositivos
None
visualizações & eventos
visualização de página gtag('config', 'UA-000000-X')
gtag('config', 'UA-000000-X', { page_title: 'homepage', page_path: '/home', }) visualização de
página
gtag('config', 'UA-000000-X') gtag('config', 'UA-111111-Y', { page_title: 'homepage', page_path: '/home', })
visualização de página
gtag('event', 'play', { event_category: 'videos', event_label: 'video promocional', }) eventos
gtag('event', 'auto play', { event_category: 'videos', event_label: 'video promocional', non_interaction:
true, }) eventos
tem mais?
avaliando tempo
user timing
gtag('event', 'timing_complete', { name: 'load', value: performance.now(), event_category: 'JS Dependencies',
}) carregamento
gtag('event', 'timing_complete', { name: 'load', value: performance.now(), event_category: 'JS Dependencies',
}) carregamento
carregamento
None
None
export function getUserByID(id) { return axios .get(`/users/${id})}`) .then(response => response.data)
} http request
export function getUserByID(id) { return axios .get(`/users/${id})}`) .then(response => response.data)
} http request
axios.interceptors.request.use((config) => { config.startTime = Date.now() return config }, error
=> Promise.reject(error)) http request
client.interceptors.response.use((response) => { const successfulRequestTime = Date.now() - response.config.startTime return
response }, (error) => { const failedRequestTime = Date.now() - error.config.startTime return Promise.reject(error) }) http request
client.interceptors.response.use((response) => { const successfulRequestTime = Date.now() - response.config.startTime return
response }, (error) => { const failedRequestTime = Date.now() - error.config.startTime return Promise.reject(error) }) http request
gtag('event', 'timing_complete', { name: response.config.url, value: successfulRequestTime, event_category : 'api
request', event_label: 'success', }) http request
gtag('event', 'timing_complete', { name: error.config.url, value: failedRequestTime, event_category : 'api
request', event_label: 'fail', }) http request
request time
None
exceções & crashs
gtag('event', 'exception', { description: 'exception', fatal: false, }) coletando erros
window.addEventListener('error', (event) => { gtag('event', 'exception', { description: `${event.error.name}: ${event.error.message}`,
fatal: false, }) }) coletando erros
None
coletando erros
coletando erros
coletando erros
coletando erros
measurement protocol
http api
debug mode
consumindo dados
serviços google
extraindo via api
poderoso não é mesmo?
MUITO OBRIGADO!