Πώς να αποτρέψετε τον αποκλεισμό των δεδομένων σας από τα προγράμματα αποκλεισμού διαφημίσεων

TL; DR Υπάρχει σύντομα διαθέσιμη υπηρεσία dataunlocker.com (εγγραφείτε!), Μαζί με το πρωτότυπο ανοιχτού κώδικα που μπορείτε να χρησιμοποιήσετε για το Google Analytics ή το Google Tag Manager (ενημέρωση 2020).

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

Όταν το προϊόν σας μόλις ξεκινά, κάθε χρήστης έχει σημασία. Το ίδιο ισχύει και για τα δεδομένα σχετικά με το πώς αλληλεπιδρούν με το προϊόν σας.

Εάν έχετε δοκιμάσει να χρησιμοποιήσετε λύσεις αναλυτικών στοιχείων, όπως το Google Analytics, ενδέχεται να αντιμετωπίσατε ένα πρόβλημα όπου η συλλογή αναλυτικών στοιχείων σας αποκλείστηκε από προγράμματα αποκλεισμού διαφημίσεων.

Σύμφωνα με το PageFair, έως και το 30% των χρηστών του Διαδικτύου χρησιμοποιούν αποκλειστές διαφημίσεων το 2017 και αυτός ο αριθμός αυξάνεται συνεχώς.

Αυτό το άρθρο θα εξηγήσει ορισμένες τεχνικές προσεγγίσεις που μπορείτε να ακολουθήσετε για να αποτρέψετε τον αποκλεισμό διαφημίσεων από τους αποκλειστές διαφημίσεων. Θα χρησιμοποιήσουμε το Google Analytics σε αυτό το άρθρο, αν και μεγάλο μέρος αυτού θα μπορούσε να εφαρμοστεί σε άλλα εργαλεία ανάλυσης.

Μερικοί τρόποι με τους οποίους μπορείτε να παρακάμψετε τους αποκλειστές διαφημίσεων

Σχεδόν όλοι οι αποκλειστές διαφημίσεων λειτουργούν με τις ίδιες μεθόδους: δεν επιτρέπουν ορισμένα αιτήματα προγράμματος περιήγησης http (s) για περιεχόμενο σε διευθύνσεις URL που αντιστοιχούν σε μια συγκεκριμένη μάσκα από τη βάση φιλτραρίσματος.

Οι περισσότεροι αποκλειστές διαφημίσεων μαύρη λίστα www.google-analytics.com από προεπιλογή και αποκλείουν τυχόν προσπάθειες της βιβλιοθήκης JavaScript του Google Analytics για αποστολή ή ανάκτηση των δεδομένων από τους διακομιστές αναλυτικών στοιχείων.

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

Στην πραγματικότητα, ακόμη και μετά την εμφάνιση ορισμένων διευθύνσεων URL στη βάση φιλτραρίσματος περιεχομένου, μπορείτε να αρχίσετε να παίζετε με προγράμματα αποκλεισμού διαφημίσεων, εφευρίσκοντας τρομερά πράγματα, όπως η ωριαία αλλαγή των διευθύνσεων URL αναλυτικών στοιχείων (αν και αυτό είναι πέρα ​​από το πεδίο εφαρμογής αυτού του άρθρου). Ορισμένες από αυτές τις προσεγγίσεις εφαρμόζονται από υπηρεσίες όπως το DataUnlocker.com και το Adtoniq, οι οποίες προσφέρουν στους χρήστες εμπειρία χωρίς αποκλεισμούς διαφημίσεων ακόμα και όταν είναι ενεργοποιημένοι οι αποκλειστές διαφημίσεων.

Μια εξήγηση υψηλού επιπέδου για το τι θα κάνουμε

Σε αυτό το άρθρο, θα υποθέσουμε ότι δεν έχουμε περιορισμούς άδειας από την πλευρά του διακομιστή. Θα γράψουμε τη λύση επίδειξης (μερικές γραμμές κώδικα) για την πλατφόρμα Node.js. Μόλις καταλάβετε πώς λειτουργεί αυτό, θα πρέπει να μπορείτε να μεταφέρετε αυτήν τη λύση σε οποιαδήποτε γλώσσα προγραμματισμού ή πλατφόρμα.

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

