การทดสอบการรับส่งข้อความในแอปครั้งแรก

1. บทนำ

เป้าหมาย

ใน Codelab นี้ คุณจะได้ติดตั้งเครื่องมือทดสอบการรับส่งข้อความในแอปสำหรับแอปแนะนำร้านอาหารบนอุปกรณ์เคลื่อนที่แบบหลายแพลตฟอร์มที่ขับเคลื่อนโดย Flutter และ Cloud Firestore

เมื่อเสร็จแล้ว คุณจะออกแบบและใช้การทดสอบการรับส่งข้อความในแอปเพื่อเพิ่มการมีส่วนร่วมของผู้ใช้ในแอป iOS หรือ Android ได้อย่างมีประสิทธิภาพในขณะที่เขียนโค้ดในปริมาณน้อยที่สุด

b284c40acc99b994.png

สิ่งที่คุณจะได้เรียนรู้

  • วิธีใช้การรับส่งข้อความในแอป 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

  1. ลงชื่อเข้าใช้คอนโซล Firebase โดยใช้บัญชี Google
  2. คลิกปุ่มเพื่อสร้างโปรเจ็กต์ใหม่ แล้วป้อนชื่อโปรเจ็กต์ (เช่น FriendlyEats)
  3. คลิกต่อไป
  4. หากได้รับแจ้ง ให้อ่านและยอมรับข้อกำหนดของ Firebase แล้วคลิกต่อไป
  5. (ไม่บังคับ) เปิดใช้ความช่วยเหลือจาก AI ในคอนโซล Firebase (เรียกว่า "Gemini ใน Firebase")
  6. สำหรับโค้ดแล็บนี้ คุณต้องใช้ Google Analytics เพื่อใช้ผลิตภัณฑ์ Firebase ได้อย่างมีประสิทธิภาพสูงสุด ดังนั้นให้เปิดตัวเลือก Google Analytics ไว้ ทำตามวิธีการบนหน้าจอเพื่อตั้งค่า Google Analytics
  7. คลิกสร้างโปรเจ็กต์ รอให้ระบบจัดสรรโปรเจ็กต์ แล้วคลิกดำเนินการต่อ

ยินดีด้วย คุณเพิ่งสร้างโปรเจ็กต์ Firebase แรก

จากนั้นคุณจะดูการกำหนดค่าและการเปิดใช้บริการที่จำเป็นโดยใช้คอนโซล Firebase

เปิดใช้การตรวจสอบสิทธิ์แบบไม่ระบุชื่อ

แม้ว่าการตรวจสอบสิทธิ์จะไม่ใช่จุดสนใจของโค้ดแล็บนี้ แต่การมีรูปแบบการตรวจสอบสิทธิ์บางอย่างในแอปก็เป็นสิ่งสำคัญ คุณจะใช้การเข้าสู่ระบบแบบไม่ระบุตัวตน ซึ่งหมายความว่าระบบจะลงชื่อเข้าใช้ผู้ใช้โดยอัตโนมัติโดยไม่ต้องแจ้งให้ทราบ

วิธีเปิดใช้การเข้าสู่ระบบแบบไม่ระบุชื่อ

  1. ในคอนโซล Firebase ให้ค้นหาการตรวจสอบสิทธิ์ในแถบนำทางด้านซ้าย
  2. คลิกการตรวจสอบสิทธิ์ จากนั้นคลิกเริ่มต้นใช้งาน แล้วเลือกแท็บวิธีการลงชื่อเข้าใช้ (หรือไปที่คอนโซล Firebase โดยตรง)
  3. เปิดใช้ผู้ให้บริการลงชื่อเข้าใช้แบบไม่ระบุชื่อ แล้วคลิกบันทึก

fee6c3ebdf904459.png

การเปิดใช้การเข้าสู่ระบบแบบไม่ระบุตัวตนจะช่วยให้แอปพลิเคชันลงชื่อเข้าใช้ผู้ใช้โดยอัตโนมัติเมื่อผู้ใช้เข้าถึงแอป ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบการตรวจสอบสิทธิ์แบบไม่ระบุตัวตนสำหรับ Android และ iOS

ตั้งค่า Cloud Firestore

