เริ่มต้นใช้งานเหตุการณ์ในแอพ (Android)

คู่มือนี้จะแสดงวิธีเพิ่มเหตุการณ์ในแอพลงในแอพใหม่หรือแอพที่มีอยู่โดยผสานการทำงาน Facebook SDK แล้วลงบันทึกเหตุการณ์เหล่านี้

ก่อนเริ่มต้น

คุณจะต้องมีรายการดังต่อไปนี้

เพิ่มเหตุการณ์ในแอพ

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

เหตุการณ์ในแอพของคุณจะได้รับการติดตามด้วย 3 วิธี ดังนี้

เหตุการณ์ที่ลงบันทึกโดยอัตโนมัติ

เมื่อคุณใช้ Facebook SDK เหตุการณ์บางอย่างในแอพของคุณจะได้รับการลงบันทึกและเก็บรวบรวมไว้สำหรับ Facebook โดยอัตโนมัติ เว้นแต่คุณจะปิดใช้งานการลงบันทึกเหตุการณ์แบบอัตโนมัติ เหตุการณ์เหล่านี้จะเกี่ยวข้องกับกรณีการใช้งานทั้งหมด ไม่ว่าจะเป็นการกำหนดเป้าหมาย การวัดผล หรือการปรับให้เหมาะสม เหตุการณ์สำคัญที่ได้รับการเก็บรวบรวมโดยเป็นส่วนหนึ่งของการลงบันทึกเหตุการณ์ในแอพโดยอัตโนมัติมีอยู่ 3 อย่าง ได้แก่ การติดตั้งแอพ การเปิดใช้แอพ และการซื้อ เมื่อเปิดใช้งานการลงบันทึกแบบอัตโนมัติ ผู้ลงโฆษณาจะสามารถปิดใช้งานเหตุการณ์เหล่านี้ได้ รวมถึงเหตุการณ์อื่นๆ ภายใน Facebook เช่น เหตุการณ์อิมเพรสชั่นของการเข้าสู่ระบบ อย่างไรก็ตาม หากคุณปิดใช้งานการลงบันทึกแบบอัตโนมัติแต่ยังคงต้องการลงบันทึกเหตุการณ์ที่เฉพาะเจาะจง เช่น เหตุการณ์การติดตั้งหรือการซื้อ ให้ปรับใช้การลงบันทึกกับเหตุการณ์เหล่านี้ในแอพของคุณด้วยตนเอง

เหตุการณ์รายละเอียด

การติดตั้งแอพ

ครั้งแรกที่มีผู้ใช้รายใหม่เปิดใช้งานแอพของคุณหรือครั้งแรกที่แอพของคุณเริ่มทำงานบนอุปกรณ์เครื่องใดเครื่องหนึ่ง

การเปิดใช้แอพ

เมื่อผู้ใช้เปิดใช้แอพของคุณ Facebook SDK จะเริ่มทำงานและเหตุการณ์ดังกล่าวจะได้รับการลงบันทึกไว้ อย่างไรก็ตาม หากเหตุการณ์การเปิดใช้แอพครั้งที่ 2 เกิดขึ้นภายในเวลาไม่เกิน 60 วินาทีนับจากการเปิดใช้ครั้งแรก ระบบจะไม่ลงบันทึกเหตุการณ์การเปิดใช้แอพครั้งที่ 2 นั้น

สำหรับ Facebook SDK สำหรับ Android เวอร์ชั่น 4.18 และก่อนหน้านั้น การเริ่มต้นใช้งาน SDK จะเป็นกระบวนการแบบดำเนินการด้วยตนเอง ซึ่งต่างจากกระบวนการลงบันทึกเหตุการณ์ด้วยตนเองที่อธิบายไว้ในเอกสารนี้ โปรดอัพเกรดมาใช้ SDK เวอร์ชั่นล่าสุดหรือเลื่อนไปที่ส่วนการเริ่มต้นใช้งาน SDK เวอร์ชั่นเดิมเพื่อเพิ่มเหตุการณ์ด้วยตนเอง

การซื้อในแอพ

เมื่อ Google Play ประมวลผลการซื้อเสร็จสมบูรณ์ หากคุณใช้แพลตฟอร์มการชำระเงินอื่นๆ ให้เพิ่มโค้ดเหตุการณ์การซื้อด้วยตนเอง

