[components] For https://github.com/mozilla-mobile/android-components/issues/7249...
commit5b7412c8dea29f62a71c924e193174bb17239cd6
authorMugurell <Mugurell@users.noreply.github.com>
Fri, 2 Jul 2021 06:07:47 +0000 (2 09:07 +0300)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 14 Jul 2021 13:30:14 +0000 (14 13:30 +0000)
tree6de85e6502b47d9667364aae952ea590028d6fc4
parentc2a8f1d2cb1201d9ad2c4d6264ea4b872ada5ac6
[components] For https://github.com/mozilla-mobile/android-components/issues/7249 - New ads / search telemetry

This is an upstream of the functionality already existing on Fenix so that it
can be used by multiple AC clients.

AdsTelemetry can identify whether there are ads shown in search results in
which case a (Component.FEATURE_SEARCH to SERP_SHOWN_WITH_ADDS) Fact will be
emitted. If AdsMiddleware is installed it will also track when an ad was
clicked for which a (Component.FEATURE_SEARCH to SERP_ADD_CLICKED) Fact will be
emitted.

InContentTelemetry can identify follow-on and organic web searches for which a
(Component.FEATURE_SEARCH to IN_CONTENT_SEARCH) Fact will be emitted.

In both cases the functionality only works for specific providers declared in
BaseSearchTelemetry and will be limited to only crawl websites matching the
ones declared in web extensions' manifest.json.
As such these lists will have to be permanently kept up-to-date.
21 files changed:
mobile/android/android-components/components/feature/search/.gitignore [new file with mode: 0644]
mobile/android/android-components/components/feature/search/build.gradle
mobile/android/android-components/components/feature/search/src/main/assets/extensions/ads/adsTelemetry.js [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/assets/extensions/ads/manifest.template.json [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/assets/extensions/search/manifest.template.json [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/assets/extensions/search/searchTelemetry.js [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/middleware/AdsTelemetryMiddleware.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/BaseSearchTelemetry.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/ExtensionInfo.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/SearchProviderCookie.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/SearchProviderModel.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/TrackKeyInfo.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/Utils.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/ads/AdsTelemetry.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/incontent/InContentTelemetry.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/test/java/mozilla/components/feature/search/middleware/AdsTelemetryMiddlewareTest.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/test/java/mozilla/components/feature/search/telemetry/BaseSearchTelemetryTest.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/test/java/mozilla/components/feature/search/telemetry/SearchProviderModelTest.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/test/java/mozilla/components/feature/search/telemetry/ads/AdsTelemetryTest.kt [new file with mode: 0644]
mobile/android/android-components/components/feature/search/src/test/java/mozilla/components/feature/search/telemetry/incontent/InContentTelemetryTest.kt [new file with mode: 0644]
mobile/android/android-components/docs/changelog.md