แอปใช้ Cloud Firestore เพื่อบันทึกและรับข้อมูลและคะแนนของร้านอาหาร

วิธีตั้งค่า Cloud Firestore ในโปรเจ็กต์ Firebase มีดังนี้

  1. ในแผงด้านซ้ายของคอนโซล Firebase ให้ขยายสร้าง แล้วเลือกฐานข้อมูล Firestore
  2. คลิกสร้างฐานข้อมูล
  3. ตั้งค่ารหัสฐานข้อมูลเป็น (default) ไว้ดังเดิม
  4. เลือกตำแหน่งสำหรับฐานข้อมูล แล้วคลิกถัดไป
    สำหรับแอปจริง คุณควรเลือกตำแหน่งที่อยู่ใกล้กับผู้ใช้
  5. คลิกเริ่มในโหมดทดสอบ อ่านข้อจำกัดความรับผิดเกี่ยวกับกฎความปลอดภัย
    ในภายหลังใน Codelab นี้ คุณจะเพิ่มกฎความปลอดภัยเพื่อรักษาความปลอดภัยของข้อมูล อย่าเผยแพร่หรือเปิดเผยแอปต่อสาธารณะโดยไม่ได้เพิ่มกฎความปลอดภัยสำหรับฐานข้อมูล
  6. คลิกสร้าง

3. การกำหนดค่า Firebase สำหรับอุปกรณ์เคลื่อนที่โดยเฉพาะ

การเปลี่ยนแปลงโค้ดส่วนใหญ่ที่จำเป็นต่อการเปิดใช้การรองรับ Firebase ได้รับการตรวจสอบในโปรเจ็กต์ที่คุณกำลังทํางานอยู่แล้ว อย่างไรก็ตาม หากต้องการเพิ่มการรองรับแพลตฟอร์มอุปกรณ์เคลื่อนที่ คุณต้องทำดังนี้

  • ลงทะเบียนแพลตฟอร์มที่ต้องการในโปรเจ็กต์ Firebase
  • ดาวน์โหลดไฟล์การกำหนดค่าเฉพาะแพลตฟอร์ม แล้วเพิ่มลงในโค้ด

ในไดเรกทอรีระดับบนสุดของแอป Flutter จะมีไดเรกทอรีย่อยที่ชื่อ ios และ android โดยไดเรกทอรีเหล่านี้จะเก็บไฟล์การกำหนดค่าเฉพาะแพลตฟอร์มสำหรับ iOS และ Android ตามลำดับ

a35458e5c0dd0acf.png กำหนดค่า iOS

ในคอนโซล Firebase ให้เลือกการตั้งค่าโปรเจ็กต์ที่ด้านบนของแถบนำทางด้านซ้าย แล้วคลิกปุ่ม iOS ในส่วนแอปของคุณในหน้าทั่วไป

คุณควรเห็นกล่องโต้ตอบต่อไปนี้

c42139f18fb9a2ee.png

  1. ค่าที่สำคัญซึ่งต้องระบุคือรหัสชุด iOS คุณจะได้รับ Bundle ID โดยทำตาม 3 ขั้นตอนถัดไป
  1. ในเครื่องมือบรรทัดคำสั่ง ให้ไปที่ไดเรกทอรีระดับบนสุดของแอป Flutter
  2. เรียกใช้คำสั่ง open ios/Runner.xcworkspace เพื่อเปิด Xcode
  1. ใน Xcode ให้คลิก Runner ระดับบนสุดในแผงด้านซ้ายเพื่อแสดงแท็บทั่วไปในแผงด้านขวา ดังที่แสดง คัดลอกค่าตัวระบุแพ็กเกจ

