Μετάβαση στο κύριο περιεχόμενο

Παρακολούθηση E-Commerce

Τα Joryio SDK περιλαμβάνουν ενσωματωμένη παρακολούθηση e-commerce για αλληλεπίδραση με προϊόντα, δραστηριότητα καλαθιού και αγορές. Ο tracker λειτουργεί με τον ίδιο τρόπο σε κάθε πλατφόρμα: ίδιες μέθοδοι, ίδια τυπικά ονόματα συμβάντων και ίδια σημασιολογία ιδιοτήτων - διαφέρει μόνο η σύνταξη της γλώσσας.

Επιλέξτε την πλατφόρμα σας σε οποιοδήποτε παράδειγμα κώδικα παρακάτω· η επιλογή συγχρονίζεται σε όλη τη σελίδα. Για εγκατάσταση και ρυθμίσεις, δείτε τους οδηγούς πλατφόρμας: Web SDK, iOS SDK, Android SDK, React Native SDK. Το React Native δεν διαθέτει αποκλειστικό tracker - η καρτέλα του δείχνει τις ισοδύναμες κλήσεις Joryio.track() (δείτε React Native παρακάτω).

Σύμβαση ονοματοδοσίας ID​

Το Joryio χρησιμοποιεί σαφή σύμβαση ονοματοδοσίας για αναγνωριστικά:

Το ID σαςΠεριγραφήΠαράδειγμα
productIdΑναγνωριστικό προϊόντος (SKU ή ID προϊόντος από την πλατφόρμα e-commerce σας)"SKU-12345"
orderIdΑναγνωριστικό παραγγελίας (αριθμός παραγγελίας από την πλατφόρμα σας)"ORD-2024-001"
userIdΑναγνωριστικό χρήστη (περνά στο identify())"user-123"

Χρησιμοποιήστε τα δικά σας αναγνωριστικά φυσικά - δεν απαιτούνται ειδικά προθέματα.

Αρχικοποίηση του E-Commerce Tracker​

// Get the e-commerce tracker from your SDK instance
// (joryio is the instance created with `new JoryioSDK({ sdkKey: ... })`)
const ecommerce = joryio.ecommerce({
currency: 'USD' // Default currency for all events
});

Παρακολούθηση προβολών προϊόντων και αναζήτησης​

// When user views a product page
ecommerce.viewProduct({
productId: 'SKU-12345',
name: 'Classic Blue T-Shirt',
price: 29.99,
category: 'Clothing/T-Shirts',
brand: 'Acme Apparel',
imageUrl: 'https://example.com/images/blue-tshirt.jpg',
url: 'https://example.com/products/blue-tshirt'
});

// When user views a category page
ecommerce.viewCategory('tshirts', 'T-Shirts');

// When user searches
ecommerce.search('blue shirts', 42); // query, result count

Παρακολούθηση δραστηριότητας καλαθιού​

// Add item to cart
ecommerce.addToCart({
productId: 'SKU-12345',
name: 'Classic Blue T-Shirt',
price: 29.99,
quantity: 1,
variantId: 'var-medium',
sku: 'BTS-001-M'
}, 59.98); // Optional: current cart value

// Remove item from cart
ecommerce.removeFromCart({
productId: 'SKU-12345',
name: 'Classic Blue T-Shirt',
price: 29.99
}, 1); // quantity to remove

// Update entire cart
ecommerce.updateCart([
{ productId: 'SKU-12345', name: 'Blue T-Shirt', price: 29.99, quantity: 2 },
{ productId: 'SKU-67890', name: 'Black Jeans', price: 49.99, quantity: 1 }
], 109.97); // items array, total cart value

Παρακολούθηση ροής checkout​

// When user starts checkout
ecommerce.startCheckout([
{ productId: 'SKU-12345', name: 'Blue T-Shirt', price: 29.99, quantity: 2 },
{ productId: 'SKU-67890', name: 'Black Jeans', price: 49.99, quantity: 1 }
], 109.97); // items, cart value

