Πίσω στο blog
Για operators 15 Σεπτεμβρίου 2026 9 λεπτά ανάγνωσης

Postbacks, pixels και image tags: μόνο ένα από αυτά μπορεί να πληρωθεί

Τρεις μηχανισμοί για να δηλωθεί μια μετατροπή, περιγραμμένοι ώστε να τους κρατά και ένας μη μηχανικός, μαζί με τους έξι τρόπους που σπάνε στην πράξη οι ενσωματώσεις. Γραμμένο για operators και τεχνικούς affiliate managers που το έχουν κάνει debug στις έντεκα το βράδυ.

Από AFFILIFY Τελευταίος έλεγχος: 15 Σεπτεμβρίου 2026
Μια μετατροπή μπορεί να δηλωθεί με τρεις τρόπους: με image tag, με pixel JavaScript ή με postback από server σε server. Μόνο το postback αντέχει αρκετά ώστε να πληρωθεί προμήθεια πάνω του, επειδή δεν χρειάζεται τη συνεργασία του browser του παίκτη. Οι περισσότερες ενσωματώσεις που «δεν κάνουν tracking» δεν είναι καθόλου χαλασμένα postbacks, είναι αναγνωριστικά κλικ που λείπουν από την εγγραφή του παίκτη.

Η κλήση έρχεται πάντα σε κακή ώρα. Ένας affiliate manager έχει έναν συνεργάτη που απειλεί να τραβήξει την κίνηση, ο operator ορκίζεται ότι η ενσωμάτωση είναι ζωντανή, και το dashboard δείχνει μηδέν. Κάποιος στέλνει screenshot ενός tag στο υποσέλιδο της σελίδας επιτυχούς κατάθεσης και ρωτά γιατί δεν δουλεύει.

Δεν δουλεύει επειδή είναι ένα tag στο υποσέλιδο μιας σελίδας.

Η δήλωση μιας μετατροπής είναι μικρό πρόβλημα με πολλούς τρόπους να πάει στραβά, και οι τρόποι δεν έχουν αλλάξει ιδιαίτερα εδώ και δέκα χρόνια. Αυτό που άλλαξε είναι ότι δύο από τους τρεις μηχανισμούς έπαψαν αθόρυβα να είναι αξιόπιστοι ενώ όλοι συνέχιζαν να τους στέλνουν στην παραγωγή. Αυτό το κείμενο είναι αυτό που δίνετε στον μηχανικό σας πριν από την ενσωμάτωση, όχι μετά.

Τρεις τρόποι να πεις ότι ένας παίκτης κατέθεσε

Το image tag. Ο παλαιότερος. Η σελίδα σας περιλαμβάνει μια εικόνα ενός pixel της οποίας η πηγή είναι ένα URL της πλατφόρμας παρακολούθησης. Ο browser προσπαθεί να φορτώσει την εικόνα, το αίτημα φτάνει στην πλατφόρμα, και το ίδιο το αίτημα είναι το μήνυμα. Καμία εικόνα δεν χρειάζεται πραγματικά, το ζητούμενο είναι η κλήση. Δεν απαιτεί τίποτα πέρα από HTML, γι' αυτό και επιβίωσε τόσο πολύ σε συστήματα προτύπων όπου κανείς δεν ήθελε να αγγίξει JavaScript.

Το pixel JavaScript. Η ίδια ιδέα με script αντί για εικόνα. Ένα snippet τρέχει μέσα στη σελίδα, μαζεύει λίγο context και στέλνει την κλήση. Είναι πιο ευέλικτο: μπορεί να διαβάσει μια τιμή που έβαλε η σελίδα σε μεταβλητή, μπορεί να περιμένει να εμφανιστεί μια επιβεβαίωση, μπορεί να περάσει ένα ποσό κατάθεσης που έγινε γνωστό μόνο κατά την εκτέλεση. Είναι επίσης πιο εύθραυστο, γιατί εξαρτάται από το να φορτώσει το script, να υπάρχει η μεταβλητή και να μην έχει πετάξει σφάλμα η σελίδα πιο πάνω.

