1. บทนำ
เป้าหมาย
ใน Codelab นี้ คุณจะได้ติดตั้งเครื่องมือทดสอบการรับส่งข้อความในแอปสำหรับแอปแนะนำร้านอาหารบนอุปกรณ์เคลื่อนที่แบบหลายแพลตฟอร์มที่ขับเคลื่อนโดย Flutter และ Cloud Firestore
เมื่อเสร็จแล้ว คุณจะออกแบบและใช้การทดสอบการรับส่งข้อความในแอปเพื่อเพิ่มการมีส่วนร่วมของผู้ใช้ในแอป iOS หรือ Android ได้อย่างมีประสิทธิภาพในขณะที่เขียนโค้ดในปริมาณน้อยที่สุด
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้การรับส่งข้อความในแอป Firebase (FIAM) ในแอป Flutter
- วิธีปรับแต่งลักษณะที่ปรากฏของข้อความในแอป
- วิธีออกแบบการทดสอบการรับส่งข้อความในแอปและนำไปใช้ในแอป
- วิธีตีความผลลัพธ์ของการทดสอบการรับส่งข้อความในแอป
คุณต้องการเรียนรู้อะไรจากโค้ดแล็บนี้
การรับส่งข้อความในแอป Firebase
ข้อความในแอป Firebase (FIAM) ช่วยให้คุณดึงดูดผู้ใช้ที่กําลังใช้แอปอยู่ด้วยการส่งข้อความที่กำหนดเป้าหมายและข้อความตามบริบทซึ่งกระตุ้นให้ผู้ใช้ทําการกระทำที่สําคัญในแอปให้เสร็จสมบูรณ์ เช่น ผ่านด่านในเกม ซื้อไอเทม หรือสมัครใช้บริการเนื้อหา
Firebase A/B Testing
Firebase A/B Testing (ABT) ซึ่งขับเคลื่อนโดย Google Optimize ช่วยให้คุณเพิ่มประสิทธิภาพประสบการณ์การใช้งานแอปได้โดยทำให้การเรียกใช้ วิเคราะห์ และปรับขนาดการทดสอบผลิตภัณฑ์และการทดสอบทางการตลาดเป็นไปอย่างง่ายดาย ฟีเจอร์นี้จะมอบความสามารถอันทรงพลังในการทดสอบการเปลี่ยนแปลงที่เกิดขึ้นกับ UI, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอป เพื่อดูว่าการเปลี่ยนแปลงสร้างความแตกต่างอย่างชัดเจนได้จริงๆ หรือไม่ในเมตริกที่สำคัญ (เช่น รายได้และการรักษาผู้ใช้) ก่อนที่จะเปิดตัวในวงกว้าง
สิ่งที่คุณต้องมี
หากคุณไม่คุ้นเคยกับ Flutter หรือ Firestore มากนัก ให้ทำตาม Codelab Firebase สำหรับ Flutter ให้เสร็จสมบูรณ์ก่อน
คุณเรียกใช้ Codelab นี้ได้โดยใช้อุปกรณ์ต่อไปนี้
- อุปกรณ์จริง (Android หรือ iOS) ที่เชื่อมต่อกับคอมพิวเตอร์และตั้งค่าเป็นโหมดนักพัฒนาแอป
- โปรแกรมจำลอง iOS (ต้องติดตั้งเครื่องมือ Xcode)
- โปรแกรมจำลอง Android (ต้องตั้งค่าใน Android Studio)
นอกจากที่กล่าวมาข้างต้นแล้ว คุณจะต้องมีสิ่งต่อไปนี้ด้วย
- เบราว์เซอร์ที่คุณเลือก เช่น Chrome
- IDE หรือโปรแกรมแก้ไขข้อความที่คุณเลือก เช่น Android Studio หรือ VS Code ที่กำหนดค่าด้วยปลั๊กอิน Dart และ Flutter เราขอแนะนำให้ใช้ VS Code กับ Flutter
- Flutter เวอร์ชันเสถียรล่าสุด (หรือเวอร์ชันเบต้าหากคุณชอบลองใช้ฟีเจอร์ใหม่ๆ)
- บัญชี Google เช่น บัญชี Gmail สำหรับสร้างและจัดการโปรเจ็กต์ Firebase
- โค้ดตัวอย่างของโค้ดแล็บ ดูวิธีรับโค้ดในขั้นตอนถัดไป
2. ตั้งค่า
รับรหัส
โคลนที่เก็บ GitHub จากบรรทัดคำสั่งโดยทำดังนี้
git clone https://github.com/FirebaseExtended/codelab-friendlyeats-flutter.git friendlyeats-flutter
ระบบจะโคลนโค้ดตัวอย่างไปยังไดเรกทอรี friendlyeats-flutter
จากนี้ไป โปรดเรียกใช้คำสั่งจากไดเรกทอรีนี้
cd friendlyeats-flutter
จากนั้นให้เปลี่ยนเป็นไดเรกทอรี Codelab แล้วตรวจสอบสาขา fiam-abt
git checkout fiam-abt
สาขานี้มีโค้ดทั้งหมดที่จำเป็นสำหรับโค้ดแล็บนี้ รวมถึงเวอร์ชันที่เสร็จสมบูรณ์ในโฟลเดอร์ done
สาขาอื่นๆ ในที่เก็บนี้มีโค้ดสำหรับการสร้างแอป FriendlyEats ตามที่แสดงใน Codelab Firestore Flutter แบบหลายแพลตฟอร์ม เราได้นำการผสานรวมเว็บในกิ่งนี้ออกเพื่อวัตถุประสงค์ของโค้ดแล็บนี้
นำเข้าแอปเริ่มต้น
เปิดหรือนำเข้าไดเรกทอรี codelab-fiam-abt
ไปยัง IDE ที่ต้องการ ไดเรกทอรีนี้มีโค้ดเริ่มต้นสำหรับ Codelab ซึ่งประกอบด้วยแอปแนะนำร้านอาหาร คุณจะได้ใช้ Codelab นี้เพื่อติดตั้งการทดสอบการรับส่งข้อความในแอปสำหรับผู้ใช้แอปนี้
สร้างโปรเจ็กต์ Firebase
- ลงชื่อเข้าใช้คอนโซล Firebase โดยใช้บัญชี Google
- คลิกปุ่มเพื่อสร้างโปรเจ็กต์ใหม่ แล้วป้อนชื่อโปรเจ็กต์ (เช่น
FriendlyEats
)
- คลิกต่อไป
- หากได้รับแจ้ง ให้อ่านและยอมรับข้อกำหนดของ Firebase แล้วคลิกต่อไป
- (ไม่บังคับ) เปิดใช้ความช่วยเหลือจาก AI ในคอนโซล Firebase (เรียกว่า "Gemini ใน Firebase")
- สำหรับโค้ดแล็บนี้ คุณต้องใช้ Google Analytics เพื่อใช้ผลิตภัณฑ์ Firebase ได้อย่างมีประสิทธิภาพสูงสุด ดังนั้นให้เปิดตัวเลือก Google Analytics ไว้ ทำตามวิธีการบนหน้าจอเพื่อตั้งค่า Google Analytics
- คลิกสร้างโปรเจ็กต์ รอให้ระบบจัดสรรโปรเจ็กต์ แล้วคลิกดำเนินการต่อ
ยินดีด้วย คุณเพิ่งสร้างโปรเจ็กต์ Firebase แรก
จากนั้นคุณจะดูการกำหนดค่าและการเปิดใช้บริการที่จำเป็นโดยใช้คอนโซล Firebase
เปิดใช้การตรวจสอบสิทธิ์แบบไม่ระบุชื่อ
แม้ว่าการตรวจสอบสิทธิ์จะไม่ใช่จุดสนใจของโค้ดแล็บนี้ แต่การมีรูปแบบการตรวจสอบสิทธิ์บางอย่างในแอปก็เป็นสิ่งสำคัญ คุณจะใช้การเข้าสู่ระบบแบบไม่ระบุตัวตน ซึ่งหมายความว่าระบบจะลงชื่อเข้าใช้ผู้ใช้โดยอัตโนมัติโดยไม่ต้องแจ้งให้ทราบ
วิธีเปิดใช้การเข้าสู่ระบบแบบไม่ระบุชื่อ
- ในคอนโซล Firebase ให้ค้นหาการตรวจสอบสิทธิ์ในแถบนำทางด้านซ้าย
- คลิกการตรวจสอบสิทธิ์ จากนั้นคลิกเริ่มต้นใช้งาน แล้วเลือกแท็บวิธีการลงชื่อเข้าใช้ (หรือไปที่คอนโซล Firebase โดยตรง)
- เปิดใช้ผู้ให้บริการลงชื่อเข้าใช้แบบไม่ระบุชื่อ แล้วคลิกบันทึก
การเปิดใช้การเข้าสู่ระบบแบบไม่ระบุตัวตนจะช่วยให้แอปพลิเคชันลงชื่อเข้าใช้ผู้ใช้โดยอัตโนมัติเมื่อผู้ใช้เข้าถึงแอป ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบการตรวจสอบสิทธิ์แบบไม่ระบุตัวตนสำหรับ Android และ iOS
ตั้งค่า Cloud Firestore
แอปใช้ Cloud Firestore เพื่อบันทึกและรับข้อมูลและคะแนนของร้านอาหาร
วิธีตั้งค่า Cloud Firestore ในโปรเจ็กต์ Firebase มีดังนี้
- ในแผงด้านซ้ายของคอนโซล Firebase ให้ขยายสร้าง แล้วเลือกฐานข้อมูล Firestore
- คลิกสร้างฐานข้อมูล
- ตั้งค่ารหัสฐานข้อมูลเป็น
(default)
ไว้ดังเดิม - เลือกตำแหน่งสำหรับฐานข้อมูล แล้วคลิกถัดไป
สำหรับแอปจริง คุณควรเลือกตำแหน่งที่อยู่ใกล้กับผู้ใช้ - คลิกเริ่มในโหมดทดสอบ อ่านข้อจำกัดความรับผิดเกี่ยวกับกฎความปลอดภัย
ในภายหลังใน Codelab นี้ คุณจะเพิ่มกฎความปลอดภัยเพื่อรักษาความปลอดภัยของข้อมูล อย่าเผยแพร่หรือเปิดเผยแอปต่อสาธารณะโดยไม่ได้เพิ่มกฎความปลอดภัยสำหรับฐานข้อมูล - คลิกสร้าง
3. การกำหนดค่า Firebase สำหรับอุปกรณ์เคลื่อนที่โดยเฉพาะ
การเปลี่ยนแปลงโค้ดส่วนใหญ่ที่จำเป็นต่อการเปิดใช้การรองรับ Firebase ได้รับการตรวจสอบในโปรเจ็กต์ที่คุณกำลังทํางานอยู่แล้ว อย่างไรก็ตาม หากต้องการเพิ่มการรองรับแพลตฟอร์มอุปกรณ์เคลื่อนที่ คุณต้องทำดังนี้
- ลงทะเบียนแพลตฟอร์มที่ต้องการในโปรเจ็กต์ Firebase
- ดาวน์โหลดไฟล์การกำหนดค่าเฉพาะแพลตฟอร์ม แล้วเพิ่มลงในโค้ด
ในไดเรกทอรีระดับบนสุดของแอป Flutter จะมีไดเรกทอรีย่อยที่ชื่อ ios
และ android
โดยไดเรกทอรีเหล่านี้จะเก็บไฟล์การกำหนดค่าเฉพาะแพลตฟอร์มสำหรับ iOS และ Android ตามลำดับ
กำหนดค่า iOS
ในคอนโซล Firebase ให้เลือกการตั้งค่าโปรเจ็กต์ที่ด้านบนของแถบนำทางด้านซ้าย แล้วคลิกปุ่ม iOS ในส่วนแอปของคุณในหน้าทั่วไป
คุณควรเห็นกล่องโต้ตอบต่อไปนี้
- ค่าที่สำคัญซึ่งต้องระบุคือรหัสชุด iOS คุณจะได้รับ Bundle ID โดยทำตาม 3 ขั้นตอนถัดไป
- ในเครื่องมือบรรทัดคำสั่ง ให้ไปที่ไดเรกทอรีระดับบนสุดของแอป Flutter
- เรียกใช้คำสั่ง
open ios/Runner.xcworkspace
เพื่อเปิด Xcode
- ใน Xcode ให้คลิก Runner ระดับบนสุดในแผงด้านซ้ายเพื่อแสดงแท็บทั่วไปในแผงด้านขวา ดังที่แสดง คัดลอกค่าตัวระบุแพ็กเกจ
- กลับไปที่กล่องโต้ตอบ Firebase วางตัวระบุแพ็กเกจที่คัดลอกไว้ลงในช่องรหัสแพ็กเกจ iOS แล้วคลิกลงทะเบียนแอป
- ทำตามวิธีการใน Firebase เพื่อดาวน์โหลดไฟล์การกำหนดค่า
GoogleService-Info.plist
- กลับไปที่ Xcode โปรดสังเกตว่า Runner มีโฟลเดอร์ย่อยชื่อ Runner ด้วย (แสดงในรูปภาพก่อนหน้า)
- ลาก
GoogleService-Info.plist
ไฟล์ (ที่คุณเพิ่งดาวน์โหลด) ไปยังโฟลเดอร์ย่อย Runner ดังกล่าว - ในกล่องโต้ตอบที่ปรากฏใน Xcode ให้คลิกเสร็จสิ้น
- กลับไปที่คอนโซล Firebase ในขั้นตอนการตั้งค่า ให้คลิกถัดไป ข้ามขั้นตอนที่เหลือ แล้วกลับไปที่หน้าหลักของคอนโซล Firebase
คุณกำหนดค่าแอป Flutter สำหรับ iOS เสร็จแล้ว
กำหนดค่า Android
- ในคอนโซล Firebase ให้เลือกการตั้งค่าโปรเจ็กต์ที่ด้านบนของแถบนำทางด้านซ้าย แล้วคลิกปุ่ม Android ในส่วนแอปของคุณในหน้าทั่วไป
คุณควรเห็นกล่องโต้ตอบต่อไปนี้
- ค่าที่สำคัญซึ่งต้องระบุคือชื่อแพ็กเกจ Android คุณจะได้รับชื่อแพ็กเกจเมื่อทำตาม 2 ขั้นตอนต่อไปนี้
- เปิดไฟล์
android/app/src/main/AndroidManifest.xml
ในไดเรกทอรีแอป Flutter - ในองค์ประกอบ
manifest
ให้ค้นหาค่าสตริงของแอตทริบิวต์package
ค่านี้คือชื่อแพ็กเกจ Android (เช่นcom.yourcompany.yourproject
) คัดลอกค่านี้ - ในกล่องโต้ตอบ Firebase ให้วางชื่อแพ็กเกจที่คัดลอกไว้ในช่องชื่อแพ็กเกจ Android
- คุณไม่จำเป็นต้องใช้ SHA-1 ของใบรับรองการลงนามในการแก้ไขข้อบกพร่องสำหรับ Codelab นี้ เว้นว่างไว้
- คลิกลงทะเบียนแอป
- ทำตามวิธีการเพื่อดาวน์โหลดไฟล์การกำหนดค่า
google-services.json
ใน Firebase ต่อไป - ไปที่ไดเรกทอรีแอป Flutter แล้วย้ายไฟล์
google-services.json
(ที่คุณเพิ่งดาวน์โหลด) ไปยังไดเรกทอรีandroid/app
- กลับไปที่คอนโซล Firebase ให้ข้ามขั้นตอนที่เหลือ แล้วกลับไปที่หน้าหลักของคอนโซล Firebase
- ระบบได้เช็คอินการกำหนดค่า Gradle ทั้งหมดแล้ว หากแอปยังทำงานอยู่ ให้ปิดแล้วสร้างใหม่เพื่อให้ Gradle ติดตั้งการอ้างอิงได้
คุณกำหนดค่าแอป Flutter สำหรับ Android เสร็จแล้ว
4. เรียกใช้แอปในเครื่อง
คุณพร้อมที่จะเริ่มทำงานกับแอปแล้ว ก่อนอื่น ให้เรียกใช้แอปในเครื่อง ตอนนี้คุณสามารถเรียกใช้แอปในแพลตฟอร์มใดก็ได้ที่คุณกำหนดค่าไว้ (และมีอุปกรณ์และโปรแกรมจำลองพร้อมใช้งาน)
ดูว่ามีอุปกรณ์ใดบ้างที่พร้อมใช้งานด้วยคำสั่งต่อไปนี้
flutter devices
เอาต์พุตของคำสั่งก่อนหน้าจะมีลักษณะดังนี้ ขึ้นอยู่กับอุปกรณ์ที่พร้อมใช้งาน
ตอนนี้ให้เรียกใช้แอปในเครื่องด้วยคำสั่งต่อไปนี้
flutter run
ตอนนี้คุณควรเห็นสำเนาของ FriendlyEats ที่เชื่อมต่อกับโปรเจ็กต์ Firebase
แอปจะเชื่อมต่อกับโปรเจ็กต์ Firebase โดยอัตโนมัติและลงชื่อเข้าใช้ให้คุณเป็นผู้ใช้ที่ไม่ระบุตัวตนโดยไม่มีการแจ้งเตือน
5. สร้างและทดสอบข้อความแรก
ผสานรวมการรับส่งข้อความในแอป Firebase เข้ากับแอป
การผสานรวมพื้นฐานของข้อความในแอปนั้นไม่ต้องใช้โค้ดเลย เพียงแค่เพิ่มการอ้างอิงก็พร้อมใช้งานแล้ว เพิ่มทรัพยากร Dependency ต่อไปนี้ลงในไฟล์ pubspec.yaml
dependencies:
# ...
firebase_in_app_messaging: ^0.4.0
# ...
เขียนข้อความในคอนโซล Firebase
ตอนนี้คุณได้เพิ่ม FIAM ลงในแอปแล้ว มาเขียนข้อความที่จะทริกเกอร์เมื่อเปิดแอปเป็นครั้งแรกกัน
วิธีเขียนข้อความแรก
- ในส่วนมีส่วนร่วมของคอนโซล Firebase ให้คลิกการรับส่งข้อความในแอป
- คลิกสร้างแคมเปญแรกในแผงการรับส่งข้อความในแอป
มาเขียนข้อความโมดัลพื้นฐานเพื่อให้แน่ใจว่าการผสานรวมทำงานได้ คุณปรับแต่งข้อความได้ตามต้องการ ไม่ว่าจะเพิ่มรูปภาพ ปุ่ม หรือเปลี่ยนสี
อย่าลืมกำหนดเป้าหมายแอปที่ต้องการทดสอบ โดยคุณอาจมี iOS, Android หรือทั้ง 2 อย่าง ขึ้นอยู่กับเส้นทางการผสานรวมที่คุณทำตาม
เราต้องการให้ข้อความทริกเกอร์เมื่อแอปเปิดขึ้น ดังนั้นการกำหนดค่าการตั้งเวลาเริ่มต้นจะใช้ได้ที่นี่
เมื่อตั้งเวลาเสร็จแล้ว เราจะเผยแพร่ข้อความได้ คลิก "ตรวจสอบ" แล้วคุณจะเห็นข้อความคล้ายกับข้อความต่อไปนี้
ดูข้อความในแอป
ตอนนี้ให้ถอนการติดตั้งแอปแล้วติดตั้งอีกครั้ง คุณควรเห็นข้อความที่สร้างแสดงขึ้นเมื่อเปิดแอป ยินดีด้วย คุณเพิ่งส่งข้อความในแอปเป็นครั้งแรก ในขั้นตอนถัดไป คุณจะได้เรียนรู้วิธีเพิ่มเหตุการณ์ Analytics เพื่อทริกเกอร์ข้อความในแอปตามการกระทําที่ผู้ใช้ทําในแอป
6. ผสานรวม Firebase Analytics เพื่อทริกเกอร์ข้อความขั้นสูง
ผสานรวม Firebase Analytics เข้ากับแอป
ตอนนี้เราจะเพิ่มเหตุการณ์ Analytics เมื่อผู้ใช้คลิกร้านอาหาร เพื่อให้เข้าใจวิธีที่ผู้ใช้โต้ตอบกับแอปของเรา และทริกเกอร์ข้อความในแอปตามการกระทำของผู้ใช้
- เพิ่มทรัพยากร Dependency ของ Firebase Analytics ลงใน Flutter ใน
pubspec.yaml
dependencies:
# ...
firebase_analytics: ^1.0.1
# ...
- นำเข้าข้อมูลวิเคราะห์ใน
home_page.dart
import 'package:firebase_analytics/firebase_analytics.dart';
- เพิ่มอินสแตนซ์ของ Firebase Analytics ไปยังคลาส HomePage ใน
home_page.dart
class HomePage extends StatefulWidget {
static const route = '/';
static FirebaseAnalytics analytics = FirebaseAnalytics();
HomePage({Key key}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
- เรียกใช้เหตุการณ์วิเคราะห์เมื่อผู้ใช้คลิกการ์ดร้านอาหารใน
home_page.dart
onRestaurantPressed: (id) async {
await HomePage.analytics.logEvent(name: 'click_restaurant');
Navigator.pushNamed(context,
RestaurantPage.route,
arguments: RestaurantPageArguments(id: id));
})
แก้ไขข้อความให้ทริกเกอร์ในเหตุการณ์ Analytics
ตอนนี้เรามีเหตุการณ์ "click_restaurant" แล้ว มาทริกเกอร์ข้อความในแอปตามเหตุการณ์นั้นแทนที่จะเป็นเมื่อผู้ใช้เปิดแอปกัน
ในคอนโซล Firebase ให้กลับไปที่ข้อความในแอปและแก้ไขแคมเปญที่มีอยู่
ตอนนี้ให้เปลี่ยนส่วนการตั้งเวลาเพื่อทริกเกอร์ข้อความจากเหตุการณ์ใหม่
จากนั้นเราจะเผยแพร่การเปลี่ยนแปลงได้โดยคลิกปุ่ม "ตรวจสอบ"
ทดสอบทริกเกอร์ในแอป
ในตอนนี้ คุณควรเรียกใช้แอปได้แล้ว
flutter run
และเมื่อคลิกร้านอาหาร คุณจะเห็นข้อความในแอป
7. สร้างแคมเปญ FIAM+ABT
เริ่มต้นด้วยการตั้งเป้าหมาย
แอป Friendlyeats ของเราดูดีอยู่แล้ว แต่เราต้องมีรีวิวเพื่อให้แอปมีประโยชน์ โดยรีวิวเหล่านี้จะมาจากผู้ใช้ Friendlyeats ดังนั้นเรามาหาวิธีส่งเสริมให้ผู้ใช้เขียนรีวิวกัน
ก่อนอื่น เรามากำหนดเหตุการณ์ Conversion กัน
เนื่องจากเราต้องการดูว่าผู้ใช้รีวิวร้านอาหารหรือไม่ เราจึงมาเพิ่มเหตุการณ์ Analytics เพื่อวัดพฤติกรรมนี้กัน
- นําเข้า Firebase Analytics เหมือนเดิม และเพิ่มอินสแตนซ์ของ Analytics ไปยัง RestaurantPage ใน
restaurant_page.dart
class RestaurantPage extends StatefulWidget {
static const route = '/restaurant';
static FirebaseAnalytics analytics = FirebaseAnalytics();
final String _restaurantId;
RestaurantPage({Key key, @required String restaurantId})
: _restaurantId = restaurantId,
super(key: key);
@override
_RestaurantPageState createState() =>
_RestaurantPageState(restaurantId: _restaurantId);
}
- ตอนนี้เรามาทริกเกอร์เหตุการณ์ใน
_onCreateReviewPressed
เมื่อบันทึกรีวิวในrestaurant_page.dart
if (newReview != null) {
// Log successful review
await RestaurantPage.analytics.logEvent(name: 'review_success');
// Save the review
return data.addReview(restaurantId: _restaurant.id, review: newReview);
}
กำหนดค่าการทดสอบ A/B ในคอนโซล Firebase
เมื่อทราบวิธีสร้างแคมเปญข้อความในแอปแล้ว ตอนนี้ก็ได้เวลาพิจารณาพฤติกรรมที่เราต้องการกระตุ้นในแอปผ่านแคมเปญเหล่านี้ สำหรับ FriendlyEats เราต้องการให้ผู้คนเขียนรีวิวมากขึ้น ซึ่งจะทำให้แอปมีประโยชน์มากขึ้น เราสามารถกระตุ้นให้ผู้ใช้ทำเช่นนี้ได้หลายวิธีโดยใช้ข้อความในแอป วิธีหนึ่งคือการส่งข้อความในแอปง่ายๆ ที่บอกให้ผู้ใช้รีวิวร้านอาหารเพื่อช่วยปรับปรุงแอป FriendlyEats อีกวิธีคือการใช้ข้อความในแอปเพื่อเสนอสิ่งจูงใจบางอย่างสำหรับการรีวิว เช่น คูปองหรือรหัสส่วนลดสำหรับร้านอาหารที่กำหนด
ทั้ง 2 วิธีนี้อาจช่วยเพิ่มความถี่ที่ผู้ใช้รีวิวร้านอาหารบน FriendlyEats และดูเหมือนว่าการให้คูปองอาจมีผลที่แข็งแกร่งยิ่งกว่าในกรณีนี้ แต่การให้คูปองนี้จะทำให้ผู้ใช้มีแนวโน้มที่จะเขียนรีวิวมากขึ้นเพียงใด คูปองนั้นคุ้มค่ากับต้นทุนตั้งแต่แรกหรือไม่ เราจะทำการทดสอบการรับส่งข้อความในแอปเพื่อพิจารณาเรื่องนี้ เราใช้ Firebase A/B Testing เพื่อแสดงข้อความในแอปแบบสุ่มข้อความใดข้อความหนึ่งต่อผู้ใช้ และวัดผลกระทบที่ข้อความนี้มีต่อพฤติกรรมของผู้ใช้ ซึ่งคล้ายกับการทดลองทางคลินิก และที่สำคัญที่สุดคือ คุณสามารถทำทุกอย่างผ่านคอนโซล Firebase ได้โดยไม่ต้องเขียนโค้ด
วิธีสร้างการทดสอบการรับส่งข้อความในแอปครั้งแรก
- ในส่วนมีส่วนร่วมของคอนโซล Firebase ให้คลิกการทดสอบ A/B
- คลิกสร้างการทดสอบ แล้วเลือกว่าต้องการทดสอบการรับส่งข้อความในแอป ซึ่งจะนำคุณไปยังเครื่องมือแต่งการทดสอบที่แสดงด้านล่าง
ตั้งชื่อและใส่คำอธิบาย (ไม่บังคับ) ให้กับการทดสอบ
- ขั้นตอนถัดไปคือการเขียนข้อความในแอปต่างๆ ที่คุณจะส่งไปยังผู้ใช้ในการทดสอบ ข้อความในแอปแรกที่เราจะเขียนคือ "พื้นฐาน" หรือกลุ่มควบคุมของการทดสอบ เราสามารถใช้ข้อความ "โปรดเขียนรีวิว" แบบง่ายๆ ดังนี้
- ตอนนี้เรามีพื้นฐานแล้ว เราจะเขียนข้อความทดสอบ ซึ่งเป็นข้อความในแอปที่เสนอคูปองส่วนลดให้ผู้ใช้เพื่อกระตุ้นให้ผู้ใช้เขียนรีวิว ข้อความนี้จะไม่แสดงอย่างเต็มรูปแบบในตัวอย่างด้านล่าง แต่ชื่อข้อความคือ "รับคูปองและเขียนรีวิว" และเนื้อหาข้อความคือ "ครั้งหน้าเมื่อคุณไปที่ Burrito Cafe ให้ใช้รหัสคูปอง FRIENDLYEATS-15 ที่จุดชำระเงินเพื่อรับส่วนลด 15% สำหรับคำสั่งซื้อของคุณ และอย่าลืมเขียนรีวิวหลังจากนั้นด้วยนะ" หวังว่าวิธีนี้จะช่วยกระตุ้นให้ผู้ใช้บางรายลองแวะไปที่ Burrito Cafe
ในขั้นตอนถัดไป เราจะกำหนดเป้าหมายแอปและตั้งค่าการเปิดเผย นี่เป็นเปอร์เซ็นต์ของผู้ใช้ที่มีสิทธิ์ (ผู้ที่ตรงตามเงื่อนไขการกำหนดเป้าหมาย/การทริกเกอร์) ซึ่งจะเห็นข้อความใดข้อความหนึ่งในการทดสอบ เราสามารถตั้งค่านี้เป็น 100% สำหรับตัวอย่างนี้ได้ เนื่องจากเราต้องการให้ผู้ใช้ทั้งหมดเห็นทั้งเส้นฐานหรือตัวแปรคูปอง หากต้องการมีกลุ่มควบคุมที่ไม่แสดงข้อความในแอปเลย คุณสามารถลดเปอร์เซ็นต์การแสดงนี้ได้
- จากนั้นคุณจะกำหนดเป้าหมายบางอย่างสำหรับการทดสอบ นี่คือผลลัพธ์ของการทดสอบที่เราต้องการวัด เราจะตั้งค่านี้เป็น
review_success
เหตุการณ์ Analytics ที่เรากําหนดไว้ในส่วนก่อนหน้า เนื่องจากเราต้องการดูผลกระทบที่ข้อความในแอปต่างๆ มีต่อผู้ใช้ที่เขียนรีวิวร้านอาหาร - สำหรับการกำหนดเวลา เราจะให้แคมเปญเริ่มทันทีและตั้งค่า
click_restaurant
เป็นเงื่อนไขทริกเกอร์ เพื่อให้ผู้ใช้เห็นข้อความในแอปข้อความใดข้อความหนึ่งเมื่อคลิกร้านอาหาร
- ตอนนี้สิ่งที่คุณต้องทำคือตรวจสอบการทดสอบ แล้วคลิกเริ่มการทดสอบ จากนั้นเราก็รอรับข้อมูลจากการทดสอบได้เลย
ดูการเก็บรวบรวมข้อมูลแบบเรียลไทม์
ตอนนี้เราได้เริ่มการทดสอบแล้ว ผู้ใช้ FriendlyEats จะเห็นข้อความในแอป 1 ใน 2 ข้อความที่เราเขียนขึ้นแบบสุ่มเมื่อคลิกร้านอาหาร ซึ่งอาจเป็นข้อความพื้นฐานหรือข้อความเวอร์ชันทดสอบ ซึ่งจะแบ่งผู้ใช้ของเราออกเป็น 2 กลุ่มตามข้อความที่ผู้ใช้เห็น จากนั้นเราจะดูในคอนโซล Firebase (อีกครั้งในส่วน A/B Testing) เพื่อเปรียบเทียบข้อมูลวิเคราะห์แบบเรียลไทม์จากทั้ง 2 กลุ่มได้ ระบบจะใช้เวลาสักครู่ในการรับข้อมูล เนื่องจากเราต้องรอให้ผู้ใช้เห็นข้อความในแอปและดำเนินการตามนั้นจริงๆ ตัวอย่างผลลัพธ์หลังจากมีข้อมูลเพียงพอ
ในกรณีนี้ ตัวแปรปรับปรุงจากค่าพื้นฐานอย่างมาก เราจึงเลือกนำตัวแปรไปใช้ได้ ซึ่งจะนำข้อความในแอปพร้อมคูปองไปใช้กับผู้ใช้ทั้งหมด
8. ขอแสดงความยินดี
ยินดีด้วย คุณสร้างและทำการทดสอบการรับส่งข้อความในแอปครั้งแรกสำเร็จแล้ว ตอนนี้คุณสามารถทำการทดสอบในแอปของตัวเอง และใช้ผลลัพธ์เพื่อทำให้แคมเปญข้อความในแอปมีประสิทธิภาพมากขึ้น
ขั้นตอนถัดไป
ลองดู Codelab เหล่านี้
อ่านเพิ่มเติม
เราเพิ่งเริ่มต้นเท่านั้นกับสิ่งที่ทำได้ด้วยการรับส่งข้อความในแอป Firebase และ Firebase A/B Testing ดูข้อมูลเพิ่มเติมได้ที่
- สร้างการทดสอบการรับส่งข้อความด้วยการทดสอบ A/B
- สร้างการทดสอบการกำหนดค่าระยะไกลด้วยการทดสอบ A/B
- สํารวจกรณีการใช้งานการรับส่งข้อความในแอป Firebase
- ปรับแต่งข้อความการรับส่งข้อความในแอป Firebase