9733e26be329f329.png

  1. กลับไปที่กล่องโต้ตอบ Firebase วางตัวระบุแพ็กเกจที่คัดลอกไว้ลงในช่องรหัสแพ็กเกจ iOS แล้วคลิกลงทะเบียนแอป
  1. ทำตามวิธีการใน Firebase เพื่อดาวน์โหลดไฟล์การกำหนดค่า GoogleService-Info.plist
  2. กลับไปที่ Xcode โปรดสังเกตว่า Runner มีโฟลเดอร์ย่อยชื่อ Runner ด้วย (แสดงในรูปภาพก่อนหน้า)
  3. ลากGoogleService-Info.plistไฟล์ (ที่คุณเพิ่งดาวน์โหลด) ไปยังโฟลเดอร์ย่อย Runner ดังกล่าว
  4. ในกล่องโต้ตอบที่ปรากฏใน Xcode ให้คลิกเสร็จสิ้น
  5. กลับไปที่คอนโซล Firebase ในขั้นตอนการตั้งค่า ให้คลิกถัดไป ข้ามขั้นตอนที่เหลือ แล้วกลับไปที่หน้าหลักของคอนโซล Firebase

คุณกำหนดค่าแอป Flutter สำหรับ iOS เสร็จแล้ว

84e0b3199bef6d8a.pngกำหนดค่า Android

  1. ในคอนโซล Firebase ให้เลือกการตั้งค่าโปรเจ็กต์ที่ด้านบนของแถบนำทางด้านซ้าย แล้วคลิกปุ่ม Android ในส่วนแอปของคุณในหน้าทั่วไป

คุณควรเห็นกล่องโต้ตอบต่อไปนี้ 8254fc299e82f528.png

  1. ค่าที่สำคัญซึ่งต้องระบุคือชื่อแพ็กเกจ Android คุณจะได้รับชื่อแพ็กเกจเมื่อทำตาม 2 ขั้นตอนต่อไปนี้
  1. เปิดไฟล์ android/app/src/main/AndroidManifest.xml ในไดเรกทอรีแอป Flutter
  2. ในองค์ประกอบ manifest ให้ค้นหาค่าสตริงของแอตทริบิวต์ package ค่านี้คือชื่อแพ็กเกจ Android (เช่น com.yourcompany.yourproject) คัดลอกค่านี้
  3. ในกล่องโต้ตอบ Firebase ให้วางชื่อแพ็กเกจที่คัดลอกไว้ในช่องชื่อแพ็กเกจ Android
  4. คุณไม่จำเป็นต้องใช้ SHA-1 ของใบรับรองการลงนามในการแก้ไขข้อบกพร่องสำหรับ Codelab นี้ เว้นว่างไว้
  5. คลิกลงทะเบียนแอป
  6. ทำตามวิธีการเพื่อดาวน์โหลดไฟล์การกำหนดค่า google-services.json ใน Firebase ต่อไป
  7. ไปที่ไดเรกทอรีแอป Flutter แล้วย้ายไฟล์ google-services.json (ที่คุณเพิ่งดาวน์โหลด) ไปยังไดเรกทอรี android/app
  8. กลับไปที่คอนโซล Firebase ให้ข้ามขั้นตอนที่เหลือ แล้วกลับไปที่หน้าหลักของคอนโซล Firebase
  9. ระบบได้เช็คอินการกำหนดค่า Gradle ทั้งหมดแล้ว หากแอปยังทำงานอยู่ ให้ปิดแล้วสร้างใหม่เพื่อให้ Gradle ติดตั้งการอ้างอิงได้

คุณกำหนดค่าแอป Flutter สำหรับ Android เสร็จแล้ว

4. เรียกใช้แอปในเครื่อง

คุณพร้อมที่จะเริ่มทำงานกับแอปแล้ว ก่อนอื่น ให้เรียกใช้แอปในเครื่อง ตอนนี้คุณสามารถเรียกใช้แอปในแพลตฟอร์มใดก็ได้ที่คุณกำหนดค่าไว้ (และมีอุปกรณ์และโปรแกรมจำลองพร้อมใช้งาน)

ดูว่ามีอุปกรณ์ใดบ้างที่พร้อมใช้งานด้วยคำสั่งต่อไปนี้

flutter devices

เอาต์พุตของคำสั่งก่อนหน้าจะมีลักษณะดังนี้ ขึ้นอยู่กับอุปกรณ์ที่พร้อมใช้งาน

7d44d7c0837b3e8e.png

ตอนนี้ให้เรียกใช้แอปในเครื่องด้วยคำสั่งต่อไปนี้

flutter run

ตอนนี้คุณควรเห็นสำเนาของ FriendlyEats ที่เชื่อมต่อกับโปรเจ็กต์ Firebase