Το postback από server σε server. Κανένας browser. Όταν το backend σας καταγράφει το γεγονός που έχει σημασία, κάνει ένα αίτημα HTTP σε ένα URL, κουβαλώντας το αναγνωριστικό που του δόθηκε όταν ο παίκτης πρωτοέφτασε. Η υπηρεσία πληρωμών σας επιβεβαιώνει μια κατάθεση, το σύστημά σας γράφει τη συναλλαγή, και κάπου μέσα στην ίδια διαδρομή βγαίνει ένα αίτημα που λέει: αυτός ο παίκτης, αυτό το γεγονός, αυτό το ποσό, αυτό το νόμισμα.

Αυτή είναι όλη η ιδέα. Ακούγεται λιγότερο έξυπνη από τις άλλες δύο, και ακριβώς γι' αυτό αντέχει.

Γιατί τα δύο από τα τρία έπαψαν να είναι αξιόπιστα

Δεν υπάρχει ένας αίτιος. Υπάρχει μια στοίβα από αυτούς, και ο καθένας μόνος του θα ήταν διαχειρίσιμος.

Ο Safari και ο Firefox μπλοκάρουν τα cookies τρίτων εξ ορισμού, και ο Firefox μπλοκάρει επιπλέον αιτήματα προς domain που βρίσκονται στη λίστα ιχνηλατών του. Ο Chrome εξακολουθεί να επιτρέπει cookies τρίτων, οπότε στον Chrome το μπλοκάρισμα έρχεται από τον ad blocker και όχι από τον browser. Ο Safari περιορίζει επιπλέον το πόσο επιβιώνει η αποθήκευση που γράφεται από script, σε κάποιες περιπτώσεις σε ημέρες, πράγμα που σημαίνει ότι οτιδήποτε στηρίζεται σε κατάσταση γραμμένη τη στιγμή του κλικ και διαβασμένη τη στιγμή της κατάθεσης έχει λήξη μετρημένη σε κλάσμα ενός κανονικού παραθύρου σκέψης. Οι ad blockers κάθονται πάνω από όλα αυτά και είναι συνηθισμένοι ακριβώς στα κοινά που διαβάζουν περιεχόμενο σύγκρισης πριν εγγραφούν. Τίποτα από αυτά δεν αναγγέλλεται. Ο operator σας βλέπει τη σελίδα να εμφανίζεται κανονικά και συμπεραίνει ότι η ενσωμάτωση δουλεύει.

Και μετά υπάρχει το κομμάτι που καμία ρύθμιση browser δεν διορθώνει. Ένας παίκτης κάνει κλικ σε desktop στη δουλειά, το σκέφτεται, και καταθέτει το βράδυ από το κινητό. Ή εγγράφεται στο web και καταθέτει μέσα στη native εφαρμογή, όπου δεν υπάρχει browser, δεν υπάρχει σελίδα και δεν υπάρχει tag για να πυροδοτηθεί. Ειδικά στο sportsbook, η κατάθεση ακολουθεί το πρόγραμμα των αγώνων και όχι το κλικ, και το ακολουθεί μέσα στην εφαρμογή. Αν θέλετε να δείτε πόσο διαφορετικά συμπεριφέρονται αυτές οι δύο διαδρομές, η κίνηση καζίνο και sportsbook αποκλίνει ακριβώς σε αυτό το σημείο.

Ένα pixel δεν μπορεί να πυροδοτηθεί από ένα μέρος που ο browser δεν επισκέφτηκε ποτέ. Τίποτα σε αυτό δεν διορθώνεται με καλύτερη τοποθέτηση tag.