ระบบจะเปิดใช้งานการลงบันทึกการซื้อในแอพโดยอัตโนมัติให้กับแอพที่ได้ติดตั้งหรืออัพเกรดมาใช้เวอร์ชั่น 4.39 แล้ว ในกรณีที่เป็นแอพที่ใช้เวอร์ชั่นก่อนหน้านั้น ให้เปิดใช้งานเหตุการณ์การซื้อในแอพในพื้นฐาน > การตั้งค่าการ์ด Android ในแดชบอร์ดของแอพ หรือเพิ่มโค้ดเหตุการณ์การซื้อด้วยตนเอง

SDK สำหรับ Android รองรับคลัง Google Play Billing เวอร์ชั่น 2 และ 3 แล้วในขณะนี้ สำหรับคลัง Google Play Billing เวอร์ชั่น 4 คุณต้องลงเหตุการณ์การซื้อในแอพด้วยตนเอง

รายงานข้อขัดข้องสำหรับ Facebook SDK

(สำหรับการใช้งานใน Facebook เท่านั้น)

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

รายงาน ANR สำหรับ Facebook SDK

(สำหรับการใช้งานใน Facebook เท่านั้น)

หากแอพของคุณเกิด ANR (แอพพลิเคชั่นไม่ตอบสนอง) เนื่องจาก Facebook SDK ระบบจะสร้างรายงาน ANR ขึ้นมาและส่งไปยัง Facebook เมื่อมีการเปิดแอพของคุณขึ้นมาใหม่ รายงานนี้จะไม่มีข้อมูลผู้ใช้ และช่วยให้ Facebook สามารถรับรองได้ถึงคุณภาพและความเสถียรของ SDK หากต้องการเลือกไม่ใช้การลงบันทึกเหตุการณ์นี้ ให้ปิดใช้งานเหตุการณ์ที่ลงบันทึกโดยอัตโนมัติ

ปิดใช้งานเหตุการณ์ที่ลงบันทึกโดยอัตโนมัติ

หากต้องการปิดใช้งานเหตุการณ์ที่ลงบันทึกโดยอัตโนมัติ ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์ AndroidManifest.xml ของคุณ

<application>
  ...
  <meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
           android:value="false"/>
  ...
</application>

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

setAutoLogAppEventsEnabled(true);

ในการระงับการลงบันทึกอีกครั้งไม่ว่าจะด้วยเหตุผลใดๆ ให้ตั้งค่าเมธอด setAutoLogAppEventsEnabled() เป็น false

setAutoLogAppEventsEnabled(false);

คุณสามารถปิดใช้งานการลงบันทึกเหตุการณ์การซื้อในแอพแบบอัตโนมัติโดยใช้แดชบอร์ดของแอพได้อีกด้วย ให้ไปที่การ์ด Android ในส่วน “พื้นฐาน” > “การตั้งค่า” และสลับสวิตช์เป็นไม่

ปิดใช้งานการเริ่มต้นใช้งาน SDK แบบอัตโนมัติ

หากต้องการปิดใช้งานการเริ่มต้นใช้งาน SDK แบบอัตโนมัติ ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์ AndroidManifest.xml ของคุณ

<application>
  ...
  <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
           android:value="false"/>
  ...
</application>

ในบางกรณี คุณอาจต้องการทำให้การเริ่มต้นใช้งาน SDK ล่าช้าลง เช่น เพื่อขอการยินยอมจากผู้ใช้หรือดำเนินการตามข้อผูกพันทางกฎหมาย แทนที่จะปิดใช้งาน ในกรณีนี้ ให้เรียกใช้เมธอดคลาส setAutoInitEnabled และตั้งค่าเป็น true เพื่อเริ่มต้นใช้งาน SDK ด้วยตนเองหลังจากผู้ใช้ปลายทางให้การยินยอมแล้ว

FacebookSdk.setAutoInitEnabled(true)
FacebookSdk.fullyInitialize()

ปิดใช้งานการเก็บรวบรวม ID ผู้ลงโฆษณา

หากต้องการปิดใช้งานการเก็บรวบรวม advertiser-id ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์ AndroidManifest.xml ของคุณ

<application>
  ...
  <meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled"
           android:value="false"/>
  ...
</application>

ในบางกรณี คุณอาจต้องการทำให้การเก็บรวบรวม advertiser_id ล่าช้าลง เช่น เพื่อขอการยินยอมจากผู้ใช้หรือดำเนินการตามข้อผูกพันทางกฎหมาย แทนที่จะปิดใช้งาน ในกรณีนี้ ให้เรียกใช้เมธอด setAdvertiserIDCollectionEnabled() ของคลาส FacebookSDK และตั้งค่าเป็น true เพื่อเปิดใช้งานการเก็บรวบรวม advertiser_id อีกครั้งหลังจากผู้ใช้ปลายทางให้การยินยอมแล้ว