แอปจะเชื่อมต่อกับโปรเจ็กต์ Firebase โดยอัตโนมัติและลงชื่อเข้าใช้ให้คุณเป็นผู้ใช้ที่ไม่ระบุตัวตนโดยไม่มีการแจ้งเตือน

5. สร้างและทดสอบข้อความแรก

ผสานรวมการรับส่งข้อความในแอป Firebase เข้ากับแอป

การผสานรวมพื้นฐานของข้อความในแอปนั้นไม่ต้องใช้โค้ดเลย เพียงแค่เพิ่มการอ้างอิงก็พร้อมใช้งานแล้ว เพิ่มทรัพยากร Dependency ต่อไปนี้ลงในไฟล์ pubspec.yaml

dependencies:
  # ...
  firebase_in_app_messaging: ^0.4.0
  # ...

เขียนข้อความในคอนโซล Firebase

ตอนนี้คุณได้เพิ่ม FIAM ลงในแอปแล้ว มาเขียนข้อความที่จะทริกเกอร์เมื่อเปิดแอปเป็นครั้งแรกกัน

วิธีเขียนข้อความแรก

  1. ในส่วนมีส่วนร่วมของคอนโซล Firebase ให้คลิกการรับส่งข้อความในแอป
  2. คลิกสร้างแคมเปญแรกในแผงการรับส่งข้อความในแอป

4fec02395f89f2a8.png

มาเขียนข้อความโมดัลพื้นฐานเพื่อให้แน่ใจว่าการผสานรวมทำงานได้ คุณปรับแต่งข้อความได้ตามต้องการ ไม่ว่าจะเพิ่มรูปภาพ ปุ่ม หรือเปลี่ยนสี

59845004afc26847.png

อย่าลืมกำหนดเป้าหมายแอปที่ต้องการทดสอบ โดยคุณอาจมี iOS, Android หรือทั้ง 2 อย่าง ขึ้นอยู่กับเส้นทางการผสานรวมที่คุณทำตาม

3f1eb7a327a50265.png

เราต้องการให้ข้อความทริกเกอร์เมื่อแอปเปิดขึ้น ดังนั้นการกำหนดค่าการตั้งเวลาเริ่มต้นจะใช้ได้ที่นี่

8dc5cea0a4c79008.png

เมื่อตั้งเวลาเสร็จแล้ว เราจะเผยแพร่ข้อความได้ คลิก "ตรวจสอบ" แล้วคุณจะเห็นข้อความคล้ายกับข้อความต่อไปนี้

5bbc987bf63d1f48.png

ดูข้อความในแอป

ตอนนี้ให้ถอนการติดตั้งแอปแล้วติดตั้งอีกครั้ง คุณควรเห็นข้อความที่สร้างแสดงขึ้นเมื่อเปิดแอป ยินดีด้วย คุณเพิ่งส่งข้อความในแอปเป็นครั้งแรก ในขั้นตอนถัดไป คุณจะได้เรียนรู้วิธีเพิ่มเหตุการณ์ Analytics เพื่อทริกเกอร์ข้อความในแอปตามการกระทําที่ผู้ใช้ทําในแอป

6. ผสานรวม Firebase Analytics เพื่อทริกเกอร์ข้อความขั้นสูง

ผสานรวม Firebase Analytics เข้ากับแอป

ตอนนี้เราจะเพิ่มเหตุการณ์ Analytics เมื่อผู้ใช้คลิกร้านอาหาร เพื่อให้เข้าใจวิธีที่ผู้ใช้โต้ตอบกับแอปของเรา และทริกเกอร์ข้อความในแอปตามการกระทำของผู้ใช้

  1. เพิ่มทรัพยากร Dependency ของ Firebase Analytics ลงใน Flutter ใน pubspec.yaml
dependencies:
  # ...
  firebase_analytics: ^1.0.1
  # ...
  1. นำเข้าข้อมูลวิเคราะห์ใน home_page.dart
import 'package:firebase_analytics/firebase_analytics.dart';
  1. เพิ่มอินสแตนซ์ของ 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();
}
  1. เรียกใช้เหตุการณ์วิเคราะห์เมื่อผู้ใช้คลิกการ์ดร้านอาหารใน 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 ให้กลับไปที่ข้อความในแอปและแก้ไขแคมเปญที่มีอยู่

