Review 11 features of Firebase ฉบับ iOS (ตอนที่ 2)
.
ในตอนที่ 2 เราจะมาพูดถึง 6 features กับ 1 หัวข้อ ที่เหลือกันนะคะ
…
6. Google Analytics
7. Dynamic Links
8. Invites
9. Admob
10. Cloud Messaging
11. Remote config
และ pricing
6. Google Analytics
ต่อมา เจ้าตัว Google Analytics สำหรับ Firebase นี้ เป็นบริการที่ใช้สำหรับการวัดผลและแสดงค่าสถิติต่างๆ ที่เกี่ยวข้องบนแอพของเรา
แถมยังเป็น บริการที่ ฟรี แบบ ไม่มีลิมิต อีกด้วย
โดยตัว Firebase Analytic นี้ ได้ร่วมกับตัว Notifications, Crash Reporting และ Remote Config ในการวัดผลและแสดงสถิติ ตัวอย่างเช่น
- การวัดค่าของผู้ใช้งานที่กดเปิด/ปิด/ปัดทิ้ง Notification ที่ถูกส่งจาก Firebase
- การวัดและแสดงค่า จำนวนการ crash ของแอพ เป็นต้น
เรามาดูตัวอย่างของการแสดง Analytics ในหัวข้อ Dashboard กันดีกว่า
จะเห็นได้ว่า ผู้ใช้สามารถดูได้ว่า Active user ในแต่ละวัน/เดือน/ปี มีจำนวนเท่าไหร่
เห็นรายได้เฉลี่ยต่อ วัน/เดือน/ปี สำหรับ App purchase
เห็นเวลาของผู้ใช้งานที่ Active บนหน้าแอพของเรา
จำนวนของคนใช้งานใน แต่ละเวอร์ชันแอพ/แต่ละประเภท Device
ภูมิประเทศ/ภาค ที่มีคนใช้งาน หรือแม้กระทั้ง เพศของผู้ใช้งาน ก็ยังมีบอก!! เป็นต้น
ยิ่งไปกว่านั้น เรายังสามารถ Custom Event ได้อีกด้วย
โดยในตัวอย่างนี้ ผู้เขียนได้ทำปุ่ม ไว้ทั้ง 4 ปุ่ม และตั้งชื่อที่แตกต่างกันไว้
เช่น PressButton1, PressButton2, …3, ..4
และจะได้ผลลัพธ์ ดังนี้
จะเห็นได้ว่า เราสามารถดูจำนวนการคลิกของแต่ละ event ที่เราใส่ไว้ได้ด้วย
และจะเห็นได้ว่า ที่มันนอกเหนือ จากตัวที่เรา custom มา มันยังมีบางตัวที่เป็น default ติดมาให้ เช่น
app_exception: นับจำนวน เมื่อแอพ crash หรือ throws an exception
first_open: นับจำนวน เมื่อผู้ใช้งานเปิดแอพของเราขึ้นมาในครั้งแรก หลังจากที่ install นะคะ ซึ่งจะไม่เกี่ยวข้องกับจำนวนผู้ติดตั้งแอพ
“ This event is not triggered when a user downloads the app onto a device, but instead when he or she first uses it. To see raw download numbers, look in Google Play Developer Console or in iTunesConnect. ” ref.
notification_open: นับจำนวน เมื่อผู้ใช้งานเปิด notification ที่ถูกส่งจาก Firebase Notification
และ อื่นๆอีกมากมาย
นอกเหนือจากการ Custom Event เรายังสามารถ ตั้งค่า User Properties ได้อีกด้วย มันก็คือการตั้งค่า คุณลักษณะ ของผู้ใช้งาน เช่น เพศผู้ใช้งาน, สีของดวงตา 0.0
หรือ ภาษา เป็นต้น
โดยค่า default user properties ที่ทาง Firebase เก็บไว้ให้อยู่แล้ว อย่างเช่น เวอร์ชัน OS, เวอร์ชันแอพ เป็นต้น หรือถ้าทางผู้ใช้งานอยากจะ custom
ก็ยังสามารถทำได้สูงสุดถึง 50 properties เลยนะ
สปอร์ต…ใจดี…จริงๆ
แต่ .. ไม่ realtime นะจ๊ะ
7. Dynamic Links
จะดีไหมถ้าเรามีตัวช่วย ในการโปรโมท Application ของเรา ง่ายๆ
ผ่าน Website ด้วยการติดตั้งขั้นตอน เพียงหน้าเดียว
ในหัวข้อนี้ เราขอเสนอเจ้า Dynamic link หรือ Deep link ที่เราเคยรู้จักกันนั้นเอง
มันก็คือการที่เราสามารถโปรโมท/เชิญชวน คนอื่นๆ ให้ติดตั้งใช้งาน Application ของเราผ่าน Link เดียวบนหน้า Website ได้ง่ายๆ
เรามาดูขั้นตอนการทำงานของมันกันดีกว่า
- ถ้าผู้ใช้กดลิงค์ผ่าน บน Android มันจะทำการลิงค์ไปยัง Play Store ในหน้าของ Application เราเพื่อให้ติดตั้งหรือเปิดใช้งานทันที
- ถ้าผู้ใช้กดลิงค์ผ่าน บน iOS มันจะทำการลิงค์ไปยัง Apple Store ในหน้าของ Application เราเพื่อให้ติดตั้งหรือเปิดใช้งานทันที
- ถ้าผู้ใช้กดลิงค์ผ่าน บน Website/Desktop จะกลายเป็นลิงค์ธรรมดา
โดยการแยกประเภทต่างๆนี้ ทาง Dynamic Firebase จัดการให้เราเองทุกอย่าง!
ทีเหลือเราเพียงแค่ ติดตั้ง ขั้นตอน/ใส่ลิงค์/ข้อความ และ รูปภาพที่ต้องการจะให้แสดง
โดยขั้นตอนการติดตั้งจะมีทั้งหมด 5 หัวข้อ
- คือการที่เราจะ set link ที่จะให้ไป ในกรณีที่ ผู้ใช้เปิดผ่าน Website/Desktop
- คือการ set การทำงาน ในส่วนของ iOS ว่าจะให้เปิด deep link บนบราวเซอร์(Safari) หรือให้เปิดในตัวแอพที่เรากำลังเข้าอยู่ เช่นถ้าผู้ใช้งาน คลิกลิงค์จากการแชร์บนหน้า facebook มันก็จะเปิด deep link ผ่านหน้า facebook
และ ถ้าในกรณีที่ยังไม่มีแอพ จะให้ผู้ใช้ ไปตรงไหนต่อ (ซึ่งในตัวอย่างนี้ เราจะให้เปิด App store เพื่อให้ผู้ใช้งาน install) - คือการ set การทำงาน ในส่วนของ andriod ตรงนี้เช่นเดียวกันกับ iOS
- คือการ set UTM parameter เพื่อใช้วัดผลว่าการที่ผู้ใช้คลิกมา มาจาก source อะไร, medium อะไร หรือ campaign อะไร
- คือการ set หน้าตาของลิงค์ท่ีเราจะทำการเอาไปแปะไว้
อย่างเช่นในตัวอย่างนี้ เรา set ว่า..
จากนั้นเราก็นำ dynamic link ที่สร้างขึ้นมา ไปใส่ยัง view ต่างๆ
ที่เราต้องการให้เป็น action ของการแชร์ link นี้
ดังตัวอย่าง เช่น
ผลลัพท์ที่ได้คือ
หลังจากการทำงานแล้ว เรายังสามารถดู report ได้ด้วยว่า ในแต่ละลิงค์ ถูกคลิกไปเท่าไหร่ และถูกคลิกมากในช่วงเวลาใดบ้าง หรือดู link detail กับ flow ได้อีกตังหาก
ถือว่าฟีเจอร์นี้ทำมาครอบคลุมและใช้งานง่ายจริงๆ
8. Invites
Invite ก็มาแนวการเชิญชวนเพื่อนเหมือน Dynamic link เลย
แต่ต่างกันตรงที่ จะเป็นการ invite เพื่อน ผ่านอีเมลนั้นเอง
โดยการ set ค่าทุกอย่าง จะต้องทำผ่านแอพ เช่น การนำ dynamic link ข้อมูล
หรือ รูปไปใส่ เราอาจจะประยุกต์โดยการใช้ Remote config (อยู่ในหัวข้อที่ 11 ) มาช่วยด้วยก็ได้
เรามาดูตัวอย่างกันเลยย
นี่คือผลลัพท์ของ อีเมลที่ได้รับการส่ง invite มา
และถ้าเราทำการเปิดอีเมล ผ่าน mobile กันละ
หลังจากนี้ผู้ใช้งานก็จะสามารถเชิญชวนเพื่อนให้ใช้งานหรือติดตั้งแอพเราผ่านอีเมลได้แล้ว
9. Admob
มาถึงตัวนี้ เจ้า Admod หรือที่ใช้สร้างโฆษณาบนหน้าแอพ/เว็บ นั้นเอง
โดยเจ้าตัว Firebase นั้น จะเป็นทางผ่านเพื่อให้ใช้งาน AdMob
ทางผ่านจริงๆ เพราะทางผู้เขียนไม่เห็นถึงความสัมพันธ์อะไรกันเลย -.-
โดยอันดับแรก เราต้องทำการ link แอพเราบน firebase ให้เข้ากับ Admob
จากนั้นเราสามารถทำการเลือก Format ของ AdMob ได้ตามต้องการเลย
โดยมันจะมีด้วยกันอยู่ 4 แบบ
- Banner แสดงแบบ 320*50
- Interstitial แสดงแบบคั่นหน้า
- Rewarded video แสดงเป็นวิดีโอ ที่สามารถบังคับให้ดูตามจำนวนเวลาที่ set ไว้
- Native
โดยในตัวอย่างนี้ ผู้เขียนได้เลือกเขียนแบบ Banner และ Interstitial
หลังจากนี้ผู้ใช้งานก็สามารถ ไปตั้งค่า Ads ได้บน AdMod
10. Cloud Messaging
เห้อ ฟีเจอร์ที่ชอบมาอีกแล้ว..
Firebase Cloud Messaging (FCM) หรือชื่อเดิมของมันคือ
Google Cloud Messaging (GCM) นั้นเอง
มันคือบริการเกี่ยวกับการ แจ้งเตือนข้อความ (Push Notification)
โดยทาง Firebase ได้ทำออกมา ให้รองรับกับทุก plateform (iOS,Andriod, และ Web) ที่สำคัญที่สุด คือมัน ฟรี !
เทพแล้วยังใจดีอีกตังหาก..
โดยเจ้าตัวนี้ มีการให้ใส่รายละเอียดหัวข้อ Noti และเลือกเวลาว่าจะส่งทันที หรือ
เลือกช่วงเวลาที่จะต้องการส่ง
แล้วความสามารถของเจ้าตัว Firebase ยังให้เราเลือก Target การส่งได้เป็น 3 แบบ อีกด้วย
- User segment คือการส่งให้ทุก Device ที่มีแอพนั้นๆ
- Topic คือเราสามารถทำการ subscribe topic ให้แต่ละ Device ได้ ขั้นตอนมีดังนี้
- Single device คือการที่เราสามารถเจาะจง Device ที่อยากจะทำการทดสอบส่งข้อความให้ อ้างอิงโดยใช้ device token นั้นเอง
ยิ่งไปกว่านั้น
ยังมีหัวข้อ Advanced options ให้เราอีกตังหาก แหม่ๆ
มันก็คือการที่เราจะสามารถ custom key ที่ส่งไปกับ notification ได้ เช่น
“attachement-url” ที่ใช้สำหรับการส่ง รูปภาพ
หรือจริงๆ จะเป็น key อะไรก็ได้ ขึ้นอยู่กับเราจะตั้งรับเป็น key อะไรบ้าง
- Priority = Hight สำหรับ iOS ก็จะคือการทดสอบให้ส่ง Notification
บน Background mode นั้นเอง - Sound ก็คือให้มีเสียงหรือไม่
- Expires ก็คือเวลาที่หมดอายุนั้นเอง คือถ้าผู้ใช้งาน ไม่ได้ทำการออนไลน์ มันก็จะทำการเก็บข้อความไว้ และถ้าผู้ใช้งานออนไลน์เมื่อไหร่ มันจะทำการส่ง notification ให้ทันที นี่คืออายุของตรงนี้นี่เอง
ดังตัวอย่าง
11. Remote config
เคยแปลกใจไหม ว่าทำไม Application ดังๆ มักจะมีการอัพเดทให้เข้ากับสถานการณ์ หรือ event ได้ทันเวลาอยู่ตลอดๆ
ยิ่งถ้าเป็นแอพ iOS นะ ทำกันได้ไงเนี้ยะะ
(เราต่างรู้ว่า iOS เวลาในการส่ง Review แอพนั้น แล้วแต่อารมณ์ของทาง Apple มาก บางวันก็เร็วจนใจหาย (1–2วัน)บางวันก็แหม่ ล่อไปเป็น 5 วัน บ่นๆๆ)
จะดีไหมถ้าเรามีตัวช่วยในเรื่องนี้ ก็คือ เจ้าตัว Remote Config นั้นเอง
โดยเจ้าตัวนี้มันยินยอมให้เรา สร้าง Key ที่จะใช้คุยกับแอพ โดยทางแอพจะทำหน้าที่ก็คือ ดักรับ Key นี้ และนำค่าของ key นี้ไปใช้ เมื่อมีการเปลี่ยนแปลง ดังตัวอย่าง
จะเห็นได้ว่า เมื่อมีการอัพเดทค่าผ่าน Firebase Console ในตัวแอพพลิเคชั่น จะได้รับการอัพเดทค่าด้วยเช่น เมื่อมีการเรียกผ่านในส่วนที่เราเขียนรับค่าไว้
หลังจากนี้เราก็สามารถประยุกต์ เพื่อนำไปใช้ในการอัพเดทธีม ของแอพพลิเคชั่นเรา ให้ทันกับสถานการณ์ต่างๆได้
Pricing
สุดท้ายนี้ ของฟรี และ ไม่มีลิมิต ไม่มีในโลกจ้าาาา
โดยฟีเจอร์ที่มีข้อจำกัดและราคา ได้แก่
และสามารถดูรายละเอียดเพิ่มเติม ได้ ที่นี่
สรุปผลที่ได้
โดยส่วนตัวของผู้เขียนนั้น รู้สึกประทับใจเป็นอย่างมาก
จากที่ได้ลองใช้ในหลายๆฟีเจอร์ ที่ทาง Firebase นั้นมีให้
ต้องยอมรับก่อนว่า แต่เดิมผู้เขียนนั้น จะไม่ถนัดในเรื่องของ Back-end หรือ DB มากมายนัก จึงมักทำให้มีปัญหาบ้าง เวลาที่ต้องทำ Application และ DB เอง
แต่หลังจากรู้จัก Firebase แล้ว ปัญหาเหล่านี้ทั้งหมดก็หมดไป
แถมเจ้าตัว Firebase ยังมีลูกเล่นให้ลองเล่นอีกมากมาย แหนะ
เรียกได้ว่า เจ้าตัว Firebase เกิดมาเพื่อเป็นผู้ให้บริการ Backend ครบวงจร
สำหรับนักพัฒนาแอพนั้นเอง