Il modo più semplice per scoprirlo è disattivare la personalizzazione di User-Agent e vedere se il problema scompare :).
In generale, non è garantito che User-Agent sia ciò che imposti. Ad esempio, un firewall aziendale potrebbe utilizzare un'analisi approfondita dei pacchetti per riscrivere l'User-Agent e ridurre l'entropia del browser .
Filosoficamente, penso che modificare User-Agent per includere ulteriori informazioni di registrazione sia una cattiva idea perché viola il principio di responsabilità singola (applicato ai dati: ascoltami). Supponiamo che il browser di tutti sia conforme agli standard . (La tua app ibrida è conforme, giusto? :)) Sui dispositivi mobili, User-Agent ha una responsabilità ben definita: indicare la preferenza dell'utente per il rendering mobile o desktop. Google dice :
HTTP redirection is a commonly used to redirect clients to device-specific URLs. Usually, the redirection is done based on the user-agent in the HTTP request headers.
È ridicolo che una stringa di 109 byte (per me) serva a trasmettere un singolo bit di informazioni? Certo, ma questo è il mondo in cui viviamo.
Riscrivere User-Agent per aggiungere informazioni di registrazione dà a quella stringa una seconda responsabilità. Ciò significa che i tuoi server, CDN, strumenti di registrazione e tutto il resto devono sapere (o almeno tollerare) sia le informazioni di registrazione che le informazioni sugli intenti mobili / desktop. Ogni volta che vuoi modificare le informazioni di registrazione, devi assicurarti di non rompere nulla relativo all'intento di rendering e viceversa.
Anche se ora può essere un problema, fai a te stesso ea coloro che mantengono il tuo codice un favore: non sovraccaricare User-Agent . Dividere le responsabilità per mantenere il codice semplice e liberamente accoppiato si ripaga molte volte risparmiando tempo, riducendo lo stress e prevenire la caduta dei capelli.