Καμπάνιες in-app
Εμφανίστε στοχευμένα μηνύματα στους χρήστες ενώ χρησιμοποιούν ενεργά την εφαρμογή σας. Τα μηνύματα in-app δεν απαιτούν άδεια, μπορούν να περιλαμβάνουν πλούσιο διαδραστικό περιεχόμενο και συνυπάρχουν με το push και το email στον ενιαίο οδηγό καμπανιών.
Επισκόπηση
Οι καμπάνιες in-app σάς επιτρέπουν να:
- Εντάσσετε νέους χρήστες με χρήσιμες συμβουλές και οδηγούς
- Ανακοινώνετε δυνατότητες και ενημερώσεις προϊόντος
- Αυξάνετε την αλληλεπίδραση με προτροπές και CTA
- Προωθείτε προσφορές με μηνύματα εντός πλαισίου
- Εκτελείτε πειράματα με παραλλαγές A/B και ομάδες ελέγχου
Βασικά πλεονεκτήματα:
- Δεν απαιτείται άδεια (σε αντίθεση με το push)
- Πλούσιο, διαδραστικό περιεχόμενο
- Συναφές με την τρέχουσα δραστηριότητα του χρήστη
- Υψηλότερα ποσοστά αλληλεπίδρασης από το push ή το email
- Εμφανίζεται με τις γραμματοσειρές, τα χρώματα και τη σκοτεινή λειτουργία της ίδιας της εφαρμογής (μηνύματα native)
Προαπαιτούμενα
Βεβαιωθείτε πρώτα ότι έχετε ενσωματώσει το SDK:
Το SDK συγχρονίζει τις επιλέξιμες καμπάνιες και τις εμφανίζει όταν οι χρήστες πληρούν τα κριτήρια εναύσματος και στόχευσης που έχετε ορίσει.
Τύποι μηνυμάτων
Επιλέξτε μία από τις διατάξεις ανάλογα με την περίπτωση χρήσης:
| Τύπος | Διάταξη | Κατάλληλο για |
|---|---|---|
| Modal | Στο κέντρο της οθόνης με σκίαση φόντου | Σημαντικές ανακοινώσεις, λανσαρίσματα δυνατοτήτων |
| Banner | Λωρίδα πάνω ή κάτω | Γρήγορες συμβουλές, προσφορές με χρονικό περιορισμό |
| Slide-up | Γλιστρά προς τα πάνω από το κάτω μέρος | Διακριτικές προτροπές, ξεκλείδωμα επιτευγμάτων |
| Fullscreen | Καταλαμβάνει ολόκληρη την οθόνη | Ένταξη νέων χρηστών, σημαντικές ενημερώσεις |
| Custom | Απόδοση καθορισμένη από προγραμματιστή (ρυθμίζεται μέσω API) | Ειδικές απαιτήσεις UI |
Δημιουργία καμπάνιας in-app
Οι καμπάνιες in-app χρησιμοποιούν τον ίδιο οδηγό έξι βημάτων με κάθε άλλο κανάλι - δείτε τη Δημιουργία καμπανιών για το κοινό πλαίσιο. Τα δύο βήματα που διαφέρουν είναι η Σύνταξη και η Παράδοση.
Βήμα σύνταξης
Το βήμα σύνταξης χρησιμοποιεί το VariantTabs με επιλογέα μεθόδου 3 πλακιδίων - ίδια πύλη με το email:
- Δημιουργία με Drag & Drop - οπτικός επεξεργαστής για μη προγραμματιστές.
- Δημιουργία με HTML - διαιρεμένη προβολή με επεξεργαστή κώδικα αριστερά και ζωντανή προεπισκόπηση σε sandboxed iframe δεξιά.
- Δημιουργία από πρότυπο - επιλέξτε από τα αποθηκευμένα in-app πρότυπά σας.
Όποια μέθοδο κι αν επιλέξετε, το συντεταγμένο HTML αποθηκεύεται στο customContent της παραλλαγής. Μόλις μια παραλλαγή συνταχθεί, συμπτύσσεται σε μια κάρτα AuthoredSummary με μικρογραφία iframe 200×220 του αποδιδόμενου μηνύματος - κάντε κλικ πάνω της για να ξανανοίξετε τον επεξεργαστή.
Τα μηνύματα HTML απαιτούν ρητή συγκατάθεση της εφαρμογής
Και οι τρεις παραπάνω μέθοδοι παράγουν HTML, το οποίο η εφαρμογή εμφανίζει μέσα σε ένα web view. Τα scripts που γράφονται μέσα στο μήνυμα δεν εκτελούνται εκεί - η γέφυρα του ίδιου του SDK χειρίζεται κουμπιά και φόρμες - αλλά ένα web view μέσα στην εφαρμογή παραμένει απόφαση των προγραμματιστών της, οπότε το SDK δεν θα εμφανίσει μήνυμα HTML αν δεν το έχουν ενεργοποιήσει ρητά (allowHtmlJsInAppMessages).
Μια εφαρμογή που δεν το έχει ενεργοποιήσει παραλείπει σιωπηλά τις καμπάνιες HTML - ο χρήστης δεν βλέπει τίποτα. Αν δεν είστε βέβαιοι, ρωτήστε τους προγραμματιστές πριν προγραμματίσετε καμπάνια HTML ή χρησιμοποιήστε ένα μήνυμα native.
Μέγιστο πλάτος και responsive HTML
Ένα Modal ή ένα Slide-up που φτιάχτηκε με Drag & drop, HTML ή πρότυπο έχει τη ρύθμιση Μέγιστο πλάτος, σε pixel. Τη βρίσκετε στην κάρτα της παραλλαγής μόλις συνταχθεί το μήνυμα, στη γραμμή εργαλείων του επεξεργαστή δίπλα στο φόντο του μηνύματος, στον επεξεργαστή HTML πάνω από τον κώδικα, στο βήμα in-app ενός ταξιδιού και στο ίδιο το πρότυπο in-app. Αφήστε την κενή για την προεπιλογή - 600 px για modal, 400 px για slide-up - ή δώστε έναν ακέραιο από 240 έως 1200. Τα Banner και Fullscreen καλύπτουν όλη την οθόνη και δεν έχουν μέγιστο πλάτος· τα native μηνύματα σχεδιάζουν τη δική τους κάρτα.
Το μήνυμα παίρνει το πλάτος του πριν διαταχθεί το περιεχόμενό του: το μικρότερο ανάμεσα στο Μέγιστο πλάτος και στο πλάτος της οθόνης μείον ένα μικρό περιθώριο (16 px σε κάθε πλευρά στο web· τα περιθώρια της ίδιας της εφαρμογής σε iOS και Android). Μόνο το ύψος ακολουθεί το περιεχόμενο. Ένα σχέδιο 680 px εμφανίζεται στα 680 px σε browser υπολογιστή και χωράει στην οθόνη στο κινητό.
Γράψτε responsive HTML. Τα media queries σας βλέπουν το πραγματικό πλάτος του μηνύματος, έως το Μέγιστο πλάτος: το @media (max-width: 560px) μέσα στο μήνυμα ισχύει όταν το ίδιο το μήνυμα είναι 560 px ή στενότερο, όποιο κι αν είναι το μέγεθος του browser. Σχεδιάστε για το Μέγιστο πλάτος ως την πλατύτερη περίπτωση και αφήστε τα media queries να στοιβάζουν τις στήλες κάτω από αυτό. Δώστε στο εξωτερικό container width: 100% ή max-width αντί για σταθερό πλάτος μεγαλύτερο από ένα μικρό κινητό (περίπου 320 px).
Η Προεπισκόπηση στους επεξεργαστές χρησιμοποιεί τον ίδιο κανόνα και στην επιφάνεια App και στην Web, οπότε τα breakpoints ενεργοποιούνται εκεί ακριβώς όπως σε μια συσκευή.
Πότε ισχύει: στο web μόλις ενημερωθεί το backend. Σε iOS και Android με την επόμενη έκδοση του SDK· μέχρι τότε οι εφαρμογές κρατούν την τρέχουσα διάταξη (το πλάτος της οθόνης μείον τα περιθώρια, οπότε σε tablet ένα modal εμφανίζεται σε όλο το πλάτος). Οι εφαρμογές React Native και Unity σχεδιάζουν μόνες τους τα μηνύματα: από εκείνη την έκδοση λαμβάνουν την τιμή ως maxWidth / MaxWidth για να ορίσουν το πλάτος του web view τους.
Μηνύματα native
Ένα μήνυμα native είναι δομημένο περιεχόμενο - τίτλος, κείμενο, εικόνα και έως τρία κουμπιά - που η εφαρμογή σχεδιάζει με τα δικά της στοιχεία. Δεν εμπλέκεται web view και τίποτα δεν παραλείπεται, οπότε εμφανίζεται σε κάθε εφαρμογή ανεξάρτητα από την παραπάνω ρύθμιση, ταιριάζει με τις γραμματοσειρές, τα χρώματα και τη σκοτεινή λειτουργία της εφαρμογής και λειτουργεί με προγράμματα ανάγνωσης οθόνης.
Το αντάλλαγμα είναι ο έλεγχος: εσείς επιλέγετε τις λέξεις, την εικόνα και τα κουμπιά· η εφαρμογή αποφασίζει πώς φαίνονται.
| Native | HTML | |
|---|---|---|
| Εμφανίζεται χωρίς συγκατάθεση της εφαρμογής | Ναι | Όχι |
| Ταιριάζει με το στυλ της εφαρμογής | Ναι | Μόνο αν το ξαναφτιάξετε σε CSS |
| Πλήρης έλεγχος της διάταξης | Όχι | Ναι |
| Λειτουργεί όπου δεν υπάρχει web view (π.χ. tvOS) | Ναι | Όχι |
Το περιεχόμενο native συντάσσεται στο πλακίδιο App style του βήματος Compose, δίπλα στο Drag & Drop και στο HTML. Αν δημιουργείτε καμπάνιες μέσω του API, δείτε το Campaigns API για τα πεδία.
Χρώματα, γραμματοσειρά και προσαρμοσμένο CSS
Στο Style (optional) μπορείτε να αντικαταστήσετε το φόντο της κάρτας, το χρώμα κειμένου, το γέμισμα του κύριου κουμπιού και την ετικέτα του, καθώς και την ακτίνα γωνίας. Αφήστε ένα πεδίο κενό και το μήνυμα κληρονομεί την τιμή από την εφαρμογή - αυτό ακριβώς κάνει ένα native μήνυμα να δείχνει ότι ανήκει εκεί, οπότε αλλάξτε κάτι μόνο όταν η καμπάνια χρειάζεται στιγμή επωνυμίας.
Αν ορίσετε χρώμα κουμπιού χωρίς χρώμα ετικέτας, η ετικέτα επιλέγεται αυτόματα - μαύρη ή λευκή, όποια παραμένει ευανάγνωστη πάνω στο γέμισμά σας.
Δύο ρυθμίσεις ισχύουν μόνο στο web:
- Γραμματοσειρά - μια εφαρμογή μπορεί να αποδώσει μόνο τις γραμματοσειρές που περιλαμβάνει, οπότε ένα όνομα που δεν διαθέτει θα κατέληγε σε κάτι που δείχνει λάθος. Τα κινητά κρατούν τη δική τους γραμματοσειρά.
- Προσαρμοσμένο CSS, στο Advanced - για ό,τι δεν εκφράζουν τα πεδία. Κάθε επιλογέας που γράφετε ξαναγράφεται ώστε να ισχύει μόνο μέσα σε αυτό το μήνυμα, άρα κανένας κανόνας δεν φτάνει στην υπόλοιπη σελίδα, και οι κανόνες εδώ υπερισχύουν των παραπάνω πεδίων χρώματος. Τα κινητά δεν έχουν μηχανή CSS και το αγνοούν.
Τι μπορείτε να στοχεύσετε: την ίδια την κάρτα, h2 (τίτλος), p (μήνυμα), button.primary και button.secondary. Τα πεδία χρώματος εκτίθενται και ως μεταβλητές CSS - --joryio-inapp-bg, --joryio-inapp-fg, --joryio-inapp-primary, --joryio-inapp-primary-fg, --joryio-inapp-radius, --joryio-inapp-font - ώστε να τις ορίσετε ξανά μέσα σε ένα media query.
Οι ίδιες καρτέλες παραλλαγών A/B λειτουργούν και για το in-app, συμπεριλαμβανομένων των ομάδων ελέγχου.
Να κάνετε τα κουμπιά να λειτουργούν
Ένα μήνυμα με προσαρμοσμένο HTML εκτελείται μέσα σε απομονωμένο πλαίσιο (sandbox) στο web και μέσα στο web view της εφαρμογής σε iOS και Android, μόλις το SDK της εφαρμογής έχει επιτρέψει μηνύματα HTML. Δεν μπορεί να προσπελάσει άμεσα ούτε τη δική σας σελίδα ούτε τη δική μας· αντ' αυτού το Joryio του δίνει μια μικρή γέφυρα.
Στυλ: μόνο ενσωματωμένα. Βάλτε το CSS σας σε ένα μπλοκ <style> στην κορυφή του HTML ή σε ιδιότητες style. Οι εφαρμογές εμφανίζουν το μήνυμα με αυστηρή πολιτική ασφαλείας που επιτρέπει ενσωματωμένα στυλ, εικόνες, γραμματοσειρές και πολυμέσα μέσω https και τίποτα άλλο - ένα stylesheet από CDN μέσω <link> δεν φορτώνει σε καμία συσκευή, οπότε αντιγράψτε ό,τι χρειάζεστε στο μπλοκ <style>.
Τι εκτελείται στη συσκευή. Το Joryio κρατά τη σήμανσή σας όπως γράφτηκε όταν αποθηκεύεται το μήνυμα (αφαιρούνται μόνο τα <base> και <meta http-equiv="refresh"> και διορθώνεται η κακοσχηματισμένη σήμανση), αλλά οι εφαρμογές την εκτελούν με αυτή την πολιτική ασφαλείας: τα δικά σας μπλοκ <script>, οι ενσωματωμένοι χειριστές onclick και οι ενσωματώσεις <iframe> (ένα βίντεο YouTube) δεν εκτελούνται σε web, iOS ή Android. Τα κουμπιά, οι σύνδεσμοι, οι ιδιότητες data-joryio-action και οι φόρμες data-jry-form λειτουργούν μέσω της γέφυρας του Joryio - δείτε παρακάτω - και δεν χρειάζονται script. Οι τιμές εξατομίκευσης γίνονται πάντα HTML-escape, οπότε ένα πεδίο προφίλ δεν γίνεται ποτέ κώδικας (προσθέστε | raw σκόπιμα όταν χρειάζεστε σήμανση από πεδίο). Η Προεπισκόπηση της καμπάνιας δείχνει τη διάταξη και τις ενέργειες γέφυρας που ενεργοποιούν τα κουμπιά σας· δεν εγγυάται ότι ένα script θα εκτελεστεί σε συσκευή.
data-joryio-action - ο συνήθης τρόπος
<button data-joryio-action="requestPushPermission">Ενεργοποίηση ειδοποιήσεων</button>
<button data-joryio-action="closeMessage">Όχι, ευχαριστώ</button>
| Ενέργεια | Τι κάνει |
|---|---|
requestPushPermission | Εμφανίζει το αίτημα ειδοποιήσεων του προγράμματος περιήγησης |
closeMessage | Κλείνει το μήνυμα |
logConversion | Καταγράφει μετατροπή για την καμπάνια |
Το logConversion δέχεται όνομα μέσω data-joryio-event· χωρίς αυτό η μετατροπή
καταγράφεται ως in_app_conversion.
Όλα αυτά υπάρχουν και στον πίνακα ιδιοτήτων του επεξεργαστή - On click, Conversion event (optional) και Click name (reports) - οπότε τα περισσότερα μηνύματα δεν χρειάζονται καθόλου HTML.
Τα κλικ καταγράφονται αυτόματα
Κάθε κλικ σε <a> ή <button> αναφέρεται από μόνο του. Για να ονομάσετε ένα κλικ
στις αναφορές, προσθέστε data-action:
<a href="/pricing" data-action="pricing_cta">Δείτε τα πλάνα</a>
Οι σύνδεσμοι http(s) και οι σχετικοί προς τη ρίζα ανοίγουν από τη φιλοξενούσα
σελίδα· οι άγκυρες, τα mailto: και tel: συμπεριφέρονται κανονικά.
window.joryioBridge - τι καλούν τα κουμπιά σας
Πίσω από το data-joryio-action βρίσκεται η γέφυρα του SDK, window.joryioBridge. Το script του SDK είναι το μόνο script που εκτελείται στο μήνυμα, και εκτελεί για εσάς αυτές τις μεθόδους:
| Μέθοδος | Σκοπός |
|---|---|
logCustomEvent(name, properties) | Καταγραφή συμβάντος για τον χρήστη |
setCustomUserAttribute(key, value) | Εγγραφή χαρακτηριστικού στο προφίλ |
logConversion(event) | Καταγραφή μετατροπής για την καμπάνια |
logClick(action) | Καταγραφή κλικ με όνομα |
changeUser(userId) | Ταυτοποίηση του επισκέπτη |
requestPushPermission() | Εμφάνιση του αιτήματος ειδοποιήσεων |
navigate(url, target) | Άνοιγμα URL από τη φιλοξενούσα σελίδα |
closeMessage() | Κλείσιμο του μηνύματος |
Το data-joryio-action μπορεί να ονομάσει οποιαδήποτε από αυτές και να περάσει ένα όρισμα στο data-joryio-event - για παράδειγμα data-joryio-action="logCustomEvent" data-joryio-event="size_selected". Μια μέθοδος που χρειάζεται δύο ορίσματα, όπως η setCustomUserAttribute, δεν μπορεί να κληθεί από τη σήμανση. Ένα <script> ή ένα ενσωματωμένο onclick="joryioBridge.closeMessage()" γραμμένο μέσα στο μήνυμα δεν εκτελείται, οπότε δεν μπορεί να καλέσει ούτε αυτό τη γέφυρα.
Η πλήρης γέφυρα είναι διαθέσιμη σε web, iOS και Android (από τις εκδόσεις του iOS SDK και του Android SDK που τη συμπεριλαμβάνουν - logCustomEvent, setCustomUserAttribute, changeUser, requestPushPermission, logConversion, logClick, navigate, closeMessage, submitForm· προηγούμενες εγγενείς εκδόσεις εκθέτουν μόνο τα closeMessage, navigate και την καταγραφή κλικ). Οι εφαρμογές React Native και Unity εμφανίζουν μηνύματα μέσω των εγγενών SDK για iOS και Android, οπότε ισχύει η ίδια γέφυρα. Μια εφαρμογή που σχεδιάζει μηνύματα στο δικό της web view (onInAppMessage στο React Native, SetInAppMessageHandler στο Unity) αποφασίζει η ίδια τι εκτελείται εκεί και υποβάλλει φόρμες με submitInAppForm / SubmitInAppForm. Τα εγγενή μηνύματα χρησιμοποιούν τα κουμπιά της εφαρμογής, οπότε συνδέστε τα CTA τους μέσω της ρύθμισης κουμπιών της καμπάνιας και όχι μέσω σήμανσης.
Βήμα παράδοσης
Το βήμα Παράδοσης για καμπάνιες in-app είναι ειδικά σχεδιασμένο - αντί για τον επιλογέα τύπου αποστολής που χρησιμοποιεί κάθε άλλο κανάλι, έχετε:
Κεντρικός επιλογέας εναύσματος
Μια σειρά από πέντε πλακίδια, με το Σε συμβάν επισημασμένο ως ΣΥΝΙΣΤΑΤΑΙ:
| Έναυσμα | Πότε εμφανίζεται το μήνυμα |
|---|---|
| Άμεσα | Στην επόμενη επιλέξιμη συνεδρία του χρήστη. |
| Σε συμβάν (συνιστάται) | Όταν ένα παρακολουθούμενο συμβάν ενεργοποιείται για τον χρήστη. |
| Πάτημα ειδοποίησης push | Όταν ένα πάτημα σε push οδηγεί τον χρήστη στην εφαρμογή σας. |
| Αλλαγή γνωρίσματος | Όταν ένα παρακολουθούμενο γνώρισμα αλλάζει τιμή. |
| Κατώφλι γνωρίσματος | Όταν ένα αριθμητικό γνώρισμα διασχίζει ένα κατώφλι. |
Κάθε πλακίδιο έχει έναν υπότιτλο μίας γραμμής και μια εκτενέστερη περιγραφή. Η επιλογή ενός πλακιδίου αποκαλύπτει τη ρύθμιση της αντίστοιχης λειτουργίας σε ένα απαλό γκρι πλαίσιο από κάτω:
- Άμεσα - καμία επιπλέον ρύθμιση, μόνο η κοινή καθυστέρηση εμφάνισης παρακάτω.
- Σε συμβάν - επιλογέας συμβάντος (με αναζήτηση και εναλλακτική επιλογή
+ Create event) και προαιρετικές συνθήκες ιδιοτήτων. - Πάτημα ειδοποίησης push - ένα έτοιμο για αντιγραφή snippet που δείχνει πώς να συνδέσετε το SDK με αυτό το id καμπάνιας.
- Αλλαγή γνωρίσματος - επιλογέας γνωρίσματος και πεδία τιμής-από / τιμής-προς.
- Κατώφλι γνωρίσματος - επιλογέας γνωρίσματος, τελεστής (
>,<,≥,≤,=) και τιμή κατωφλίου.
Καθυστέρηση εμφάνισης
Ένα ενιαίο πεδίο Καθυστέρηση εμφάνισης είναι κοινό για κάθε λειτουργία εναύσματος. Εισαγάγετε τη διάρκεια σε δευτερόλεπτα, λεπτά ή ώρες μέσω του επιλογέα μονάδας - το μήνυμα περιμένει τόσο μετά την ενεργοποίηση του εναύσματος πριν εμφανιστεί.
Πρόγραμμα
Επιλέξτε ημερομηνίες έναρξης και λήξης με ξεχωριστές ζώνες ώρας. Ο επιλογέας ζώνης ώρας καρφιτσώνει την προεπιλογή του workspace στην κορυφή, μετά την τοπική ώρα παραλήπτη, και μετά την πλήρη λίστα IANA - ώστε οι συνηθισμένες περιπτώσεις να εμφανίζονται πρώτες. Πληκτρολογήστε στο πεδίο για αναζήτηση με πόλη, χώρα ή διαφορά από UTC· τα βέλη μετακινούνται στα αποτελέσματα και το Enter επιλέγει.
Η ώρα που επιλέγετε διαβάζεται στη ζώνη που επιλέγετε: 09:00 με America/New_York ξεκινά την καμπάνια στις 09:00 ώρα Νέας Υόρκης όπου κι αν βρίσκεστε όταν την αποθηκεύετε, και ο επεξεργαστής δείχνει την ίδια 09:00 σε όποιον την ανοίξει αργότερα. Η τοπική ώρα παραλήπτη διαβάζει την ώρα στο χαρακτηριστικό timezone κάθε ατόμου - η καμπάνια ξεκινά στις 09:00 για μια επαφή στο Τόκιο και, ώρες αργότερα, στις 09:00 για μία στη Νέα Υόρκη· μια επαφή χωρίς χαρακτηριστικό ζώνης ώρας χρησιμοποιεί τη ζώνη ώρας του workspace. Ο επιλογέας λήξης ακολουθεί τη ζώνη έναρξης εκτός αν του δώσετε δική του.
Όρια συχνότητας
Μία κάρτα συγκεντρώνει τα στοιχεία ελέγχου συχνότητας:
- Μέγιστες εμφανίσεις ανά χρήστη - π.χ. 3 φορές.
- Χρονικό παράθυρο - 1 ώρα / 24 ώρες / 7 ημέρες / 30 ημέρες / 90 ημέρες / εφ' όρου ζωής, ή προσαρμοσμένο παράθυρο.
- Ελάχιστη καθυστέρηση μεταξύ εμφανίσεων - ελάχιστο διάστημα μεταξύ διαδοχικών εμφανίσεων.
Μετράει μόνο η εμφάνιση: μια εμφάνιση που αναφέρει η συσκευή (εμφανίστηκε, ή απορρίφθηκε από client που αναφέρει μόνο την απόρριψη). Μια σελίδα που φόρτωσε το μήνυμα αλλά έκλεισε πριν εμφανιστεί δεν καταναλώνει το όριο. Για να μην εμφανίσουν δύο συσκευές ταυτόχρονα ένα μήνυμα μίας φοράς, ένα μήνυμα που δόθηκε σε μία συσκευή κρατά τη θέση του για δύο λεπτά, μέχρι η συσκευή να επιβεβαιώσει την εμφάνιση. Μια συσκευή αναφέρει ένα μήνυμα ως εμφανισμένο μόνο αφού μείνει στην οθόνη περίπου ένα δευτερόλεπτο, ή όταν το άτομο το πατήσει ή το κλείσει νωρίτερα, οπότε ούτε ένα μήνυμα που εμφανίστηκε στιγμιαία κατά μια ανακατεύθυνση ή αλλαγή οθόνης καταναλώνει το όριο.
Κάτω από αυτήν, μια ξεχωριστή κάρτα Κανόνες επαφής workspace (Touching Rules) προσφέρει διακόπτη Παράβλεψη Touching Rules. Η παράκαμψη των κανόνων επαφής του workspace είναι αποδεκτή για transactional ή κρίσιμα μηνύματα, αλλά δεν πρέπει ποτέ να είναι η προεπιλογή.
- Μην κατακλύζετε τους χρήστες με πολλαπλά μηνύματα in-app ανά συνεδρία
- Αραιώστε τις εμφανίσεις (διάστημα 24+ ωρών είναι μια καλή προεπιλογή)
- Κρατήστε την «Παράβλεψη Touching Rules» για πραγματικά κρίσιμα μηνύματα
Λειτουργία αξιολόγησης
Επιλογέας 3 καρτών - όχι αναπτυσσόμενο μενού, γιατί οι συμβιβασμοί είναι πολύ σημαντικοί για να κρύβονται:
| Λειτουργία | Καθυστέρηση | Τι κερδίζετε | Τι θυσιάζετε |
|---|---|---|---|
| Differential Sync (συνιστάται) | ~80ms | Απεριόριστες καμπάνιες. Πλήρης στόχευση με τμήματα / οντότητες / συμπεριφορά. Δεδομένα οντοτήτων στα πρότυπα. | Ένα ταξίδι στον διακομιστή όταν αλλάζουν τα παρακολουθούμενα γνωρίσματα. |
| Μόνο στην έναρξη συνεδρίας | <10ms | Αξιολογείται μία φορά στην έναρξη της συνεδρίας. | Οι αλλαγές δεν αντικατοπτρίζονται μέχρι ο χρήστης να ξεκινήσει νέα συνεδρία. |
Και οι δύο λειτουργίες κρατούν τις συγχρονισμένες καμπάνιες στη συσκευή και ενεργοποιούν τα triggers τοπικά, οπότε ένα μήνυμα εμφανίζεται χωρίς κλήση δικτύου τη στιγμή της προβολής.
Ένα πλαίσιο λεπτομερειών κάτω από τις κάρτες αναλύει την επιλεγμένη λειτουργία. Το Differential Sync είναι η σωστή επιλογή για τις περισσότερες περιπτώσεις παραγωγής.
Απόδοση στον διακομιστή
Στις λειτουργίες Differential Sync και Μόνο στην έναρξη συνεδρίας, το περιεχόμενο του μηνύματος αποδίδεται στον διακομιστή πριν φτάσει στη συσκευή: οι μεταβλητές εξατομίκευσης, τα μπλοκ περιεχομένου και τα δεδομένα καταλόγου επιλύονται όλα από την πλευρά του διακομιστή. Αυτό σημαίνει ότι τα μηνύματα in-app έχουν την ίδια εκφραστική δύναμη απόδοσης με το email - δεδομένα οντοτήτων, αποσπάσματα blocks.* και αναζητήσεις στον κατάλογο προϊόντων λειτουργούν όλα.
Χρησιμοποιήστε το κουμπί Δοκιμή απόδοσης διακομιστή στον δημιουργό καμπανιών in-app για να αποδώσετε το μήνυμά σας στον διακομιστή για έναν επιλεγμένο χρήστη και να δείτε ακριβώς τι θα λάβει το SDK - επαληθεύστε την εξατομίκευση, τα μπλοκ και το αποτέλεσμα του καταλόγου πριν η καμπάνια βγει ζωντανά.
Προηγμένες ρυθμίσεις
Ένα συνεπτυγμένο πλαίσιο κάτω από την κάρτα αξιολόγησης. Όταν ανοίξει:
Λειτουργία παρακολούθησης - ελέγχει πότε το SDK επαναξιολογεί την επιλεξιμότητα της καμπάνιας μετά από αλλαγές γνωρισμάτων:
- Αυτόματη (συνιστάται) - το SDK εντοπίζει αυτόματα από ποια γνωρίσματα εξαρτώνται η στόχευση και τα πρότυπα της καμπάνιας, και επαναξιολογεί όταν αυτά αλλάζουν.
- Πάντα - επαναξιολογεί σε κάθε αλλαγή γνωρίσματος.
- Ποτέ - μόνο στην έναρξη συνεδρίας.
Κριτήριο ισοπαλίας προτεραιότητας - χρησιμοποιείται όταν δύο επιλέξιμες καμπάνιες μοιράζονται την ίδια προτεραιότητα:
- Νεότερη (προεπιλογή) - εμφανίζεται πρώτη η πιο πρόσφατα δημιουργημένη καμπάνια.
- Παλαιότερη - εμφανίζεται πρώτη η παλαιότερη καμπάνια (FIFO).
- Τυχαία - τυχαία επιλογή από τις επιλέξιμες καμπάνιες.
Αποκλίσεις στο βήμα Κοινό
Το βήμα Κοινό λειτουργεί όπως σε κάθε άλλο κανάλι - ίδιος επιλογέας λειτουργίας, ίδιος δημιουργός φίλτρων v2 - με ένα στοιχείο κρυμμένο:
- Η κάρτα Επιλογές αποστολής είναι κρυφή. Τα μηνύματα in-app δεν έχουν έννοια εγγραφής· το SDK τα εμφανίζει ανεξάρτητα από την κατάσταση opt-in σε email/SMS/push.
Η πορτοκαλί προειδοποίηση του «Αποστολή σε όλους» χρησιμοποιεί επίσης διαφορετικό κείμενο: οι κίνδυνοι του in-app είναι η κόπωση από modal και η εξάντληση των ορίων συχνότητας, όχι η παραδοσιμότητα. Τα παραδείγματα φίλτρων αλλάζουν αντίστοιχα σε last_seen within 7 days και plan = free.
Εμφάνιση σε. Όταν το workspace έχει περισσότερες από μία εφαρμογές, το βήμα Κοινό ρωτά επίσης ποια εφαρμογή εμφανίζει το μήνυμα: Όλες οι εφαρμογές (η προεπιλογή) ή μία εφαρμογή - για παράδειγμα μόνο η web εφαρμογή του καταστήματος Magento ή μόνο η εφαρμογή iOS. Το SDK κάθε άλλης εφαρμογής δεν το λαμβάνει ποτέ. Το βήμα in-app μιας διαδρομής έχει την ίδια ρύθμιση Εμφάνιση σε.
Εξατομίκευση με Liquid
Τα πρότυπα in-app υποστηρίζουν πλήρη σύνταξη προτύπων Liquid.*`:
Hi {{ user.firstName | default: "there" }},
You've earned {{ user.points }} points!
{% if user.plan == 'free' %}
<p>Upgrade to unlock more rewards.</p>
{% else %}
<p>Thanks for being a {{ user.plan }} member!</p>
{% endif %}
Latest order: #{{ entities.order.id }} ({{ entities.order.total | currency }})
Τα διαθέσιμα φίλτρα περιλαμβάνουν τα date_format, pluralize, currency, truncate και default. Δείτε τα Πρότυπα Liquid για την πλήρη αναφορά.
Παρακολούθηση κλικ σε συνδέσμους
Τα κλικ σε συνδέσμους μέσα σε μηνύματα in-app παρακολουθούνται αυτόματα και αποδίδονται στην καμπάνια - χωρίς επιπλέον ρύθμιση ή τροποποίηση tags από την πλευρά σας. Τα πλήθη των κλικ εμφανίζονται στα αναλυτικά στοιχεία της καμπάνιας μαζί με τις εμφανίσεις, ώστε να μπορείτε να μετράτε το ποσοστό κλικ και να χρησιμοποιείτε τα κλικ ως σήματα μετατροπής σε δοκιμές A/B.
Κάθε κλικ φέρει και το όνομα που του έδωσε το μήνυμα: το data-action του στοιχείου, μια κλήση logClick από τη γέφυρα, ή το link_click / cta_click του ίδιου του SDK. Ανοίξτε μια παραλλαγή από τα αναλυτικά της καμπάνιας και επιλέξτε Χάρτης κλικ: κάθε κουμπί και σύνδεσμος στο μήνυμα φέρει τα άτομα που το πάτησαν και το μερίδιό τους σε όσους το είδαν, και η διπλανή λίστα κατατάσσει τα κλικ ανά κουμπί. Ένα native μήνυμα (χωρίς HTML) δείχνει μόνο τη λίστα. Τα ονόματα απαιτούν εκδόσεις SDK από 26-09-2026 και μετά - παλαιότερο SDK αναφέρει κάθε πάτημα ως ένα απλό κλικ.
Δοκιμές A/B
Το in-app υποστηρίζει τις ίδιες καρτέλες παραλλαγών A/B με κάθε άλλο κανάλι, συμπεριλαμβανομένων των ομάδων ελέγχου. Η ανάθεση παραλλαγών είναι ντετερμινιστική: την πρώτη φορά που αξιολογείται ένας χρήστης, το id του κατακερματίζεται σε ένα διάστημα βάρους και η ανάθεση αποθηκεύεται μόνιμα - έτσι ο ίδιος χρήστης βλέπει πάντα την ίδια παραλλαγή.
Οι ομάδες ελέγχου δεν βλέπουν κανένα μήνυμα - εξαιρούνται πλήρως, κάτι που σας επιτρέπει να μετρήσετε την επαυξητική βελτίωση της καμπάνιας σε σχέση με το να μην κάνετε τίποτα, συγκρίνοντας τα ποσοστά μετατροπών.
Variant A: 45% - Show campaign
Variant B: 45% - Show alternative
Control: 10% - Show nothing
Variant A conversion: 5%
Control conversion: 2%
Lift: +150%
Φόρμες μέσα σε μηνύματα
Ένα μήνυμα εντός εφαρμογής μπορεί να φέρει φόρμα: στον επεξεργαστή drag & drop, η κατηγορία μπλοκ Form έχει φόρμα εγγραφής, πεδία email, τηλεφώνου, κειμένου, αναπτυσσόμενης λίστας, επιλογής και συγκατάθεσης, και κουμπί υποβολής (τα ίδια μπλοκ με τις σελίδες προορισμού). Δώστε σε κάθε πεδίο ένα Field key (πεζά, κάτω παύλες). Η προβολή Φόρμα στη ράγα του επεξεργαστή δείχνει τι δηλώνει η σήμανση και σας αφήνει να πείτε πού πάει κάθε τιμή: το χαρακτηριστικό προφίλ που γράφει, τη λίστα στην οποία εγγράφει ένα κουτάκι συγκατάθεσης, και τι συμβαίνει μετά την υποβολή (μήνυμα επί τόπου, ή διεύθυνση).
Όταν κάποιος υποβάλλει, το SDK στέλνει τις τιμές με την ταυτότητα που κρατά: το προφίλ γνωστού χρήστη ενημερώνεται (email ή τηλέφωνο μόνο όταν το προφίλ δεν έχει - μια φόρμα δεν τα αντικαθιστά ποτέ), ένας ανώνυμος επισκέπτης γίνεται προφίλ μόλις η φόρμα τον κατονομάσει (email ή τηλέφωνο), οι επιλεγμένες λίστες εγγράφονται, και καταγράφεται το In-App Form Submitted με campaignId, campaignName, variantId, τα κλειδιά πεδίων, listsSubscribed, και τα email και phone της ίδιας της φόρμας με phoneUpdated (false όταν το προφίλ κράτησε ένα δικό του διαφορετικό τηλέφωνο), ώστε journeys, καμπάνιες με έναυσμα και τμήματα να ενεργούν. Η υποβολή εμφανίζεται και ως κλικ (form_submit) στο μήνυμα.
Τα πρότυπα κρατούν τη φόρμα τους με το πρότυπο· μια καμπάνια που χρησιμοποιεί το πρότυπο την κληρονομεί. Υποστηρίζεται στο Web SDK και, από τις εκδόσεις που συμπεριλαμβάνουν την πλήρη γέφυρα, στα SDK iOS και Android· μια εφαρμογή React Native που αποδίδει μόνη της το HTML καλεί το submitInAppForm· το Unity δείχνει μόνο εγγενή μηνύματα.
Ο ίδιος επεξεργαστής και η ίδια προβολή Φόρμα υπάρχουν και στο βήμα εντός εφαρμογής ενός journey: μια φόρμα σε μήνυμα που φέρει το ίδιο το βήμα, ή στο πρότυπο που χρησιμοποιεί, υποβάλλεται όπως μιας καμπάνιας, και το campaignId της υποβολής είναι του βήματος (journey:<id journey>:<id βήματος>). Αν αφαιρέσετε τη φόρμα από τη σχεδίαση, αφαιρούνται και οι ρυθμίσεις των πεδίων της· μια φόρμα που προστίθεται ξανά ξεκινά από τις προεπιλογές.
Βέλτιστες πρακτικές
Ξεκινήστε με Differential Sync
Οι περισσότερες καμπάνιες θα πρέπει να τρέχουν σε λειτουργία Differential Sync - προσφέρει την καλύτερη ισορροπία δυνατοτήτων και απόδοσης.### Χρησιμοποιήστε την Αυτόματη λειτουργία παρακολούθησης
Αφήστε το SDK να εντοπίζει τις εξαρτήσεις γνωρισμάτων. Αλλάξτε σε Πάντα μόνο αν χρειάζεται να παρακολουθείτε γνωρίσματα που δεν χρησιμοποιούνται άμεσα στη στόχευση· αλλάξτε σε Ποτέ μόνο για στατικά μηνύματα καλωσορίσματος.
Εφαρμόστε όρια συχνότητας
Από προεπιλογή, κάθε χρήστης βλέπει μια καμπάνια μία φορά. Η επανάληψη είναι κάτι που ενεργοποιείτε: επιλέξτε Allow this campaign to show more than once per user στο Frequency Capping. Αν το αφήσετε ανενεργό, το μήνυμα εμφανίζεται μία φορά ανά άτομο, για πάντα - χωρίς χρονικό παράθυρο και χωρίς λήξη.
Με ενεργοποιημένη την επιλογή, αφήστε το όριο κενό για απεριόριστες εμφανίσεις ή ορίστε αριθμό και παράθυρο (λεπτά, ώρες, ημέρες, εβδομάδες ή μήνες). Το παράθυρο αφορά μόνο την καταμέτρηση· το Min Delay από κάτω είναι ξεχωριστή αναμονή ανάμεσα σε δύο εμφανίσεις.
Αποτρέψτε την κόπωση από μηνύματα:
- Υψηλή αλληλεπίδραση - 3 εμφανίσεις ανά 7 ημέρες
- Μέτρια - 2 εμφανίσεις ανά 14 ημέρες
- Χαμηλή συχνότητα - 1 εμφάνιση ανά 30 ημέρες
Δοκιμάστε με παραλλαγές A/B
Συμπεριλαμβάνετε πάντα ομάδες ελέγχου όταν μετράτε την επίδραση στις μετατροπές. Προτεινόμενη κατανομή: 45% / 45% / 10% έλεγχος.
Αντιμετώπιση προβλημάτων
Η καμπάνια δεν εμφανίζεται
Ελέγξτε, με τη σειρά:
- Η κατάσταση της καμπάνιας είναι
active(όχιdraft) - Το πρόγραμμα περιλαμβάνει την τρέχουσα στιγμή (μεταξύ
startsAtκαιexpiresAt) - Ο χρήστης ταιριάζει με τα φίλτρα στόχευσης
- Το όριο συχνότητας δεν έχει εξαντληθεί για αυτόν τον χρήστη
- Καμία καμπάνια υψηλότερης προτεραιότητας δεν την μπλοκάρει
- Ο χρήστης δεν ανήκει σε ομάδα ελέγχου
Σφάλματα προτύπων Liquid
- Ελλιπή γνωρίσματα - τυλίξτε με
| default: "fallback" - Λανθασμένη σύνταξη - ελέγξτε για αντίστοιχα
{% endif %},{% endfor %}
Προβλήματα απόδοσης
- Απλοποιήστε τη λογική στόχευσης
- Βελτιστοποιήστε τα πρότυπα Liquid (αποφύγετε βαριούς βρόχους)
- Χρησιμοποιήστε τη λειτουργία «Μόνο στην έναρξη συνεδρίας» για στατικά μηνύματα
In-app έναντι push
| Χαρακτηριστικό | In-app | Push |
|---|---|---|
| Άδεια | Δεν απαιτείται | Απαιτείται |
| Πότε εμφανίζεται | Όσο η εφαρμογή είναι ανοιχτή | Οποτεδήποτε |
| Πλούσιο περιεχόμενο | Ναι | Περιορισμένο |
| Διαδραστικότητα | Υψηλή | Περιορισμένη |
| Εμβέλεια | Μόνο ενεργοί χρήστες | Όλοι οι χρήστες με εγκατεστημένο το SDK |
| Κατάλληλο για | Αλληλεπίδραση εντός πλαισίου | Επανενεργοποίηση |
Χρησιμοποιήστε τα μαζί: push για να οδηγήσετε ανοίγματα της εφαρμογής, in-app για να αλληλεπιδράσετε με τους ενεργούς χρήστες.
Επόμενα βήματα
- Δημιουργία καμπανιών - αναφορά κοινού οδηγού
- Ειδοποιήσεις push
- Δοκιμές A/B
- Πρότυπα Liquid