d1fdc539dfcc6375.png

ตอนนี้ให้เปลี่ยนส่วนการตั้งเวลาเพื่อทริกเกอร์ข้อความจากเหตุการณ์ใหม่

8e12d8f1f8f166dd.png

จากนั้นเราจะเผยแพร่การเปลี่ยนแปลงได้โดยคลิกปุ่ม "ตรวจสอบ"

4f7d6bd2960b3ef7.png

ทดสอบทริกเกอร์ในแอป

ในตอนนี้ คุณควรเรียกใช้แอปได้แล้ว

flutter run

และเมื่อคลิกร้านอาหาร คุณจะเห็นข้อความในแอป

a11febda5526263.png

7. สร้างแคมเปญ FIAM+ABT

เริ่มต้นด้วยการตั้งเป้าหมาย

แอป Friendlyeats ของเราดูดีอยู่แล้ว แต่เราต้องมีรีวิวเพื่อให้แอปมีประโยชน์ โดยรีวิวเหล่านี้จะมาจากผู้ใช้ Friendlyeats ดังนั้นเรามาหาวิธีส่งเสริมให้ผู้ใช้เขียนรีวิวกัน

ก่อนอื่น เรามากำหนดเหตุการณ์ Conversion กัน

เนื่องจากเราต้องการดูว่าผู้ใช้รีวิวร้านอาหารหรือไม่ เราจึงมาเพิ่มเหตุการณ์ Analytics เพื่อวัดพฤติกรรมนี้กัน

  1. นําเข้า 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);
}
  1. ตอนนี้เรามาทริกเกอร์เหตุการณ์ใน _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 ได้โดยไม่ต้องเขียนโค้ด

วิธีสร้างการทดสอบการรับส่งข้อความในแอปครั้งแรก

  1. ในส่วนมีส่วนร่วมของคอนโซล Firebase ให้คลิกการทดสอบ A/B
  2. คลิกสร้างการทดสอบ แล้วเลือกว่าต้องการทดสอบการรับส่งข้อความในแอป ซึ่งจะนำคุณไปยังเครื่องมือแต่งการทดสอบที่แสดงด้านล่าง

a792dfd4f82fee9c.png

ตั้งชื่อและใส่คำอธิบาย (ไม่บังคับ) ให้กับการทดสอบ

  1. ขั้นตอนถัดไปคือการเขียนข้อความในแอปต่างๆ ที่คุณจะส่งไปยังผู้ใช้ในการทดสอบ ข้อความในแอปแรกที่เราจะเขียนคือ "พื้นฐาน" หรือกลุ่มควบคุมของการทดสอบ เราสามารถใช้ข้อความ "โปรดเขียนรีวิว" แบบง่ายๆ ดังนี้

50e3eb946c56501a.png

  1. ตอนนี้เรามีพื้นฐานแล้ว เราจะเขียนข้อความทดสอบ ซึ่งเป็นข้อความในแอปที่เสนอคูปองส่วนลดให้ผู้ใช้เพื่อกระตุ้นให้ผู้ใช้เขียนรีวิว ข้อความนี้จะไม่แสดงอย่างเต็มรูปแบบในตัวอย่างด้านล่าง แต่ชื่อข้อความคือ "รับคูปองและเขียนรีวิว" และเนื้อหาข้อความคือ "ครั้งหน้าเมื่อคุณไปที่ Burrito Cafe ให้ใช้รหัสคูปอง FRIENDLYEATS-15 ที่จุดชำระเงินเพื่อรับส่วนลด 15% สำหรับคำสั่งซื้อของคุณ และอย่าลืมเขียนรีวิวหลังจากนั้นด้วยนะ" หวังว่าวิธีนี้จะช่วยกระตุ้นให้ผู้ใช้บางรายลองแวะไปที่ Burrito Cafe

bed9182080bebb41.png