Θα χρησιμοποιήσουμε μια απλή προσέγγιση διακομιστή μεσολάβησης χωρίς να χρειάζεται να εμβαθύνουμε στο πρωτόκολλο μέτρησης του Google Analytics. Εν ολίγοις, η λύση φαίνεται ως εξής:

  1. Πρώτα, κατεβάστε την ίδια τη βιβλιοθήκη JavaScript του Google Analytics και φιλοξενήστε την στον διακομιστή σας.
  2. Στη συνέχεια, αλλάξτε τον κώδικα στη βιβλιοθήκη που έχετε κατεβάσει για να αλλάξετε τον κεντρικό υπολογιστή προορισμού από το www.google-analytics.com στο δικό σας όνομα τομέα χρησιμοποιώντας το εύρημα-αντικατάσταση.
  3. Αντικαταστήστε το σύνδεσμο από το προεπιλεγμένο σενάριο του Google Analytics στη βάση κωδικών σας σε ένα τροποποιημένο.
  4. Δημιουργήστε ένα τελικό σημείο διακομιστή μεσολάβησης στους διακομιστές του Google Analytics στο πίσω μέρος σας. Ένα σημαντικό βήμα εδώ είναι να εντοπίσετε επιπλέον τη διεύθυνση IP του πελάτη και να την γράψετε ρητά σε αιτήματα στους διακομιστές του Google Analytics για διατήρηση της σωστής ανίχνευσης τοποθεσίας.
  5. Δοκιμάστε τα αποτελέσματα. Τελείωσες!

Η πλήρης τεχνική εφαρμογή

Όλος ο κώδικας και τα βήματα που περιγράφονται παρακάτω είναι διαθέσιμα στο GitHub. Η παρακάτω περιγραφή εξηγεί τα βασικά της μεθόδου, και φυσικά η προτεινόμενη προσέγγιση μπορεί να βελτιωθεί ώστε να είναι ακόμη πιο «αντι-μπλοκαρίσματος».

Στο Google Analytics, ξεκινάτε αποκτώντας ένα μοναδικό αναγνωριστικό παρακολούθησης για την ιδιοκτησία σας (υπηρεσία ιστού). Θα χρησιμοποιήσουμε το αναγνωριστικό παρακολούθησης UA-98253329–1 σε αυτό το άρθρο για την επίδειξη. Μην ξεχάσετε να αντικαταστήσετε τον κώδικα παρακολούθησης με αυτόν.

Η Google προτείνει την προσθήκη αυτού του ελαχιστοποιημένου κώδικα στις υπηρεσίες ιστού σας για την ενεργοποίηση των αναλυτικών στοιχείων:

 (function(i,s,o,g,r,a,m)function() (i[r].q=i[r].q,i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) )(window,document,'script', '//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-98253329-1', 'auto'); ga('send', 'pageview'); 

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

Βήμα 1: Λήψη και επιδιόρθωση της βιβλιοθήκης αναλυτικών στοιχείων της Google

Πραγματοποιήστε λήψη του σεναρίου απευθείας από το //www.google-analytics.com/analytics.js , ανοίξτε το με οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου και αντικαταστήστε όλες τις εμφανίσεις:

www.google-analytics.com

με αυτήν την ακριβή συμβολοσειρά:

"+location.host+"/analytics

Με την επιδιόρθωση της βιβλιοθήκης αναλυτικών στοιχείων με αυτόν τον τρόπο, θα αρχίσει να υποβάλλει αιτήματα στα τελικά σημεία του τοπικού κεντρικού υπολογιστή ( my.domain.com/analytics) αντί για www.google-analytics.com . Τοποθετήστε αυτό το ενημερωμένο αρχείο analytics.js στον διακομιστή σας μετά την αντικατάσταση.

Βήμα 2: Αντικαταστήστε το σενάριο αναλυτικών στοιχείων με το διορθωμένο

Ας τροποποιήσουμε τον κώδικα ενσωμάτωσης του Google Analytics με αυτόν τον τρόπο, ώστε να χρησιμοποιεί τη διορθωμένη βιβλιοθήκη μας αντί για την προεπιλεγμένη:

 (function(i,s,o,r)function()[]).push(arguments),i[r].l=1*new Date())(window,document,'script','ga'); ga('create', 'UA-98253329-1', 'auto'); ga('send', 'pageview');  

Σημειώστε ότι εδώ το πρόγραμμα περιήγησης θα αναζητήσει το ενημερωμένο σενάριο αναλυτικών στοιχείων στη ρίζα εγγράφων του διακομιστή σας, σε αυτήν την περίπτωση, my.domain.com/analytics.js. Ελέγξτε εάν έχετε τοποθετήσει το σενάριο στη ρίζα του εγγράφου ή έχετε αλλάξει τη διαδρομή στην ετικέτα σεναρίου παραπάνω. Μπορείτε επίσης να ελέγξετε τα αποτελέσματα εκτελώντας μια δοκιμή στον τοπικό διακομιστή σας (δείτε το readme για τον τρόπο εκτέλεσης του παραδείγματος GitHub).