Τι σας ενδιαφέρειImage tagPixel JavaScriptPostback από server σε server
Πυροδοτείται απόΤον browser του παίκτηΤον browser του παίκτηΤο δικό σας backend
Επιβιώνει από ad blockersΣπάνιαΣπάνιαΝαι, δεν εμπλέκεται
Επιβιώνει σε αλλαγή συσκευήςΌχιΌχιΝαι
Επιβιώνει σε κατάθεση μέσα στην εφαρμογήΌχιΌχιΝαι
Διαβάζει κατάσταση σελίδας κατά την εκτέλεσηΌχιΝαιΔεν ισχύει
Δηλώνει εκκαθαρισμένο ποσόΜόνο ό,τι ξέρει η σελίδαΜόνο ό,τι ξέρει η σελίδαΝαι, από το σύστημα καταγραφής
Πότε να το χρησιμοποιήσετεΣε παλιά συστήματα που δεν μπορείτε να αλλάξετεΩς δευτερεύον σήμα μέσα στην ίδια συνεδρίαΣε οτιδήποτε κρίνει χρήματα
Από server σε server έναντι browser: πού σπάει ο κάθε τρόπος δήλωσης μιας μετατροπής

Οι τρόποι αποτυχίας που αξίζει να ξέρετε

Κανείς δεν σπάει μια ενσωμάτωση με ενδιαφέροντα τρόπο. Τα ίδια έξι λάθη εξηγούν σχεδόν τα πάντα.

Πυροδότηση στη φόρτωση της σελίδας αντί στο γεγονός. Το tag ζει στη σελίδα επιβεβαίωσης κατάθεσης, οπότε πυροδοτείται κάθε φορά που ανοίγει αυτή η σελίδα. Ένας παίκτης κάνει ανανέωση, επιστρέφει από το ιστορικό, ή προσγειώνεται εκεί μετά από αποτυχημένη προσπάθεια, και το καθένα είναι μια μετατροπή στην αναφορά σας. Αυτό φουσκώνει τα νούμερα προς την κατεύθυνση που φαίνεται καλή, γι' αυτό και επιβιώνει τόσο καιρό πριν το αμφισβητήσει κάποιος.

Είναι όντως server-side; Ένα backend framework που αποδίδει ένα template εξακολουθεί να εκπέμπει ένα tag που πρέπει να εκτελέσει ο browser. Αν το αίτημα ξεκινά από τη συσκευή του παίκτη, είναι browser-side, ανεξάρτητα από το αρχείο μέσα στο οποίο γράφτηκε. Το τεστ παίρνει ένα λεπτό: μπλοκάρετε τα scripts στον δικό σας browser και δείτε αν το γεγονός εξακολουθεί να φτάνει.

Και μετά υπάρχει το αναγνωριστικό κλικ, που λείπει από την εγγραφή του παίκτη. Αυτή είναι με μεγάλη διαφορά η πιο συχνή αποτυχία και παίρνει τη δική της ενότητα παρακάτω.

Η κατάθεση δηλώνεται πριν εκκαθαριστεί. Η πληρωμή εγκρίνεται, το postback φεύγει, και μετά η πληρωμή αποτυγχάνει ή αντιστρέφεται. Τώρα υπάρχει προμήθεια κολλημένη σε χρήματα που δεν έφτασαν ποτέ. Πυροδοτήστε στην κατάσταση που θα αναγνώριζε το λογιστήριό σας, όχι σε αυτήν που δείχνει η σελίδα του ταμείου.

Idempotency, ή η απουσία της. Τα δίκτυα κάνουν timeout. Ένας καλοφτιαγμένος αποστολέας ξαναπροσπαθεί, και σωστά κάνει. Αν η πλευρά που λαμβάνει δεν μπορεί να καταλάβει ότι η δεύτερη προσπάθεια είναι το ίδιο γεγονός με την πρώτη, η επανάληψη γίνεται δεύτερη μετατροπή. Κάθε γεγονός χρειάζεται μια σταθερή μοναδική αναφορά από τη δική σας πλευρά, την ίδια τιμή σε κάθε επανάληψη, ώστε ένα διπλό να αναγνωρίζεται και να απορρίπτεται αντί να πληρώνεται δύο φορές.

