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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Marcus Ortense
April 28, 2020
97
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Analytics para Devs
Marcus Ortense
April 28, 2020
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
76
Escrevendo javascript testável
ortense
1
170
Serverless
ortense
0
85
Talk - let, const & arrow functions
ortense
0
68
Talk - JavaScript Isomórfico
ortense
0
83
Desenvolvimento vs Conversão
ortense
2
110
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
860
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
The SEO identity crisis: Don't let AI make you average
varn
0
490
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Skip the Path - Find Your Career Trail
mkilby
1
150
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
860
Site-Speed That Sticks
csswizardry
13
1.2k
Odyssey Design
rkendrick25
PRO
2
700
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!