-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Problem
Customers have expressed a desire to minimise or eliminate additional external JavaScript requests by embedding detection functionality directly into their existing client-side scripts. However, 51Degrees’ device detection relies on dynamically generated scripts that evolve frequently based on data updates, making a fully static approach infeasible. This creates confusion around what is technically possible, what is supported, and how customers can best align their implementation with 51Degrees’ architecture and policies.
Overview
The objective of this issue is to clarify the feasibility of embedding detection logic while retaining compatibility with 51Degrees’ dynamic detection requirements. It aims to explain why a fully static solution is not viable due to the server-generated nature of the detection scripts and the rapid evolution of device identification logic.
Solution
Documentation Update
A new section titled “Static and Quasi-Static Script Approaches” has been added to the Client-side Evidence page, covering the following areas:
Policy Context
- Apple’s device identification changes are unannounced, frequent, and non-standardised.
- Detection logic must be updated regularly to maintain accuracy.
Performance Considerations
- 51Degrees prioritises efficient detection.
- A single, universal static test script is not practical or performant.
Conceptual Static Approach
- Describe how a customer could extract relevant JavaScript for specific iPhone groups from the current 51Degrees data file.
- Recommend refreshing this script daily, or as frequently as possible, to remain aligned with data updates.
- Emphasise that implementation details vary by environment and cannot be provided as a one-size-fits-all solution.
Containment Concept
- Advise assembling scripts server-side.
- When the client’s main script is requested, dynamically insert the required detection snippet at the server level.
- This approach avoids issuing an additional request while ensuring detection logic remains current.
Integration Guidance
- Provide reference examples or a high-level logic outline demonstrating server-side insertion of dynamically generated snippets.
- Highlight key best practices, including:
- Automating refreshes using the latest 51Degrees data files.
- Testing updates in a staging environment before deployment.
- Monitoring performance and ensuring ongoing compatibility with 51Degrees’ detection framework.
- This combined approach addresses customer concerns while maintaining alignment with 51Degrees’ technical constraints and best practices.
Resources
- 51Degrees Documentation – Client-side Evidence
- Blog: Static & Quasi-Static Scripts with 51Degrees