ในขั้นตอนถัดไป เราจะกำหนดเป้าหมายแอปและตั้งค่าการเปิดเผย นี่เป็นเปอร์เซ็นต์ของผู้ใช้ที่มีสิทธิ์ (ผู้ที่ตรงตามเงื่อนไขการกำหนดเป้าหมาย/การทริกเกอร์) ซึ่งจะเห็นข้อความใดข้อความหนึ่งในการทดสอบ เราสามารถตั้งค่านี้เป็น 100% สำหรับตัวอย่างนี้ได้ เนื่องจากเราต้องการให้ผู้ใช้ทั้งหมดเห็นทั้งเส้นฐานหรือตัวแปรคูปอง หากต้องการมีกลุ่มควบคุมที่ไม่แสดงข้อความในแอปเลย คุณสามารถลดเปอร์เซ็นต์การแสดงนี้ได้

bd96bf5798d227f1.png

  1. จากนั้นคุณจะกำหนดเป้าหมายบางอย่างสำหรับการทดสอบ นี่คือผลลัพธ์ของการทดสอบที่เราต้องการวัด เราจะตั้งค่านี้เป็นreview_successเหตุการณ์ Analytics ที่เรากําหนดไว้ในส่วนก่อนหน้า เนื่องจากเราต้องการดูผลกระทบที่ข้อความในแอปต่างๆ มีต่อผู้ใช้ที่เขียนรีวิวร้านอาหาร eb89d3b9f89ab43b.png
  2. สำหรับการกำหนดเวลา เราจะให้แคมเปญเริ่มทันทีและตั้งค่า click_restaurant เป็นเงื่อนไขทริกเกอร์ เพื่อให้ผู้ใช้เห็นข้อความในแอปข้อความใดข้อความหนึ่งเมื่อคลิกร้านอาหาร

c57be430d41bfcad.png

  1. ตอนนี้สิ่งที่คุณต้องทำคือตรวจสอบการทดสอบ แล้วคลิกเริ่มการทดสอบ จากนั้นเราก็รอรับข้อมูลจากการทดสอบได้เลย

566af8bace30c67.png

ดูการเก็บรวบรวมข้อมูลแบบเรียลไทม์

ตอนนี้เราได้เริ่มการทดสอบแล้ว ผู้ใช้ FriendlyEats จะเห็นข้อความในแอป 1 ใน 2 ข้อความที่เราเขียนขึ้นแบบสุ่มเมื่อคลิกร้านอาหาร ซึ่งอาจเป็นข้อความพื้นฐานหรือข้อความเวอร์ชันทดสอบ ซึ่งจะแบ่งผู้ใช้ของเราออกเป็น 2 กลุ่มตามข้อความที่ผู้ใช้เห็น จากนั้นเราจะดูในคอนโซล Firebase (อีกครั้งในส่วน A/B Testing) เพื่อเปรียบเทียบข้อมูลวิเคราะห์แบบเรียลไทม์จากทั้ง 2 กลุ่มได้ ระบบจะใช้เวลาสักครู่ในการรับข้อมูล เนื่องจากเราต้องรอให้ผู้ใช้เห็นข้อความในแอปและดำเนินการตามนั้นจริงๆ ตัวอย่างผลลัพธ์หลังจากมีข้อมูลเพียงพอ

8fa8a0edcd8a8ad4.png

ในกรณีนี้ ตัวแปรปรับปรุงจากค่าพื้นฐานอย่างมาก เราจึงเลือกนำตัวแปรไปใช้ได้ ซึ่งจะนำข้อความในแอปพร้อมคูปองไปใช้กับผู้ใช้ทั้งหมด

8. ขอแสดงความยินดี

ยินดีด้วย คุณสร้างและทำการทดสอบการรับส่งข้อความในแอปครั้งแรกสำเร็จแล้ว ตอนนี้คุณสามารถทำการทดสอบในแอปของตัวเอง และใช้ผลลัพธ์เพื่อทำให้แคมเปญข้อความในแอปมีประสิทธิภาพมากขึ้น

ขั้นตอนถัดไป

ลองดู Codelab เหล่านี้

อ่านเพิ่มเติม

เราเพิ่งเริ่มต้นเท่านั้นกับสิ่งที่ทำได้ด้วยการรับส่งข้อความในแอป Firebase และ Firebase A/B Testing ดูข้อมูลเพิ่มเติมได้ที่

เอกสารอ้างอิง