Τα γεγονότα φτάνουν επίσης εκτός σειράς. Μια κατάθεση προσγειώνεται πριν από την εγγραφή στην οποία ανήκει, επειδή δύο υπηρεσίες πυροδότησαν ανεξάρτητα και η μία ήταν γρηγορότερη. Βάλτε σε σειρά τα γεγονότα που εξαρτώνται μεταξύ τους, ή κάντε το καθένα να κουβαλά αρκετό context ώστε να στέκεται μόνο του.

Το ένα πράγμα που τα κρίνει όλα

Κάθε αποτυχία παραπάνω διορθώνεται μέσα σε ένα απόγευμα. Αυτή όχι.

Όταν ένας παίκτης φτάνει μέσω ενός tracking link, το αναγνωριστικό εκείνου του link πρέπει να αποθηκευτεί στην εγγραφή του παίκτη κατά την εγγραφή. Όχι σε session. Όχι σε cookie. Στη γραμμή της βάσης δεδομένων σας που αντιπροσωπεύει τον λογαριασμό, δίπλα στη διεύθυνση email, μέσα στην ίδια συναλλαγή που τη δημιουργεί.

Αν αυτό δεν γίνει, τίποτα παρακάτω δεν μπορεί να αποδοθεί. Ο παίκτης καταθέτει τρεις εβδομάδες μετά, το backend σας πυροδοτεί ένα τεχνικά άψογο postback, και δεν κουβαλά κανένα αναγνωριστικό, γιατί δεν υπάρχει τίποτα να κουβαλήσει. Καμία ρύθμιση του postback δεν το διορθώνει. Δεν κάνετε debug σε πρόβλημα αναφορών, κάνετε debug σε πρόβλημα εγγραφής, και η διόρθωση βρίσκεται στη ροή εγγραφής.

Δύο σχετικές συνήθειες γλιτώνουν πολλές κόντρες. Κρατήστε το αναγνωριστικό ακόμη κι όταν η τιμή φαίνεται παράξενη, γιατί αποθηκεύετε ένα token, δεν το επικυρώνετε. Και κρατήστε το για όλη τη ζωή του λογαριασμού αντί για τριάντα ημέρες, γιατί ένα CPA που πληρώνει σε προκριματική κατάθεση χρειάζεται ο σύνδεσμος να υπάρχει ακόμη τη στιγμή που η κατάθεση κατοχυρώνει, κάτι που μπορεί να είναι μήνες μετά το κλικ. Αν το λεξιλόγιο γύρω από τις προκριματικές και τις πρώτες καταθέσεις είναι θολό στη δική σας πλευρά, το γλωσσάρι FTD, NGR, CPA, CPL και CPR αξίζει δέκα λεπτά πριν γράψετε το σχήμα.

Δοκιμή πριν τρέξει η κίνηση

Μια σωστή δοκιμή ενσωμάτωσης είναι βαρετή και παίρνει περίπου μία ώρα.

  1. Κάντε κλικ σε ένα πραγματικό tracking link και ολοκληρώστε την εγγραφή όπως θα την έκανε ένας κανονικός παίκτης. Μετά κοιτάξτε την εγγραφή του παίκτη στη δική σας βάση δεδομένων και επιβεβαιώστε ότι το αναγνωριστικό είναι εκεί. Αν δεν είναι, σταματήστε, γιατί όλα τα υπόλοιπα είναι θέατρο.
  2. Καταθέστε πραγματικά χρήματα. Ένα μικρό ποσό αρκεί, 20 EUR κάνουν δουλειά. Οι πληρωμές σε test mode συχνά παρακάμπτουν ακριβώς τη διαδρομή κώδικα που πυροδοτεί το γεγονός, και έτσι ενσωματώσεις περνούν στο staging και σκάνε την πρώτη μέρα.
  3. Ελέγξτε ότι το γεγονός της κατάθεσης έφτασε μία φορά, με το σωστό ποσό και το σωστό νόμισμα, αφού εκκαθαρίστηκε η πληρωμή και όχι όταν υποβλήθηκε.
  4. Στείλτε το ίδιο γεγονός ξανά επίτηδες. Πρέπει να αναγνωριστεί ως διπλό και να μην μετρηθεί δύο φορές.
  5. Επαναλάβετε όλο αυτό σε κινητό, και άλλη μία φορά με την κατάθεση να γίνεται μέσα στην εφαρμογή αντί για τον browser, αν έχετε εφαρμογή.