Θα πρέπει να δείτε κάτι τέτοιο στα εργαλεία προγραμματιστή του προγράμματος περιήγησης:

Τελικά θέλουμε η πράξη λήψης του διορθωμένου analytics.js σας να επιστρέψει μια επιτυχημένη απόκριση - κατάσταση 200 (OK) ή 304 (δεν τροποποιήθηκε). Αλλά σε αυτό το σημείο, το αίτημα στη διεύθυνση my.domain.com/analytics/collect θα πρέπει να απαντήσει με κατάσταση 404, καθώς δεν έχουμε ακόμη εφαρμόσει τον διακομιστή μεσολάβησης.

Βήμα 3: Εφαρμογή του απλούστερου διακομιστή μεσολάβησης

Τώρα πρόκειται να κωδικοποιήσουμε λίγο. Στόχος μας είναι να εφαρμόσουμε τον διακομιστή μεσολάβησης, ο οποίος θα μεταφέρει τα αιτήματα αναλυτικών στοιχείων από τον διακομιστή μας στον πραγματικό διακομιστή του Google Analytics. Μπορούμε να το κάνουμε με πολλούς τρόπους, αλλά για παράδειγμα, ας χρησιμοποιήσουμε το Node.js και το Express.js με το πακέτο express-http-proxy.

Συγκεντρώνοντας όλα τα αρχεία στο παράδειγμα μαζί (βλ. GitHub), θα πρέπει να καταλήξουμε στον ακόλουθο κώδικα διακομιστή JavaScript:

var express = require("express"), proxy = require("express-http-proxy"), app = express(); app.use(express.static(__dirname)); // serve static files from cwd function getIpFromReq (req)  // get the client's IP address var bareIP = ":" + ((req.connection.socket && req.connection.socket.remoteAddress)  // proxying requests from /analytics to www.google-analytics.com. app.use("/analytics", proxy("www.google-analytics.com", { proxyReqPathResolver: function (req) { return req.url + (req.url.indexOf("?") === -1 ? "?" : "&") + "uip=" + encodeURIComponent(getIpFromReq(req)); } })); app.listen(1280); console.log("Web application ready on //localhost:1280");

Μερικές τελευταίες γραμμές εδώ κάνουν το proxy. Το μόνο τέχνασμα που κάνουμε εδώ είναι αντί να κάνουμε μεσολάβηση, εντοπίζουμε και προσαρτάμε ρητά τη διεύθυνση IP του πελάτη σε μορφή παραμέτρου URL πρωτοκόλλου μέτρησης. Αυτό απαιτείται για τη συλλογή ακριβών δεδομένων τοποθεσίας, επειδή όλα τα αιτήματα προς το Google Analytic προέρχονται αρχικά από τη διεύθυνση IP του διακομιστή μας, η οποία παραμένει σταθερή.

Μετά τη ρύθμιση του διακομιστή μεσολάβησης διακομιστή μας, μπορούμε να ελέγξουμε εάν το αίτημα στο τελικό σημείο / συλλογή μας επιστρέφει με επιτυχία μια κατάσταση 200 OK HTTP:

Μπορούμε να χρησιμοποιήσουμε, για παράδειγμα, μια ανώνυμη σύνδεση για να επαληθεύσουμε ότι η τοποθεσία λαμβάνεται επίσης σωστά.

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

Το τελευταίο πιθανό βήμα εάν θέλετε να εφαρμόσετε μια σταθερή λύση είναι να στείλετε αναλυτικά στοιχεία απευθείας από τον διακομιστή χρησιμοποιώντας βιβλιοθήκες από διακομιστή διαθέσιμες για διαφορετικές γλώσσες (NodeJS, Python, Ruby, PHP). Αυτή η προσέγγιση σίγουρα θα αποφύγει τυχόν αποκλεισμούς περιεχομένου, καθώς κάθε αίτημα προς διακομιστές ανάλυσης προέρχεται απευθείας από τους διακομιστές μας.

Και πάλι, η εφαρμογή επίδειξης είναι διαθέσιμη στο GitHub, μη διστάσετε να τη δοκιμάσετε! Ενημερώστε με αν έχετε σχόλια ή ενδιαφέρουσες εμπειρίες χρησιμοποιώντας αυτήν την προσέγγιση.

Ευχαριστώ για την ανάγνωση!