// When user adds payment info
ecommerce.addPaymentInfo('credit_card');

Παρακολούθηση αγορών​

// When order is completed
ecommerce.purchase({
orderId: 'ORD-2024-001',
items: [
{
productId: 'SKU-12345',
name: 'Classic Blue T-Shirt',
price: 29.99,
quantity: 2,
category: 'Clothing',
brand: 'Acme'
},
{
productId: 'SKU-67890',
name: 'Black Jeans',
price: 49.99,
quantity: 1
}
],
value: 109.97,
currency: 'USD',
shipping: 5.99,
tax: 8.80,
discount: 10.00,
coupon: 'SAVE10'
});
Τα προϊόντα πρέπει να παρέχονται

Η μέθοδος purchase() απαιτεί να περάσετε ρητά τα προϊόντα της παραγγελίας. Το SDK δεν αποθηκεύει την κατάσταση καλαθιού στον client ούτε αντλεί αυτόματα προϊόντα από το καταγεγραμμένο καλάθι ή τον διακομιστή. Αυτό εξασφαλίζει ακρίβεια, επειδή η σελίδα ή η οθόνη επιβεβαίωσης παραγγελίας γνωρίζει τα ακριβή προϊόντα που αγοράστηκαν.

Παρακολούθηση αλλαγών κατάστασης παραγγελίας​

// Order shipped
ecommerce.orderFulfilled('ORD-2024-001', '1Z999AA10123456784', 'UPS');

// Order delivered
ecommerce.orderDelivered('ORD-2024-001');

// Order cancelled
ecommerce.orderCancelled('ORD-2024-001', 'Customer requested');

// Order refunded
ecommerce.orderRefunded('ORD-2024-001', 29.99, 'Product defective');

Παρακολούθηση λίστας επιθυμιών και κοινοποίησης​

// Add to wishlist
ecommerce.addToWishlist({
productId: 'SKU-12345',
name: 'Classic Blue T-Shirt',
price: 29.99
});

// Share product
ecommerce.shareProduct({
productId: 'SKU-12345',
name: 'Classic Blue T-Shirt'
}, 'facebook'); // share method

Παρακολούθηση κουπονιών​

// Coupon applied
ecommerce.applyCoupon('SAVE10', 10.00, 'percentage');

// Coupon removed
ecommerce.removeCoupon('SAVE10');

Παρακολούθηση αξιολογήσεων​

// Product review submitted
ecommerce.submitReview('SKU-12345', 5, 'Great quality shirt!');

Τυπικά συμβάντα E-Commerce​

Ο e-commerce tracker στέλνει τα ίδια τυπικά συμβάντα σε κάθε πλατφόρμα:

Όνομα συμβάντοςΠεριγραφή
Product ViewedΟ χρήστης προβάλλει σελίδα προϊόντος
Product List ViewedΟ χρήστης προβάλλει σελίδα κατηγορίας
Products SearchedΟ χρήστης αναζητά προϊόντα
Product AddedΠροϊόν προστέθηκε στο καλάθι
Product RemovedΠροϊόν αφαιρέθηκε από το καλάθι
Cart UpdatedΤο περιεχόμενο του καλαθιού άλλαξε
Checkout StartedΟ χρήστης ξεκινά checkout
Payment Info EnteredΟ χρήστης προσθέτει μέθοδο πληρωμής
Order CompletedΗ παραγγελία ολοκληρώθηκε
Order FulfilledΗ παραγγελία στάλθηκε
Order DeliveredΗ παραγγελία παραδόθηκε
Order CancelledΗ παραγγελία ακυρώθηκε
Order RefundedΗ παραγγελία επιστράφηκε
Product Added to WishlistΠροϊόν προστέθηκε στη λίστα επιθυμιών
Product Removed from WishlistΠροϊόν αφαιρέθηκε από τη λίστα επιθυμιών
Product SharedΤο προϊόν κοινοποιήθηκε
Coupon AppliedΕφαρμόστηκε κωδικός κουπονιού
Coupon RemovedΑφαιρέθηκε κωδικός κουπονιού
Product ReviewedΥποβλήθηκε αξιολόγηση προϊόντος