setAdvertiserIDCollectionEnabled(true);

ในการระงับการเก็บบันทึกไม่ว่าจะด้วยเหตุผลใดๆ ให้ตั้งค่าเมธอด setAdvertiserIDCollectionEnabled() เป็น false

setAdvertiserIDCollectionEnabled(false);

เหตุการณ์ที่ลงบันทึกด้วยตนเอง

สร้างอ็อบเจ็กต์ AppEventsLogger โดยใช้เมธอดตัวช่วยเพื่อลงบันทึกเหตุการณ์ของคุณ โดยที่ this จะเป็น Activity ที่มีเมธอดของคุณอยู่

AppEventsLogger logger = AppEventsLogger.newLogger(this);

จากนั้น คุณสามารถลงบันทึกเหตุการณ์ไปยัง logger ได้ โดยที่ AppEventConstants.EVENT_NAME_X จะเป็นค่าคงที่ค่าใดค่าหนึ่งที่แสดงอยู่ในตารางเหตุการณ์มาตรฐาน หรือเป็นค่าคงที่จากโค้ดของตัวสร้างโค้ด

logger.logEvent(AppEventsConstants.EVENT_NAME_X);

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

หมายเหตุ ทั้ง valueToSum และ parameters เป็นส่วนที่จะระบุหรือไม่ก็ได้

Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\": \"1234\", \"quantity\": 2}, {\"id\": \"5678\", \"quantity\": 1}]");

logger.logEvent(AppEventsConstants.EVENT_NAME_PURCHASE,
                54.23,
                params);
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "HDFU-8452");

logger.logEvent(AppEventsConstants.EVENT_NAME_ADDED_TO_CART,
                54.23,
                params);

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

public void logBattleTheMonsterEvent () {
    logger.logEvent("BattleTheMonster");
}

พารามิเตอร์เหตุการณ์

คุณสามารถลงบันทึกแต่ละเหตุการณ์ได้ด้วย valueToSum และ 1 ชุดมีพารามิเตอร์ได้สูงสุด 25 รายการ พารามิเตอร์เหล่านี้จะได้รับการส่งผ่านทาง Bundle โดยที่คีย์จะมีชื่อพารามิเตอร์และค่าในรูปแบบ String หรือ int หากคุณระบุค่าประเภทอื่นที่ไม่เป็นไปตามข้อกำหนด เช่น boolean ในกรณีนี้ SDK จะลงบันทึกคำเตือนไปยัง LogginBehavior.APP_EVENT

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

อย่าใช้ “event” เป็นชื่อพารามิเตอร์ ระบบจะไม่ลงบันทึกพารามิเตอร์ที่กำหนดเองซึ่งใช้ชื่อว่า “event” ให้ใช้ชื่ออื่นแทนหรือเพิ่มคำขึ้นต้นหรือคำลงท้ายให้กับชื่อนั้น เช่น my_custom_event

ทดสอบการลงบันทึกเหตุการณ์ของคุณ

ตัวช่วยเหลือในการลงโฆษณาแอพช่วยให้คุณสามารถทดสอบเหตุการณ์ในแอพภายในแอพของคุณได้ เพื่อให้แน่ใจว่าแอพของคุณจะส่งเหตุการณ์ไปยัง Facebook

  1. เปิดตัวช่วยเหลือในการลงโฆษณาแอพ
  2. ในส่วนเลือกแอพ ให้เลือกแอพของคุณ จากนั้นเลือกส่ง
  3. ไปที่ด้านล่างสุดแล้วเลือกทดสอบเหตุการณ์ในแอพ
  4. เปิดแอพของคุณแล้วส่งเหตุการณ์ เหตุการณ์จะปรากฏบนเว็บเพจ

การเปิดใช้งานบันทึกการแก้ไขจุดบกพร่อง

เปิดใช้งานบันทึกการแก้ไขจุดบกพร่องเพื่อตรวจสอบยืนยันการใช้เหตุการณ์ในแอพจากฝั่งไคลเอ็นต์ บันทึกการแก้ไขจุดบกพร่องจะมีคำขออย่างละเอียดและการตอบกลับแบบ JSON เปิดใช้งานบันทึกการแก้ไขจุดบกพร่องโดยการเพิ่มโค้ดต่อไปนี้หลังจากที่ Facebook SDK สำหรับ Android เริ่มทำงานแล้ว

FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);

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

เรียนรู้เพิ่มเติม

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

แอพตัวอย่าง

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