Ometria ช่วยให้แผนกการตลาดของคุณเข้าใจและมีส่วนร่วมกับลูกค้าของคุณได้ดีขึ้นด้วยการส่งอีเมลและการแจ้งเตือนแบบพุชในแบบของคุณ
แอปนี้มีวัตถุประสงค์หลัก 2 ประการ:
สำหรับแอปบนอุปกรณ์เคลื่อนที่ของคุณ หมายความว่า:
นักพัฒนาแอปที่ผสานรวมกับ SDK นี้ควรปฏิบัติตามคำแนะนำด้านล่าง คุณยังสามารถดูแอปตัวอย่างที่เรารวมไว้เพื่อการใช้งานอ้างอิงได้
ดูการตั้งค่าแอปมือถือของคุณด้วยข้อมูลรับรอง Firebase ในศูนย์ช่วยเหลือ Ometria และทำตามขั้นตอนที่นั่นเพื่อรับคีย์ API
วิธีที่ง่ายที่สุดในการนำ Ometria เข้าสู่โปรเจ็กต์ ReactNative ของคุณคือการใช้ npm install
หรือ yarn add
react-native-ometria
โดยใช้ npm install react-native-ometria
หรือ yarn add react-native-ometria
หมายเหตุ: หากคุณมีปัญหาในการติดตั้งไลบรารี โปรดพิจารณาแยกตัวอย่างออกจากการกำหนดค่า typescript เช่น:
{
...,
"exclude": ["example"]
}
สำหรับ iOS
คุณต้องติดตั้ง Pods pod install
เพื่อสร้างมิเรอร์ข้อมูลจำเพาะ CocoaPods ในเครื่อง
หากคุณพบ The Swift pod 'Ometria' depends upon 'FirebaseMessaging'
เมื่อเรียกใช้การติดตั้ง pod โปรดพิจารณาเพิ่ม use_frameworks! :linkage => :static
.
หากต้องการเริ่มต้น Ometria SDK คุณต้องป้อนคีย์ API จาก 2 ก่อนที่จะเริ่ม
import Ometria from 'react-native-ometria' ;
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelName : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.com.ometria.sampleRN' , // optional, only for iOS
} ) ;
ตั้งแต่เวอร์ชัน 2.3.0 SDK อนุญาตให้เริ่มต้นอินสแตนซ์ Ometria ใหม่ได้ ดังนั้นคุณจึงสามารถเรียกวิธีนี้ได้อีกครั้งในภายหลังในแอปหากต้องการ
คุณสามารถระบุชื่อที่กำหนดเองของช่องทางการแจ้งเตือนของ Android ได้ในพารามิเตอร์ตัวเลือกตัวเลือกที่สอง ชื่อช่องเริ่มต้นคือ <blank>
คุณยังสามารถระบุตัวระบุกลุ่มแอปในพารามิเตอร์ตัวเลือกตัวเลือกที่สองได้ ดูส่วนนี้สำหรับ iOS
Ometria บันทึกข้อผิดพลาดใดๆ ที่พบในระหว่างรันไทม์ตามค่าเริ่มต้น บันทึกเหล่านี้สามารถเข้าถึงได้ในคอนโซลของสภาพแวดล้อมการพัฒนาของคุณ
คุณสามารถเปิดใช้งานการบันทึกขั้นสูงได้หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้นในเบื้องหลัง เพียงเพิ่มบรรทัดต่อไปนี้หลังจากเริ่มต้นไลบรารี:
Ometria . isLoggingEnabled ( true ) ;
คุณต้องตระหนักถึงพฤติกรรมของผู้ใช้บนแพลตฟอร์มของคุณเพื่อที่จะเข้าใจพวกเขา พฤติกรรมบางอย่างตรวจพบได้โดยอัตโนมัติ กิจกรรมอื่นๆ จำเป็นต้องได้รับการปรับปรุงจากนักพัฒนาแอปจึงจะติดตามได้
วิธีการเหล่านี้หลายวิธีมีเหตุการณ์ที่คล้ายคลึงกันในตัวติดตามเว็บไซต์ของเรา
เช่น เหตุการณ์ที่ลูกค้าระบุใช้รหัสลูกค้าหรืออีเมล - ตัวระบุเหล่านี้จะต้องเหมือนกันที่นี่กับที่อยู่ใน API ข้อมูล หากคุณระบุทั้งอีเมลและรหัสลูกค้า ทั้งสองจะต้องตรงกัน
กิจกรรมต่างๆ จะถูกผสานรวมจากฝั่งของ Ometria ให้เป็นมุมมองพฤติกรรมลูกค้าของคุณแบบข้ามช่องทางขนาดใหญ่ หากคุณใช้อีเมล/รหัสลูกค้าที่ไม่สอดคล้องกัน อาจส่งผลให้มีการสร้างโปรไฟล์ซ้ำหรือข้อมูลสูญหาย
เมื่อเริ่มต้น SDK แล้ว คุณสามารถติดตามเหตุการณ์ได้โดยการเรียกวิธีการเฉพาะของ SDK
ผู้ใช้แอปเพิ่งระบุตัวตน เช่น เข้าสู่ระบบ
Ometria . trackProfileIdentifiedByCustomerIdEvent ( 'test_customer_id' ) ;
รหัสลูกค้า ของพวกเขาคือ รหัสผู้ใช้ ในฐานข้อมูลของคุณ
บางครั้งผู้ใช้เพียงแต่ระบุที่อยู่อีเมลของตนโดยไม่ได้เข้าสู่ระบบหรือไม่มีบัญชี ในกรณีดังกล่าว Ometria สามารถสร้างโปรไฟล์การจับคู่ตามอีเมล:
Ometria . trackProfileIdentifiedByEmailEvent ( '[email protected]' ) ;
การมีรหัส ลูกค้า ทำให้การจับคู่โปรไฟล์มีประสิทธิภาพมากขึ้น
มันไม่ได้เกิดขึ้นพร้อมกันกับการส่งอีเมลกิจกรรม เพื่อการบูรณาการที่เหมาะสมที่สุด คุณควรส่งเหตุการณ์ใดเหตุการณ์หนึ่งทันทีที่คุณมีข้อมูล เหตุการณ์ทั้งสองนี้มีความสำคัญต่อการทำงานของ SDK ดังนั้นโปรดส่งเหตุการณ์เหล่านี้โดยเร็วที่สุด ขอย้ำอีกครั้งว่าตัวระบุเหล่านี้จะต้องเหมือนกันที่นี่กับตัวระบุที่คุณใช้ในแพลตฟอร์มอีคอมเมิร์ซของคุณ และส่งไปยัง Ometria (ผ่าน data API หรือวิธีอื่นๆ) หากคุณระบุทั้งอีเมลและรหัสลูกค้า ทั้งสองจะต้องตรงกัน ข้อผิดพลาดทั่วไปที่เราเห็นในการบูรณาการคือแอปสร้างรหัสลูกค้าใหม่ในการเข้าสู่ระบบแต่ละครั้ง (ซึ่งไม่ตรงกับรหัสลูกค้าที่จัดเก็บไว้ใน Ometria) เพื่อหลีกเลี่ยงปัญหานี้ ให้สร้างรหัสเหล่านี้จากส่วนกลางบนเซิร์ฟเวอร์ของคุณ และส่งรหัสที่สอดคล้องกันผ่าน Ometria mobile SDK และ Ometria Data API หากสร้างรหัสที่สอดคล้องกันไม่ได้ในทางปฏิบัติ เราขอแนะนำให้ใช้อีเมลเพื่อระบุผู้ติดต่อเท่านั้น
เลิกทำเหตุการณ์ที่ระบุโปรไฟล์ คุณสามารถใช้สิ่งนี้ได้หากผู้ใช้ออกจากระบบ
Ometria . trackProfileDeidentifiedEvent ( ) ;
ขณะนี้เหตุการณ์นี้จะล้างรหัสที่เก็บไว้ (อีเมลและ/หรือรหัสลูกค้า) ออกจากที่เก็บข้อมูลในเครื่องของโทรศัพท์ ไม่มีผลกระทบอื่นใดภายใน Ometria
ผู้เยี่ยมชมคลิก/แตะ/ดู/ไฮไลต์ หรือแสดงความสนใจในผลิตภัณฑ์
เช่น ผู้เยี่ยมชมค้นหาคำและเลือกหนึ่งในตัวอย่างผลิตภัณฑ์จากชุดผลลัพธ์ หรือเรียกดูหมวดหมู่ของเสื้อผ้า และคลิกที่เสื้อเชิ้ตตัวใดตัวหนึ่งเพื่อดูภาพใหญ่
กิจกรรมนี้เป็นการดึงดูดความสนใจจากผู้เข้าชมผลิตภัณฑ์นี้
Ometria . trackProductViewedEvent ( 'product_id' ) ;
ผู้เยี่ยมชมได้ดูหน้า หน้าจอ หรือกิริยาเฉพาะที่มีเนื้อหาในตะกร้าช้อปปิ้ง:
Ometria . trackBasketViewedEvent ( ) ;
ผู้เข้าชมได้เปลี่ยนตะกร้าช้อปปิ้งของตน:
const items : OmetriaBasketItem [ ] = [
{
productId : 'product-1' ,
sku : 'sku-product-1' ,
quantity : 1 ,
price : 12.0 ,
variantId : 'variant-1' ,
} ,
{
productId : 'product-2' ,
sku : 'sku-product-2' ,
quantity : 2 ,
price : 9.0 ,
variantId : 'variant-2' ,
} ,
{
productId : 'product-3' ,
sku : 'sku-product-3' ,
quantity : 3 ,
price : 20.0 ,
variantId : 'variant-3' ,
} ,
] ;
Ometria . trackBasketUpdatedEvent ( {
totalPrice : 12.0 ,
id : 'basket_id_eg' ,
currency : 'USD' ,
items ,
link : 'link_eg' ,
} ) ;
เหตุการณ์นี้ใช้ตะกร้าปัจจุบันทั้งหมดเป็นพารามิเตอร์ ไม่ใช่แค่ส่วนที่อัปเดตเท่านั้น
ซึ่งจะช่วยกู้คืนเหตุการณ์ตะกร้าที่สูญหายหรือไม่ซิงค์: การอัปเดตล่าสุดจะเชื่อถือได้เสมอ
OmetriaBasketItem เป็นออบเจ็กต์ที่อธิบายเนื้อหาของรายการในตะกร้าสินค้า สามารถมีราคาและปริมาณของตัวเองได้ตามกฎและโปรโมชั่นต่างๆ ที่ใช้ มันมีคุณสมบัติดังต่อไปนี้:
- productId : (
String
, จำเป็น) - สตริงที่แสดงถึงตัวระบุเฉพาะของผลิตภัณฑ์นี้- SKU : (
String
เป็นทางเลือก) - สตริงที่แสดงถึงหน่วยการเก็บสต๊อก ซึ่งช่วยให้ระบุรายการใดรายการหนึ่งได้- ปริมาณ : (
Int
, จำเป็น) - จำนวนรายการที่รายการนี้เป็นตัวแทน- price : (
Float
, จำเป็น) - มูลค่าลอยตัวที่แสดงถึงราคาของสินค้าหนึ่งรายการ สกุลเงินนี้กำหนดโดย OmetriaBasket ที่มีรายการนี้- variandId : (
String
, ตัวเลือก) - ตัวระบุสำหรับผลิตภัณฑ์แบบต่างๆ ที่เชื่อมโยงกับรายการโฆษณานี้
OmetriaBasket เป็นออบเจ็กต์ที่อธิบายเนื้อหาของตะกร้าสินค้าและมีคุณสมบัติดังต่อไปนี้:
- id : (
String
, ตัวเลือก) - ตัวระบุเฉพาะสำหรับตะกร้านี้- currency : (
String
จำเป็นต้องระบุ) - สตริงที่แสดงสกุลเงินในรหัสสกุลเงินสามตัวอักษร ISO 4217 เช่น"USD"
,"GBP"
- TotalPrice : (
float
, จำเป็น) - ค่าลอยตัวที่แสดงถึงการกำหนดราคา- items : (
Array[OmetriaBasketItem]
) - อาร์เรย์ที่มีรายการสินค้าในตะกร้านี้- link : (
String
) - ลิงก์ในรายละเอียดไปยังเว็บหรือเพจในแอปสำหรับตะกร้านี้ สามารถใช้ในการแจ้งเตือนที่ส่งถึงผู้ใช้ เช่น "ลืมชำระเงิน นี่คือตะกร้าสินค้าของคุณเพื่อดำเนินการต่อ: 'https://eg.com/basket_url'" การคลิกลิงก์นั้นควรนำพวกเขาตรงไปยังหน้าตะกร้าสินค้า
ติดตามเมื่อผู้ใช้เริ่มกระบวนการชำระเงิน ขณะนี้ใช้เพื่อนับจำนวนการดูหน้าเว็บเท่านั้น และไม่มีผลกระทบอื่นใดใน Ometria
Ometria . trackCheckoutStartedEvent ( 'order_id' ) ;
คำสั่งซื้อเสร็จสมบูรณ์และชำระเงินสำหรับ:
const items : OmetriaBasketItem [ ] = [
{
productId : 'product-1' ,
sku : 'sku-product-1' ,
quantity : 1 ,
price : 12.0 ,
} ,
] ;
Ometria . trackOrderCompletedEvent ( 'order_id' , {
totalPrice : 12.0 ,
id : 'basket_id_eg' ,
currency : 'USD' ,
items ,
link : 'link_eg' ,
} ) ;
ใช้คำแนะนำในการจัดการการโต้ตอบกับการแจ้งเตือนที่มี URL เพื่อติดตามเหตุการณ์นี้ด้วยตนเองเมื่อคุณมีข้อมูลเพียงพอเกี่ยวกับหน้าจอ (หรือปลายทางอื่น) ที่แอปจะเปิด
Ometria . trackDeepLinkOpenedEvent ( '/profile' , 'ProfileScreen' ) ;
ผู้เข้าชมดู 'หน้าแรก' หรือหน้าจอเริ่มต้นของแอปของคุณ
Ometria . trackHomeScreenViewedEvent ( ) ;
ผู้เยี่ยมชมคลิก/แตะ/ดู/ไฮไลต์ หรือแสดงความสนใจในรายการผลิตภัณฑ์ หน้าจอประเภทนี้ได้แก่ ผลการค้นหา รายการสินค้าในกลุ่ม หมวดหมู่ คอลเลกชัน หรือหน้าจออื่นใดที่แสดงรายการสินค้า
เช่น ร้านค้าขายเสื้อผ้า และผู้เข้าชมแตะ "รองเท้าผู้หญิง" เพื่อดูรายการผลิตภัณฑ์ในหมวดหมู่นั้น หรือพวกเขาค้นหา "จัมเปอร์สีน้ำเงิน" และดูรายการผลิตภัณฑ์ในหมวดหมู่นั้น
เหตุการณ์นี้ควรจะทริกเกอร์เมื่อ:
Ometria . trackProductListingViewedEvent ( ) ;
การติดตามการดูหน้าจอของผู้เยี่ยมชมช่วยให้เราติดตามการมีส่วนร่วมของพวกเขากับแอป รวมถึงตำแหน่งที่พวกเขาอยู่ในการเดินทาง
เหตุการณ์ที่คล้ายคลึงกันบนเว็บไซต์คือการติดตามการดูหน้าเว็บที่เป็นอิสระ
หน้าจออีคอมเมิร์ซทั่วไปล้วนมีกิจกรรมระดับบนสุดของตัวเอง: ดูตะกร้าสินค้า รายการสินค้าที่ดู ฯลฯ
แอปของคุณอาจมีประเภทหน้าเว็บเฉพาะที่เป็นประโยชน์สำหรับนักการตลาดในการติดตามการมีส่วนร่วม
เช่น หากคุณกำลังจัดโปรโมชัน และการดูหน้าจอใดหน้าจอหนึ่งแสดงถึงความสนใจในโปรโมชัน ซึ่งฝ่ายการตลาดอาจต้องการติดตามผลในภายหลัง
หากต้องการติดตามหน้าจอแบบกำหนดเองเหล่านี้ ให้ใช้เหตุการณ์ การดูหน้าจอ :
Ometria . trackScreenViewedEvent ( 'OnboardingScreen' , { a : '1' , b : '2' } ) ;
แอปของคุณอาจมีโฟลว์หรือเพจเฉพาะที่เป็นที่สนใจของทีมการตลาด
เช่น การตลาดอาจต้องการส่งอีเมลหรือการแจ้งเตือนไปยังผู้ใช้ใดๆ ที่ลงทะเบียนเพื่อรับโปรโมชันเฉพาะ หรือโต้ตอบกับปุ่มหรือองค์ประกอบเฉพาะของแอป
หากคุณส่งเหตุการณ์ที่กำหนดเองที่เกี่ยวข้องกับการกระทำนั้น เหตุการณ์เหล่านั้นจะทริกเกอร์แคมเปญอัตโนมัติได้
ตรวจสอบกับทีมการตลาดเกี่ยวกับข้อมูลเฉพาะ และสิ่งที่พวกเขาอาจต้องการ โดยเฉพาะอย่างยิ่งหากพวกเขาใช้ Ometria สำหรับอีเมลอยู่แล้ว พวกเขาจะรู้เกี่ยวกับแคมเปญอัตโนมัติและกิจกรรมที่กำหนดเอง
Ometria . trackCustomEvent ( 'my_custom_type' , { } ) ;
เหตุการณ์ต่อไปนี้ได้รับการติดตามโดยอัตโนมัติโดย SDK
การเริ่มต้น SDK นั้นเพียงพอที่จะใช้ประโยชน์จากสิ่งเหล่านี้ ไม่จำเป็นต้องมีการบูรณาการเพิ่มเติม (เว้นแต่จะระบุไว้เป็นอย่างอื่น)
เหตุการณ์ | คำอธิบาย |
---|---|
ติดตั้งแอปพลิเคชันแล้ว | เพิ่งติดตั้งแอป โดยปกติแล้วจะไม่สามารถส่งได้เมื่อติดตั้งแอปแล้ว จริง แต่จะส่งเฉพาะในครั้งแรกที่เปิดตัวแอปเท่านั้น |
เปิดตัวแอปพลิเคชันแล้ว | มีคนเพิ่งเปิดตัวแอป |
แอปพลิเคชันอยู่เบื้องหน้า | แอปเปิดตัวแล้ว แต่แอปอยู่ในเบื้องหลัง มันเพิ่งถูกนำไปที่เบื้องหน้า |
แอปพลิเคชันมีพื้นหลัง | แอปมีการใช้งานอยู่และเพิ่งถูกส่งไปยังเบื้องหลัง |
ได้รับการแจ้งเตือนในสถานะออกจากแอป | ระบบได้รับการแจ้งเตือนแบบพุชในขณะที่แอปอยู่ในสถานะออก (ต้องการส่วนขยายบริการการแจ้งเตือนบน iOS) |
เกิดข้อผิดพลาด | เกิดข้อผิดพลาดในฝั่งไคลเอ็นต์ เราพยายามตรวจพบปัญหาใดๆ เกี่ยวกับเพย์โหลดการแจ้งเตือนตามจริงทางฝั่งของเรา ดังนั้นเราจึงไม่คาดหวังว่าจะมีข้อผิดพลาดใดๆ ที่ต้องส่งกลับไปยังผู้ใช้ปลายทาง |
เพื่อลดการใช้พลังงานและแบนด์วิธ ไลบรารี Ometria จะไม่ส่งกิจกรรมทีละรายการ เว้นแต่คุณจะร้องขอให้ส่งกิจกรรมดังกล่าว
แต่จะรวบรวมชุดของเหตุการณ์ที่ถูกส่งไปยังแบ็กเอนด์ระหว่างรันไทม์ของแอปพลิเคชัน เมื่อมีเหตุการณ์อย่างใดอย่างหนึ่งต่อไปนี้เกิดขึ้น:
pushtokenRefreshed
)notificationReceived
appForegrounded
appBackgrounded
คุณสามารถขอให้ไลบรารีส่งกิจกรรมที่เหลือทั้งหมดไปยังแบ็กเอนด์ได้ทุกเมื่อที่คุณต้องการโดยโทร:
Ometria . flush ( ) ;
คุณสามารถล้างเหตุการณ์ทั้งหมดที่ถูกติดตามและยังไม่ได้ล้างได้อย่างสมบูรณ์
เมื่อต้องการทำเช่นนี้ เรียกใช้วิธีการต่อไปนี้:
Ometria . clear ( ) ;
หากต้องการดูว่าเหตุการณ์ใดบ้างที่บันทึกไว้ คุณสามารถตรวจสอบบันทึกที่มาจาก Ometria SDK ได้ หากเปิดใช้งานการบันทึกอยู่ คุณสามารถกรองคำว่า "Ometria" ได้ SDK บันทึกเหตุการณ์ทั้งหมดทันทีที่เกิดขึ้น และยังบันทึกการฟลัชชิง เช่น เมื่อถูกส่งไปยัง Ometria Mobile Events API ข้อผิดพลาดที่อาจเกิดขึ้นกับการส่ง (ปัญหา API หรือปัญหาการตรวจสอบเหตุการณ์) จะปรากฏที่นี่เช่นกัน
Ometria ใช้ Firebase Cloud Messaging เพื่อส่งการแจ้งเตือนแบบพุชไปยังอุปกรณ์มือถือ
ดังนั้นคุณจะต้องเพิ่ม 'React-Native Firebase' เป็นการพึ่งพาของ Ometria โดยใช้บรรทัดต่อไปนี้:
import firebase from '@react-native-firebase/app' ;
import messaging from '@react-native-firebase/messaging' ;
สำหรับ Android ให้ทำตามบทช่วยสอน Firebase ReactNative Firebase สำหรับ Android สำหรับ iOS ให้ทำตามบทช่วยสอน Firebase ReactNative Firebase สำหรับ iOS
หากต้องการใช้การแจ้งเตือนแบบพุช คุณต้องทำตามขั้นตอนในคู่มือการแจ้งเตือนแบบพุช ReactNative ด้วย
เมื่อตั้งค่าอย่างถูกต้อง Ometria จะส่งการแจ้งเตือนส่วนตัวสำหรับแอปพลิเคชันมือถือของคุณได้
ทำตามขั้นตอนเหล่านี้:
ก่อนดำเนินการต่อ คุณต้องกำหนดค่าไว้แล้ว:
อ่านเพิ่มเติมเกี่ยวกับขั้นตอนเหล่านั้นในส่วนที่ 4 เริ่มต้นไลบรารี
สำหรับ Android 13 (API ระดับ 33) และสูงกว่า คุณต้องประกาศสิทธิ์ในไฟล์ AndroidManifest.xml ก่อน:
< manifest ...>
< uses-permission android : name = " android.permission.POST_NOTIFICATIONS " />
< application ...>
...
</ application >
</ manifest >
คุณต้องขออนุญาตสำหรับการแจ้งเตือน คุณสามารถใช้การอนุญาตแบบโต้ตอบดั้งเดิม
import { requestNotifications , RESULTS } from 'react-native-permissions' ;
...
await requestNotifications ( [ 'alert' , 'sound' , 'badge' ] ) . then ( ( { status } ) => {
if ( status === RESULTS . GRANTED ) {
console . log ( '? Push Notification permissions granted!' ) ;
}
} ) ;
ค้นหาเพิ่มเติมเกี่ยวกับการอนุญาตรันไทม์การแจ้งเตือนบน Android ที่นี่
หลังจากการเริ่มต้น Ometria คุณ ต้องส่งต่อโทเค็นการแจ้งเตือน Firebase Push (ทั้ง iOS และ Android)
คุณต้องส่งต่อโทเค็นการแจ้งเตือนไปยัง Ometria ทุกครั้งที่รีเฟรช
import Ometria from 'react-native-ometria' ;
import messaging from '@react-native-firebase/messaging' ;
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelname : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.com.ometria.sampleRN' , // optional, only for iOS
} ) ;
messaging ( )
. getToken ( )
. then ( ( pushToken ) => Ometria . onNewToken ( pushToken ) ) ;
messaging ( ) . onTokenRefresh ( ( pushToken ) => Ometria . onNewToken ( pushToken ) ) ;
สมัครรับข้อความระยะไกลที่แอปของคุณได้รับขณะอยู่ในสถานะแอปเบื้องหน้า คุณสามารถทำได้โดยใช้เมธอด onMessage
จากแพ็คเกจ @react-native-firebase/messaging
ในการโทรกลับ คุณสามารถใช้ Ometria.onNotificationReceived
เพื่อแจ้งให้ Ometria SDK ทราบว่าได้รับข้อความระยะไกลแล้ว และเหตุการณ์ notificationReceived
จะเริ่มทำงาน ใช้ Ometria.parseNotification
หากคุณต้องการแยกข้อมูล Ometria จากข้อความระยะไกล
messaging ( ) . onMessage ( async ( remoteMessage ) => {
Ometria . onNotificationReceived ( remoteMessage ) ;
const ometriaData = Ometria . parseNotification ( remoteMessage ) ;
// Use ometriaData
} ) ;
หากคุณใช้โซลูชันแบบกำหนดเองดังกล่าว อย่าลืมโทร Ometria.onNotificationOpenedApp
เพื่อให้ SDK โต้ตอบการแจ้งเตือนเมื่อจัดการเหตุการณ์การโต้ตอบการแจ้งเตือนสำหรับการแจ้งเตือนเบื้องหน้า
เพื่อให้ Ometria ติดตามการแจ้งเตือนทั้งหมดที่ได้รับในสถานะปิดและสถานะเบื้องหลังของแอปบน iOS ได้อย่างแม่นยำ จะต้องใช้ประโยชน์จากประสิทธิภาพของบริการในเบื้องหลังที่สามารถเข้าถึงการแจ้งเตือนทั้งหมดได้
สำหรับคำแนะนำฉบับสมบูรณ์เกี่ยวกับวิธีตั้งค่าส่วนขยายบริการการแจ้งเตือน โปรดดูที่ การเพิ่มเป้าหมายส่วนขยายบริการการแจ้งเตือน
เพื่อให้ Ometria ติดตามการแจ้งเตือนทั้งหมดที่ได้รับในสถานะออกและสถานะเบื้องหลังของแอปบน Android ได้อย่างแม่นยำ คุณต้องสมัครรับข้อความระยะไกล (ใน index.js
) ก่อนกำหนดที่แอปของคุณได้รับขณะอยู่ในสถานะออกและในเบื้องหลัง
Ometria.onAndroidBackgroundMessage
จะทำให้ Ometria SDK ทราบว่าได้รับข้อความระยะไกลแล้ว และเหตุการณ์ การแจ้งเตือนที่ได้รับ จะเริ่มทำงาน ต้องใช้โทเค็น Ometria เพื่อเริ่มต้น SDK ในเบื้องหลัง
Platform . OS === 'android' &&
messaging ( ) . setBackgroundMessageHandler ( async ( remoteMessage ) => {
Ometria . onAndroidBackgroundMessage ( {
ometriaToken : 'OMETRIA_KEY'
ometriaOptions : { } ,
remoteMessage ,
} ) ;
} ) ;
ในเวอร์ชัน 2.4.0 Ometria.setBackgroundMessageHandler
เป็นวิธีการที่เลิกใช้แล้ว ใช้ Ometria.onAndroidBackgroundMessage
แทน
เมื่อผู้ใช้โต้ตอบกับการแจ้งเตือนในเบื้องหลังหรือออกจากสถานะ คุณต้องแจ้งให้ Ometria SDK ทราบว่ามีการโต้ตอบการแจ้งเตือนและเปิดแอปแล้ว คุณสามารถทำได้โดยการเรียก Ometria.onNotificationOpenedApp
โดยมีข้อความระยะไกลเป็นพารามิเตอร์
// Check if the app was opened from quit state by a notification
messaging ( )
. getInitialNotification ( )
. then ( ( remoteMessage ) => {
if ( remoteMessage ) {
Ometria . onNotificationOpenedApp ( remoteMessage ) ;
}
} ) ;
// Subscribe to the app being opened from background state by a notification
messaging ( ) . onNotificationOpenedApp ( ( remoteMessage ) =>
Ometria . onNotificationOpenedApp ( remoteMessage )
) ;
ในเวอร์ชัน 2.4.0 Ometria.onNotificationInteracted
เป็นวิธีการที่เลิกใช้แล้ว ใช้ Ometria.onNotificationOpenedApp
แทน
Ometria ช่วยให้คุณสามารถส่ง URL และข้อมูลการติดตามไปพร้อมกับการแจ้งเตือนแบบพุชของคุณและช่วยให้คุณสามารถจัดการสิ่งเหล่านั้นบนอุปกรณ์ได้ เมื่อมีการแจ้งเตือนเปิดแอป คุณสามารถแยกวิเคราะห์ข้อความแจ้งเตือนระยะไกลและตรวจสอบว่ามี URL ลิงก์ในรายละเอียดหรือไม่
const notif = await Ometria . parseNotification ( remoteMessage ) ;
if ( notif ?. deepLinkActionUrl ) {
Ometria . trackDeepLinkOpenedEvent ( notif . deepLinkActionUrl , 'Browser' ) ;
Linking . openURL ( notif . deepLinkActionUrl ) ;
}
Ometria.parseNotification
ส่งคืนออบเจ็กต์ที่มีประเภท OmetriaNotificationData
ที่มีลักษณะดังนี้:
type OmetriaNotificationData = {
campaignType?: 'trigger; // represents automation campaigns
deepLinkActionUrl?: string;
externalCustomerId?: string;
imageUrl?: string;
sendId?: string;
tracking: { // Can be overridden / added in your automation campaign's settings
utm_medium?: string; // default is "push"
utm_source: string;
utm_campaign: string; // generated from campaign hash and title
om_campagin: string; // generated from campaign hash, campaign version and node id
[key: string]: string | undefined; // additional tracking data you add
};
};
ส่วนขยายบริการการแจ้งเตือนมีวัตถุประสงค์สองประการ:
ในการเพิ่มส่วนขยาย ให้ไปที่ ไฟล์ > ใหม่ > เป้าหมาย และเลือก ส่วนขยายบริการการแจ้งเตือน > ถัดไป
รายการใหม่จะปรากฏในรายการเป้าหมายของคุณ:
ถัดไป ตรวจสอบให้แน่ใจว่า Ometria SDK พร้อมใช้งานสำหรับเป้าหมายใหม่นี้ด้วย โดยอัปเดต podfile ของคุณเพื่อรวมเป้าหมายที่เพิ่มใหม่ และระบุ Ometria เป็นสิ่งอ้างอิง
# move this line before the App target
pod 'GoogleUtilities' , : modular_headers => true
use_frameworks! :linkage => :static
target 'sampleApp' do
# Pods for sampleApp
end
# Add the following lines
target 'NotificationService' do
use_frameworks! :linkage => :static
pod 'Ometria'
end
ณ จุดนี้แอปพลิเคชันหลักและส่วนขยายจะทำหน้าที่เป็นสองเอนทิตีที่แยกจากกันโดยมีเพียงส่วนประกอบที่ใช้ร่วมกันเท่านั้นที่เป็นโค้ด เพื่อให้ส่วนขยายได้รับสิทธิ์การเข้าถึงแบบอ่านและเขียนข้อมูลที่เกี่ยวข้องกับ SDK นั้น ส่วนขยายจะต้องอยู่ในกลุ่มแอปเดียวกันกับเป้าหมายหลัก ซึ่งจะทำให้เป้าหมายหลักและส่วนขยายสามารถแชร์ข้อมูลได้
ในแถบนำทางโปรเจ็กต์ของคุณ ให้เลือกโปรเจ็กต์ของคุณ จากนั้นไปที่ การลงนามและความสามารถ และเลือก + ความสามารถ ที่มุมซ้ายบน
เมื่อคุณดำเนินการดังกล่าวแล้ว ส่วนใหม่จะแสดงด้านล่างการลงนาม จะช่วยให้คุณสามารถเพิ่มกลุ่มแอปใหม่ได้ ตรวจสอบให้แน่ใจว่าคุณเลือกตัวระบุที่เกี่ยวข้อง (เช่น group.[BUNDLE_IDENTIFIER]
) และเก็บค่าไว้ เนื่องจากคุณจะต้องใช้เมื่อสร้างอินสแตนซ์ Ometria ทำซ้ำขั้นตอนสำหรับเป้าหมายส่วนขยายบริการการแจ้งเตือน และคุณควรดำเนินการต่อไป
หากต้องการอนุญาตให้ Ometria สกัดกั้นการแจ้งเตือน ให้เปิดคลาส NotificationService
ที่สร้างขึ้นโดยอัตโนมัติควบคู่ไปกับส่วนขยาย และแทนที่เนื้อหาด้วยเนื้อหาต่อไปนี้:
import UserNotifications
import Ometria
class NotificationService : OmetriaNotificationServiceExtension {
override func instantiateOmetria ( ) -> Ometria ? {
Ometria . initializeForExtension ( appGroupIdentifier : " group.[BUNDLE_IDENTIFIER] " )
}
}
สุดท้ายนี้ คุณต้องใช้ตัวระบุกลุ่มแอปเมื่อเริ่มต้น Ometria ในแอปพลิเคชัน ReactNative
import Ometria from 'react-native-ometria' ;
// Ometria init
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelName : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.[BUNDLE_IDENTIFIER]' , // optional, only for iOS
} ) ;
ตอนนี้แอปของคุณจะส่ง notificationReceived
เหตุการณ์ที่ได้รับทุกครั้งที่ได้รับการแจ้งเตือนในสถานะออก และคุณจะสามารถแสดงการแจ้งเตือนเนื้อหาที่หลากหลายบน iOS ได้
หากต้องการดูตัวอย่างและกรณีการใช้งานที่สมบูรณ์ โปรดปรึกษาแอปตัวอย่าง
Ometria ส่งอีเมลส่วนบุคคลพร้อม URL ที่ชี้กลับไปยังเว็บไซต์ของคุณ หากต้องการเปิด URL เหล่านี้ภายในแอปพลิเคชันของคุณ โปรดปฏิบัติตามคำแนะนำนี้
ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าโดเมนการติดตาม Ometria ที่เปิดใช้งาน SSL สำหรับบัญชีของคุณ คุณอาจมีสิ่งนี้สำหรับแคมเปญอีเมลของคุณอยู่แล้ว แต่หากไม่ได้ขอให้ผู้ติดต่อ Ometria ตั้งค่า และพวกเขาควรจะมอบโดเมนให้กับคุณ
โปรดปฏิบัติตามเอกสาร iOS สำหรับโดเมนที่เกี่ยวข้อง จากนั้นสร้างไฟล์ apple-app-site-association และส่งไปที่ผู้ติดต่อ Ometria ของคุณ
ขั้นตอนสุดท้ายคือการประมวลผล URL ในแอปของคุณและนำผู้ใช้ไปยังส่วนที่เหมาะสมของแอป โปรดทราบว่าคุณต้องใช้การแมประหว่าง URL ของเว็บไซต์และหน้าจอของแอป
ดูเพิ่มเติมที่การเชื่อมโยงการแจ้งเตือนแบบพุชไปยังหน้าจอแอพ
หากคุณกำลังจัดการกับ URL ปกติที่ชี้ไปยังเว็บไซต์ของคุณ คุณสามารถแยกย่อยออกเป็นองค์ประกอบและพารามิเตอร์เส้นทางต่างๆ ซึ่งจะช่วยให้คุณสามารถระบุแหล่งที่มาของข้อมูลที่จำเป็นเพื่อนำทางไปยังหน้าจอที่ถูกต้องในแอปของคุณได้
เพื่อให้ ReactNative ระบุว่า URL กำลังเปิดแอป คุณต้องปรับไฟล์ AppDelegate.m จากโฟลเดอร์ iOS เพิ่มโค้ดต่อไปนี้ใน AppDelegate.m จาก ./ios/ProjectName
- ( BOOL )application:(UIApplication *)application openURL:( NSURL *)url
sourceApplication:( NSString *)sourceApplication annotation:( id )annotation
{
return [RCTLinkingManager application: application openURL: url
sourceApplication: sourceApplication annotation: annotation];
}
// Only if your app is using [Universal Links](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html).
- ( BOOL )application:(UIApplication *)application continueUserActivity:( NSUserActivity *)userActivity
restorationHandler:( void (^)( NSArray * _Nullable))restorationHandler
{
return [RCTLinkingManager application: application
continueUserActivity: userActivity
restorationHandler: restorationHandler];
}
สำหรับ Android โปรดเพิ่มสิ่งต่อไปนี้:
< intent-filter android : autoVerify = " true " >
< action android : name = " android.intent.action.VIEW " />
< category android : name = " android.intent.category.DEFAULT " />
< category android : name = " android.intent.category.BROWSABLE " />
< data
android : host = " clickom.omdemo.net "
android : scheme = " https " />
</ intent-filter >
ไปที่ /android/app/src/main/AndroidManifest.xml
อย่างไรก็ตาม อีเมล Ometria มี URL ติดตามผลที่สับสน และจำเป็นต้องแปลงกลับเป็น URL เดิมโดยชี้ไปที่เว็บไซต์ของคุณก่อน