React Native​

Το React Native SDK δεν περιλαμβάνει αποκλειστικό e-commerce tracker. Οι εφαρμογές React Native στέλνουν ακριβώς τα ίδια τυπικά συμβάντα με Joryio.track(), χρησιμοποιώντας τα ίδια ονόματα συμβάντων και τα ίδια ονόματα ιδιοτήτων στο wire που εκπέμπουν οι trackers των άλλων SDK (οι trackers μετατρέπουν τα inputs camelCase σε ιδιότητες συμβάντων snake_case στο wire). Η καρτέλα React Native σε κάθε ενότητα παραπάνω δείχνει την ισοδύναμη κλήση Joryio.track() για κάθε μέθοδο tracker.

Όταν ένα κατάστημα (Shopify, WooCommerce, Magento) ή το Orders API στέλνει τις παραγγελίες σας, το Joryio δημιουργεί μόνο του τα Order Refunded και Order Cancelled - μην καλείτε επίσης τα orderRefunded / orderCancelled για αυτές τις παραγγελίες, αλλιώς κάθε επιστροφή καταγράφεται δύο φορές. Τα συμβάντα του διακομιστή χρησιμοποιούν τα ίδια κλειδιά order_id, refund_amount και reason με τους trackers, οπότε μία συνθήκη journey ταιριάζει και στα δύο. Δείτε Συμβάντα επιστροφής και ακύρωσης.

Υποχρεωτικά ορίσματα​

Κάθε tracker απορρίπτει μια ελλιπή κλήση με τον ίδιο τρόπο, σε κάθε SDK: καταγράφει μια προειδοποίηση και δεν στέλνει τίποτα - ποτέ ένα συμβάν με κενό αναγνωριστικό ή μηδενικό ποσό, που μια αναφορά εσόδων θα μετρούσε ως πραγματικό. Καμία κλήση δεν προκαλεί εξαίρεση.

ΚλήσηΥποχρεωτικά
viewProduct, removeFromCart, addToWishlist, removeFromWishlistΈνα προϊόν με productId και πεπερασμένη price
addToCartΈνα είδος με productId και πεπερασμένη price
shareProductΈνα προϊόν όπως παραπάνω, και shareMethod
viewCategorycategoryId και categoryName
searchquery
cartViewed, updateCart, startCheckoutΈνας πίνακας items, κάθε είδος με productId και πεπερασμένη price, και πεπερασμένο cartValue
addPaymentInfopaymentMethod
purchaseΈνα orderId, ένας πίνακας items (μπορεί να είναι κενός· κάθε είδος όπως παραπάνω) και πεπερασμένη value
orderFulfilled, orderDelivered, orderCancelled, orderRefundedorderId
applyCoupon, removeCouponcouponCode
submitReviewproductId

Ένα αναγνωριστικό ή μια ετικέτα που είναι κενά ή περιέχουν μόνο κενά διαστήματα θεωρούνται ότι λείπουν. Ένα προαιρετικό ποσό - cartValue στο addToCart, shipping, tax και discount σε μια παραγγελία, refundAmount, discountAmount - μπορεί να παραλειφθεί, αλλά όποιο δίνετε πρέπει να είναι πεπερασμένος αριθμός: NaN ή άπειρο απορρίπτει ολόκληρη την κλήση, αντί να τη στείλει χωρίς αυτό το ποσό.

Οι προσαρμοσμένες ιδιότητες που περνάτε μαζί ακολουθούν τον γενικό κανόνα: μια τιμή NaN ή άπειρη εκεί αφαιρείται με προειδοποίηση και η κλήση στέλνεται χωρίς αυτό το κλειδί - δείτε Ιδιότητες και τύποι δεδομένων.

Στο Unity τα ονόματα είναι σε PascalCase (ViewProduct, ProductId)· οι κανόνες είναι ίδιοι.

Επόμενα βήματα​