Μία ώρα χρόνου ενός μηχανικού και μία κατάθεση, απέναντι σε έναν μήνα συμφωνιών με έναν affiliate που είναι ήδη πεπεισμένος ότι του κόβετε κίνηση. Ο οδηγός QA για ένα tracking link καλύπτει την πλευρά του affiliate στην ίδια δοκιμή, και το να τρέξετε και τα δύο άκρα μαζί είναι ο τρόπος να βρείτε την αναντιστοιχία μέσα σε ένα απόγευμα αντί σε ένα τρίμηνο.

Τι περιμένει το AFFILIFY από έναν operator

Η τεκμηρίωση της ενσωμάτωσης βρίσκεται στο affilify.partners/docs, με το endpoint, τα ονόματα των παραμέτρων και τους αποδεκτούς τύπους γεγονότων. Διαβάστε την εκεί και όχι από ένα άρθρο blog, γιατί εκείνη η σελίδα είναι αυτή που κρατάμε ενημερωμένη.

Το σχήμα είναι μικρό. Ένα όνομα γεγονότος, το αναγνωριστικό που σας δόθηκε τη στιγμή του κλικ, ένα ποσό και ένα νόμισμα, συν το κλειδί σας. Η εγγραφή, η πρώτη κατάθεση, οι επόμενες καταθέσεις και τα γεγονότα εσόδων είναι ξεχωριστά μηνύματα, γιατί το μοντέλο προμήθειας που είναι δεμένο σε μια συμφωνία ορίζει ποια από αυτά μετράνε, και ένα πρόγραμμα δεν μπορεί να πληρώσει RevShare πάνω σε δεδομένα που δεν έλαβε ποτέ. Αν ακόμη επιλέγετε ανάμεσα σε μοντέλα, το CPA, RevShare και υβριδικό εξηγεί τι χρειάζεται το καθένα από τη δική σας πλευρά.

Δύο πράγματα αξίζει να ειπωθούν καθαρά. Η απόδοση στη δική μας πλευρά έχει διαδοχικά δίχτυα ασφαλείας. Είναι ασφάλιση, όχι σχέδιο. Το αναγνωριστικό που αποθηκεύεται κατά την εγγραφή είναι το κομμάτι που ελέγχετε εσείς, οπότε στείλτε το. Και η ποιότητα της κίνησης αξιολογείται συνεχώς, πράγμα που σημαίνει ότι κάποιες μετατροπές κρατιούνται όσο ελέγχονται αντί να πιστώνονται με την άφιξη. Αυτό δεν είναι απόρριψη, και ο affiliate βλέπει την κατάσταση αντί για ένα σιωπηλό κενό.

Ένας operator που επιστρέφει το αναγνωριστικό, δηλώνει εκκαθαρισμένα γεγονότα μία φορά, και μπορεί να δοκιμαστεί με μια πραγματική κατάθεση μέσα σε μία ώρα, δεν θα κάνει ποτέ τη συζήτηση των έντεκα το βράδυ. Αυτή είναι όλη η φιλοδοξία εδώ.

Συχνές ερωτήσεις

