Skip to content

Commit af4fd30

Browse files
committed
analytics post added
1 parent eae8ee1 commit af4fd30

File tree

4 files changed

+78
-0
lines changed

4 files changed

+78
-0
lines changed

_drafts/2019-02-25-analytics.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
layout: post
3+
title: "Analytics"
4+
date: 2019-02-25
5+
categories: ["Firebase"]
6+
image: firebase/analytics
7+
github: firebase/tree/master/analytics
8+
description: "Firebase"
9+
version: Firebase-Core 16.0
10+
keywords: "firebase, analytics, android, programowanie, programming"
11+
---
12+
13+
## Możliwości
14+
`Google Analytics` dla `Firebase` jest narzędziem analitycznym przeznaczonym do pomiaru oraz rejestrowania wykorzystania aplikacji i zaangażowania użytkowników. Jest rdzeniem dla całej usługi Firebase i pozwala na integracje z różnymi innymi funkcjami. Dostarczane raporty pomagają w zrozumieniu zachowania użytkowników (w jaki sposób korzystają z aplikacji) co ułatwia podejmowanie przemyślanych, świadomych i opartych o trendy decyzje dotyczące marketingu aplikacji i optymalizacji wydajności. `SDK` rejestruje dwa podstawowe typy informacji: zdarzenia (`event`) oraz właściwości użytkownika (`user properties`), które mogą być personalizowane dla aplikacji lub pochodzić z grupy predefiniowanych. Informacje przechwytywane są w sposób automatyczny, a ich podgląd dostępny z poziomu pulpitu nawigacyjnego w `konsoli Firebase`. Na podstawie danych urządzenia, zdarzeń czy właściwości użytkownika możliwe jest tworzenie niestandardowej grupy odbiorców usług Firebase. Dodatkowo raportowane informacje mogą być przypisane do konkretnego użytkownika za pomocą jego identyfikatora przy zachowaniu polityki prywatności i regulaminu. Aby użyć Analytics do ręcznego raportowania dla konkretnego ekranu wystarczy pobrać instancje typu `FirebaseAnalytics` w `onCreate` Aktywności.
15+
16+
{% highlight kotlin %}
17+
//define at the top of the activity
18+
private lateinit var firebaseAnalytics: FirebaseAnalytics
19+
20+
//get instance in onCreate
21+
firebaseAnalytics = FirebaseAnalytics.getInstance(this)
22+
{% endhighlight %}
23+
24+
## Zdarzenia
25+
`Zdarzenia` (`events`) informują o tym co się dzieje w aplikacji, jakie działania podjął użytkownik, jakie wystąpiły zdarzenia systemowe czy błędy. Rozróżniane są za pomocą klucza alfanumerycznego. Analytics automatycznie rejestruje niektóre zdarzenia (nie ma potrzeby dodawania żadnego kodu), które dotyczą interakcji m.in. z reklamami (`ad_click`), notyfikacjami (`notification_open`), wyświetleniem ekranu (`screen_view`), logowaniem (`login`) i rejestracją (`sign_up`), wyszukaniem (`search`) czy też aktualizowaniem (`app_update`), usuwaniem aplikacji (`app_remove`). Jeśli aplikacja wymaga zbierania dodatkowych danych należy je ręcznie raportować za pomocą metody `logEvent` podając klucz typu oraz obiekt `Bundle` zawierający oczekiwane wartości.
26+
27+
{% highlight kotlin %}
28+
class MainActivity : AppCompatActivity() {
29+
30+
private lateinit var firebaseAnalytics: FirebaseAnalytics
31+
32+
override fun onCreate(savedInstanceState: Bundle?) {
33+
super.onCreate(savedInstanceState)
34+
setContentView(R.layout.activity_main)
35+
firebaseAnalytics = FirebaseAnalytics.getInstance(this)
36+
37+
buttonAction.setOnClickListener {
38+
textView.setText(editText.text.toString())
39+
val bundle = Bundle()
40+
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, textView.text.toString())
41+
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "text")
42+
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle)
43+
}
44+
45+
buttonNavigate.setOnClickListener {
46+
firebaseAnalytics.logEvent("button_navigate_clicked", null)
47+
val intent = Intent(this, SecondActivity::class.java)
48+
startActivity(intent)
49+
}
50+
}
51+
}
52+
{% endhighlight %}
53+
54+
## Właściwości użytkownika
55+
`Właściwości użytkownika` (`user attributes`) są atrybutami opisującymi segmenty bazy użytkowników dzięki którym przesyłane dane mogą być analizowane i filtrowane pod kątem wskazanej grupy docelowej. Podobnie jak w przypadku zdarzeń niektóre właściwości rejestrowane są w sposób auotomatyczny i są to np. wiek (`Age`), kraj (`Country`), marka urządzenia (`Device brand`), płeć (`Gender`), wersja systemu (`OS Version`) czy język (`Language`). W przypadku przesyłania dodatkowych informacji należy zarejestrować właściwość w konsoli Firebase oraz ustawić właściwość w kodzie za pomocą metody `setUserProperty` przekazując klucz oraz parametr opisujący.
56+
57+
{% highlight kotlin %}
58+
class SecondActivity : AppCompatActivity() {
59+
60+
private lateinit var firebaseAnalytics: FirebaseAnalytics
61+
62+
override fun onCreate(savedInstanceState: Bundle?) {
63+
super.onCreate(savedInstanceState)
64+
setContentView(R.layout.activity_second)
65+
firebaseAnalytics = FirebaseAnalytics.getInstance(this)
66+
67+
val city = "Poznań" //get property from some place
68+
firebaseAnalytics.setUserProperty("city", city)
69+
}
70+
}
71+
{% endhighlight %}
72+
73+
## Śledzenie ekranów
74+
Analytics śledzi także przejścia między ekranami i dołącza do zdarzeń informacje o aktualnymi ekranie. Kiedy następuje zdarzenie wyświetlenia ekranu automatycznie dołącza parametr `firebase_screen_class` z informacją o nazwie klasy np. `MainActivity` oraz generuje `firebase_screen_id`. Śledzenie ekranów może być zgłaszane ręcznie poprzez metodę `setCurrentScreen` co może być przydatne jeśli aplikacja nie używa oddzielnego kontrolera `UIView` lub `Activity` na każdym śledzonym ekranie.
75+
76+
## Wyświetlanie wyników
77+
//TODO debugView + debugowanie w konsoli
78+
-mozna ustawic tryb debugowania co widac w konsoli
641 KB
Loading
18.7 KB
Loading
52.8 KB
Loading

0 commit comments

Comments
 (0)