Δημιουργία εφαρμογών
Μια εφαρμογή αντιπροσωπεύει μία πλατφόρμα στην οποία παρακολουθείτε χρήστες - τον ιστότοπό σας, την iOS εφαρμογή ή την Android εφαρμογή - και διαθέτει το κλειδί SDK που χρησιμοποιεί το build της πλατφόρμας. Αυτή η σελίδα εξηγεί πώς δημιουργείτε μια εφαρμογή και στέλνετε τα πρώτα συμβάντα.
Οι εφαρμογές δημιουργούνται μέσα σε workspace και χρειάζεστε δικαίωμα εγγραφής στις ρυθμίσεις του workspace.
1. Δημιουργήστε την εφαρμογή
- Στο dashboard του Joryio, μεταβείτε στις Ρυθμίσεις → Εφαρμογές.
- Επιλέξτε Create App.
- Εισαγάγετε ένα App Name - να είναι αναγνωρίσιμο, π.χ. «Production Website» ή «iOS - App Store».
- Επιλέξτε την Platform: Web, iOS ή Android. Η πλατφόρμα δεν αλλάζει αργότερα - δημιουργήστε νέα εφαρμογή. (Οι εφαρμογές Shopify, WooCommerce και Magento δημιουργούνται αυτόματα από τις ενσωματώσεις τους, όχι από αυτό το παράθυρο.)
- Επιλέξτε create.
Αν κυκλοφορείτε σε πολλές πλατφόρμες, δημιουργήστε μία εφαρμογή ανά πλατφόρμα - δείτε Παρακολούθηση πολλών πλατφορμών. Για React Native, δημιουργήστε μία iOS και μία Android εφαρμογή.
2. Αντιγράψτε το κλειδί SDK
Η νέα εφαρμογή εμφανίζεται στον πίνακα εφαρμογών με το παραγόμενο κλειδί SDK, στη μορφή jry_sdk_<platform>_<random>:
jry_sdk_web_4f2a9c...
Χρησιμοποιήστε το κουμπί αντιγραφής στη στήλη SDK Key. Αντιμετωπίστε το κλειδί ως ρύθμιση και όχι ως μυστικό που πρέπει να ενσωματωθεί στον κώδικα: φορτώστε το από μεταβλητή περιβάλλοντος και μην το κάνετε ποτέ commit σε δημόσιο repository. Αν διαρρεύσει κλειδί, επιλέξτε Regenerate Key στη γραμμή εφαρμογής - το παλιό κλειδί σταματά να λειτουργεί αμέσως, οπότε ενημερώστε πρώτα το deployment σας.
3. Συνδέστε το SDK
Εγκαταστήστε και αρχικοποιήστε το SDK που αντιστοιχεί στην πλατφόρμα της εφαρμογής, περνώντας το κλειδί που αντιγράψατε:
| Πλατφόρμα | Οδηγός SDK | Αρχικοποίηση με |
|---|---|---|
| Web | Web SDK | new JoryioSDK({ sdkKey: 'jry_sdk_web_...' }) |
| iOS | iOS SDK | Joryio.shared.initialize(sdkKey: "jry_sdk_ios_...") |
| Android | Android SDK | Joryio.initialize(context, "jry_sdk_android_...") |
| React Native | React Native SDK | Joryio.initialize(key, apiHost) με το iOS ή Android κλειδί ανά Platform.OS |
Το κλειδί πρέπει να ταιριάζει με την πλατφόρμα - ένα κλειδί jry_sdk_web_... στο iOS SDK δεν θα παρακολουθήσει αυτό το build ως iOS εφαρμογή.
Έπειτα αναγνωρίστε χρήστες και παρακολουθήστε το πρώτο συμβάν:
// Web SDK example - the other platforms use the equivalent calls
const joryio = new JoryioSDK({ sdkKey: 'jry_sdk_web_...' });
joryio.identify('user_123');
joryio.track('order_placed', { order_id: 'ORD-001', total: 149.99 });
4. Επαληθεύστε ότι φτάνουν συμβάντα
- Ενεργοποιήστε ένα συμβάν στην εφαρμογή σας (ή απλώς φορτώστε σελίδα - το SDK παρακολουθεί αυτόματα το
Session Start). - Ανοίξτε το Analytics → Event Explorer στο dashboard και αναζητήστε το συμβάν. Τα SDK ομαδοποιούν τα συμβάντα και τα στέλνουν κάθε λίγα δευτερόλεπτα, επομένως περιμένετε λίγο - ή καλέστε
flush()για άμεση αποστολή. - Για έλεγχο ανά εφαρμογή, επιστρέψτε στις Ρυθμίσεις → Εφαρμογές και επιλέξτε View Analytics στην εφαρμογή: εμφανίζει συνολικά συμβάντα, ενεργούς χρήστες και το timestamp του τελευταίου συμβάντος για το συγκεκριμένο κλειδί SDK.
Αν δεν εμφανίζεται τίποτα, ακολουθήστε τη λίστα ελέγχου στο Παρακολούθηση συμβάντων - Επαλήθευση και εντοπισμός σφαλμάτων.
Συνεχής διαχείριση
Από τη γραμμή της εφαρμογής στις Ρυθμίσεις → Εφαρμογές μπορείτε επίσης:
- Να ρυθμίσετε διαπιστευτήρια push - APNS για iOS, FCM για Android ή να ενεργοποιήσετε web push (VAPID) για web εφαρμογές.
- Να απενεργοποιήσετε εφαρμογή - συμβάντα που στέλνονται με το κλειδί απενεργοποιημένης εφαρμογής απορρίπτονται· τα ιστορικά συμβάντα διατηρούνται.
- Να αναδημιουργήσετε το κλειδί SDK - άμεση rotation που διακόπτει το παλιό κλειδί.
- Να ενεργοποιήσετε SDK Authentication - προαιρετικά, να απαιτείτε JWT υπογεγραμμένο από πελάτη (στην κεφαλίδα
X-Joryio-Auth) σε κάθε ingest request της εφαρμογής που αναφέρει αναγνωρισμένο χρήστη, επαληθευμένο με δημόσιο κλειδί που καταχωρίζετε. - Να διαγράψετε την εφαρμογή - σταματά μόνιμα την παρακολούθηση για αυτό το κλειδί· τα ιστορικά συμβάντα διατηρούνται.
Ασφάλεια ταυτότητας: SDK Authentication (συνιστάται)
Το κλειδί SDK είναι δημοσιεύσιμο - περιλαμβάνεται στον ιστότοπο ή την εφαρμογή σας και, εκ σχεδιασμού, μπορεί να το εξαγάγει οποιοσδήποτε. Από μόνο του πιστοποιεί την εφαρμογή, όχι τον τελικό χρήστη: όπως κάθε SDK analytics στην πλευρά του πελάτη, ένα αίτημα φέρει userId/anonymousId που δίνει ο πελάτης και δηλώνει ποια επαφή αφορά, αλλά δεν αποδεικνύει ότι ο καλών ελέγχει αυτή την επαφή.
Για την περισσότερη παρακολούθηση συμβάντων αυτό είναι εντάξει. Όμως για ευαίσθητες λειτουργίες ταυτότητας - αλλαγή συγκατάθεσης, καταχώριση προορισμού push, ορισμό γνωρισμάτων προφίλ ή συγχώνευση προφίλ μέσω identify - σημαίνει ότι κάποιος με το κλειδί SDK σας και ένα γνωστό αναγνωριστικό επαφής θα μπορούσε να ενεργήσει για αυτή την επαφή. Για να το κλείσετε, ενεργοποιήστε το SDK Authentication:
-
Ο backend σας υπογράφει ένα βραχύβιο JWT (RS256/ES256) με θέμα τον αναγνωρισμένο χρήστη, και το SDK το στέλνει στην κεφαλίδα
X-Joryio-Auth. Το Joryio το επαληθεύει με το δημόσιο κλειδί που καταχωρίζετε, οπότε ένα αίτημα δένεται με αποδεδειγμένο χρήστη. Αυτό είναι το τυπικό μοντέλο πιστοποίησης κίνησης SDK από την πλευρά του πελάτη. -
Μετά την ενεργοποίηση, κάθε αίτημα που αναφέρει
userIdπρέπει να φέρει έγκυρο token για τον ίδιο χρήστη - χωρίς token, ή με token άλλου χρήστη, απορρίπτεται με401. Οι ανώνυμοι επισκέπτες δεν έχουν token να δείξουν, οπότε τα ανώνυμα αιτήματα γίνονται δεκτά - συμβάντα, γνωρίσματα, συγκατάθεση, καταχώριση push, aliases και in-app εξίσου. Μία εξαίρεση εμποδίζει να γίνει αυτό τρόπος παράκαμψης του token: έναanonymousIdπου ανήκει ήδη σε αναγνωρισμένο χρήστη δεν μπορεί να χρησιμοποιηθεί για εγγραφή στο προφίλ του (403μεcode: "SDK_ANONYMOUS_ID_IDENTIFIED"). -
Η αποσύνδεση δεν χάνει τίποτα. Όταν ένας χρήστης αποσυνδέεται (
reset()), τα αιτήματα που ήδη περιμένουν για αυτόν κρατούν το δικό του token, και ο επόμενος χρήστης δεν το στέλνει ποτέ. Οι ανακλήσεις - μια απεγγραφή, η καταγραφή εξαίρεσης, μια κατάργηση καταχώρισης push - γίνονται δεκτές με σωστά υπογεγραμμένο token έως 30 ημέρες μετά τη λήξη του· όλα τα άλλα χρειάζονται token που δεν έχει λήξει. Δείτε Οι ανακλήσεις παραδίδονται πάντα.
Για την αυστηρότερη στάση, ενεργοποιήστε το Strict SDK identity στην εφαρμογή: απορρίπτει επιπλέον τις ανώνυμες ευαίσθητες εγγραφές (συγκατάθεση, καταχώριση push, γνωρίσματα, aliases, identify) με 403 και code: "SDK_STRICT_IDENTITY_REQUIRED", οπότε καθεμία απαιτεί userId επαληθευμένο με SDK Authentication.
Συνιστούμε την ενεργοποίηση του SDK Authentication για κάθε εφαρμογή που επιτρέπει στους τελικούς χρήστες να διαχειρίζονται συγκατάθεση ή να λαμβάνουν push.
Επιλέξτε ένα userId που δεν μπορεί να μαντευτεί
Το SDK Authentication είναι προαιρετικό και η απόφαση να το ενεργοποιήσετε είναι δική σας. Μέχρι τότε, το userId είναι το μόνο που στέκεται ανάμεσα σε ένα αίτημα και μια επαφή - άρα η επιλογή του αναγνωριστικού είναι από μόνη της απόφαση ασφάλειας.
Ένας χρήστης μπορεί πάντα να διαβάσει το δικό του αναγνωριστικό από τη δική του κίνηση. Αυτό είναι αναπόφευκτο και ακίνδυνο. Σημασία έχει ότι η γνώση ενός αναγνωριστικού δεν αποκαλύπτει τίποτα για το αναγνωριστικό κανενός άλλου.
Αποφύγετε
- Διευθύνσεις email και αριθμούς τηλεφώνου. Όποιος μπορεί να κατονομάσει τον πελάτη σας μπορεί να παραγάγει το αναγνωριστικό του. Το hashing δεν βοηθά: όποιος γνωρίζει το email υπολογίζει το ίδιο hash.
- Διαδοχικά ή αυτόματα αναγνωριστικά βάσης δεδομένων. Ένα γνωστό αναγνωριστικό αποκαλύπτει όλα τα υπόλοιπα, απλώς με απαρίθμηση.
- Οτιδήποτε είναι ήδη δημόσιο - τιμές που εμφανίζονται σε URL, στον κώδικα της σελίδας, σε επιβεβαιώσεις παραγγελιών ή σε αιτήματα υποστήριξης.
Προτιμήστε
- Μια αδιαφανή, τυχαία τιμή ανά χρήστη - ένα UUIDv4 που δημιουργείται μία φορά και αποθηκεύεται στην εγγραφή του χρήστη σας.
- Σταθερή για όλη τη ζωή του λογαριασμού. Η αλλαγή της χωρίζει ένα άτομο σε δύο επαφές, σπάζοντας ιστορικό και συγκατάθεση.
Πρόκειται για άμυνα σε βάθος, όχι για υποκατάστατο. Ένα τυχαίο userId ανεβάζει το κόστος μιας στοχευμένης επίθεσης· το SDK Authentication εξαλείφει ολόκληρη την κατηγορία. Αν η εφαρμογή σας επιτρέπει στους τελικούς χρήστες να διαχειρίζονται συγκατάθεση ή να λαμβάνουν push, κάντε και τα δύο.