Currently, SERP (Search Engine Results Page) telemetry is implemented in android in a way that url matching and codes are all currently hard-coded. There's also a valid code set that's hard coded as well. Drawback: * When there is an update in search configuration, mobile has to make changes manually and generally lags behind desktop in doing so which causes a lack in sync for some (or huge) amount of time. Ideally, we should get the SERP telemetry for mobile products pulling from remote settings. This would be useful for a few reasons: * If search engines change how their sites work we can update everyone via remote settings without having to wait for a release / do a dot release. * Once mobile has picked up the search-config, if for example, we do a configuration update, which changes code for an engine thereby producing a need to update SERP Telemetry as well, If that is in remote settings, then again, we can do that without needing to do a release. Steps: 1. Our first step would be to write a Helper class that connects to our new remote services client in ApplicationServices which fetches requests for collections in Remote Settings Server 2. As a second step with the fetched collection (from step 1), we can integrate it with our current SERP Telemetry classes I.e BaseSearchTelemetry.kt Once this is accomplished, android code will no longer have hard-coded values mentioned above, these will be fetched from remote services client and will be same as the existing desktop search-telemetry-v2 - they are pretty similar already.
Bug 1833277 Comment 0 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Currently, SERP (Search Engine Results Page) telemetry is implemented in android in a way that url matching and codes are all currently hard-coded. (https://searchfox.org/mozilla-mobile/rev/7562b185670145d7d36674fbaaf792bfc2ad3c63/firefox-android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/BaseSearchTelemetry.kt#74-134). There's also a valid code set (https://searchfox.org/mozilla-mobile/rev/7562b185670145d7d36674fbaaf792bfc2ad3c63/firefox-android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/Utils.kt#14-24) that's hard coded as well. Drawback: * When there is an update in search configuration, mobile has to make changes manually and generally lags behind desktop in doing so which causes a lack in sync for some (or huge) amount of time. Ideally, we should get the SERP telemetry for mobile products pulling from remote settings. This would be useful for a few reasons: * If search engines change how their sites work we can update everyone via remote settings without having to wait for a release / do a dot release. * Once mobile has picked up the search-config, if for example, we do a configuration update, which changes code for an engine thereby producing a need to update SERP Telemetry as well, If that is in remote settings, then again, we can do that without needing to do a release. Steps: 1. Our first step would be to write a Helper class that connects to our new remote services client in ApplicationServices which fetches requests for collections in Remote Settings Server 2. As a second step with the fetched collection (from step 1), we can integrate it with our current SERP Telemetry classes I.e BaseSearchTelemetry.kt Once this is accomplished, android code will no longer have hard-coded values mentioned above, these will be fetched from remote services client and will be same as the existing desktop search-telemetry-v2 - they are pretty similar already. (https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/search-telemetry-v2/records)
### SERP telemetry The SERP telemetry is already delivered to desktop clients via Remote Settings. This means that we can generally easily add new cases to the telemetry handling as websites change. Additionally if we need to make a change to partner codes, we can deliver a SERP telemetry update alongside a search configuration update which ensures that telemetry continues to be reported correctly. Although our mobile platforms have SERP telemetry, the details of the configuration are hard-coded, as Remote Settings was not available to them at the time of implementation. To avoid needing to update clients when we make partner code changes, we'll need to ensure that they use Remote Settings as well. Currently, SERP (Search Engine Results Page) telemetry is implemented in android in a way that url matching and codes are all currently hard-coded. (https://searchfox.org/mozilla-mobile/rev/7562b185670145d7d36674fbaaf792bfc2ad3c63/firefox-android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/BaseSearchTelemetry.kt#74-134). There's also a valid code set (https://searchfox.org/mozilla-mobile/rev/7562b185670145d7d36674fbaaf792bfc2ad3c63/firefox-android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/Utils.kt#14-24) that's hard coded as well. Drawback: * When there is an update in search configuration, mobile has to make changes manually and generally lags behind desktop in doing so which causes a lack in sync for some (or huge) amount of time. Ideally, we should get the SERP telemetry for mobile products pulling from remote settings. This would be useful for a few reasons: * If search engines change how their sites work we can update everyone via remote settings without having to wait for a release / do a dot release. * Once mobile has picked up the search-config, if for example, we do a configuration update, which changes code for an engine thereby producing a need to update SERP Telemetry as well, If that is in remote settings, then again, we can do that without needing to do a release. Steps: 1. Our first step would be to write a Helper class that connects to our new remote services client in ApplicationServices which fetches requests for collections in Remote Settings Server 2. As a second step with the fetched collection (from step 1), we can integrate it with our current SERP Telemetry classes I.e BaseSearchTelemetry.kt Once this is accomplished, android code will no longer have hard-coded values mentioned above, these will be fetched from remote services client and will be same as the existing desktop search-telemetry-v2 - they are pretty similar already. (https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/search-telemetry-v2/records)