Ποια είναι η διαφορά ανάμεσα σε postback και pixel;

Ένα pixel πυροδοτείται από τον browser του παίκτη όσο μια σελίδα είναι ανοιχτή. Ένα postback πυροδοτείται από το δικό σας backend όταν καταγράφεται το γεγονός, χωρίς να εμπλέκεται browser. Αυτή η μία διαφορά κρίνει όλα τα υπόλοιπα: το postback δεν επηρεάζεται από ad blockers ούτε από την πολιτική cookies του browser, δουλεύει ακόμη κι όταν ο παίκτης εγγράφεται σε laptop και καταθέτει από κινητό, και δουλεύει όταν η κατάθεση γίνεται μέσα σε native εφαρμογή όπου δεν φορτώνει ποτέ σελίδα. Δηλώνει επίσης το ποσό που κρατά το σύστημα καταγραφής σας, όχι το ποσό που έτυχε να ξέρει μια σελίδα.

Μπορούμε να κρατήσουμε ένα pixel ως εφεδρεία δίπλα στο postback;

Μπορείτε, αλλά να είστε καθαροί για το τι αξίζει. Ένα pixel θα επιβεβαιώνει πάντα μόνο τα γεγονότα που μπορεί να δει, δηλαδή ένα υποσύνολο όσων πραγματικά συνέβησαν, και το μέγεθος αυτού του υποσυνόλου σας είναι αόρατο. Αντιμετωπίστε το ως έλεγχο λογικής μέσα στην ίδια συνεδρία κατά την ανάπτυξη και όχι ως δεύτερη πηγή αλήθειας, και ποτέ μη συμφωνείτε πληρωμές πάνω του. Αν πυροδοτηθούν και τα δύο για το ίδιο γεγονός, η πλατφόρμα σας χρειάζεται μια σταθερή μοναδική αναφορά από τη δική σας πλευρά ώστε το ζευγάρι να αναγνωριστεί ως μία μετατροπή και όχι ως δύο.

Τα postbacks μας πυροδοτούνται αλλά τίποτα δεν αποδίδεται. Γιατί;

Σχεδόν πάντα επειδή το αναγνωριστικό κλικ δεν αποθηκεύτηκε ποτέ στην εγγραφή του παίκτη κατά την εγγραφή. Το postback φεύγει σωστά, στην ώρα του, με έγκυρο κλειδί, και δεν κουβαλά τίποτα για να ταιριάξει. Ελέγξτε πρώτα μία πραγματική γραμμή παίκτη στη βάση δεδομένων σας. Αν το αναγνωριστικό λείπει εκεί, το bug είναι στη ροή εγγραφής σας και όχι στον κώδικα του postback, και καμία λογική επαναλήψεων ή ρύθμιση endpoint δεν θα αλλάξει το αποτέλεσμα.

Πώς να δοκιμάσουμε μια ενσωμάτωση postback πριν τρέξουμε κίνηση;

Κάντε κλικ σε πραγματικό tracking link, εγγραφείτε ως παίκτης, και επιβεβαιώστε ότι το αναγνωριστικό προσγειώθηκε στη γραμμή του λογαριασμού. Μετά καταθέστε πραγματικά χρήματα, γιατί οι πληρωμές σε test mode συχνά παρακάμπτουν ακριβώς τη διαδρομή κώδικα που πυροδοτεί το γεγονός. Επιβεβαιώστε ότι η κατάθεση έφτασε μία φορά, με το σωστό ποσό και νόμισμα, αφού εκκαθαρίστηκε η πληρωμή. Στείλτε το ίδιο γεγονός ξανά επίτηδες και επιβεβαιώστε ότι απορρίπτεται ως διπλό. Μετά επαναλάβετε σε κινητό, και μέσα στην εφαρμογή αν έχετε. Μία ώρα, και μία μικρή κατάθεση.

Περισσότερα από αυτό το cluster