Bug 1556383 - Mobile activation ping documentation.r=petru a=jcristau
authorVlad Baicu <vlad.baicu@softvision.ro>
Wed, 05 Jun 2019 15:10:29 +0000
changeset 536793 6197f444f018e47e09a0ecc566dbf26b1f771363
parent 536792 16500a22225b64acab9dc01c328cb5927883d5b9
child 536794 98cc1b12c5a749f5d210f92372bc9270575e57df
push id2082
push userffxbld-merge
push dateMon, 01 Jul 2019 08:34:18 +0000
treeherdermozilla-release@2fb19d0466d2 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerspetru, jcristau
bugs1556383
milestone68.0
Bug 1556383 - Mobile activation ping documentation.r=petru a=jcristau Differential Revision: https://phabricator.services.mozilla.com/D33775
toolkit/components/telemetry/docs/data/activation-ping.rst
new file mode 100644
--- /dev/null
+++ b/toolkit/components/telemetry/docs/data/activation-ping.rst
@@ -0,0 +1,70 @@
+
+"activation" ping
+==================
+
+This mobile-specific ping is intendend to track activations of distributions of mobile products
+with a small error rate.
+
+This will be sent at Startup. Minimally, we want to get this ping at least once from every client.
+
+Submission will be per the Edge server specification::
+
+    /submit/mobile/activation/v/docId
+
+This is a modern “structure ingestion” ping (the namespace is not telemetry). For structured
+ingestion, we capture the schema version as one of the URI parameters, so we don’t need to
+include it in the body of the message.
+
+* ``v`` is the ping format version
+* ``docId`` is a UUID for deduping
+
+Structure:
+
+.. code-block:: js
+
+    {
+      "identifier": <string>, // Googled Ad ID hashed using bcrypt
+      "clientId": <string>, // client id, e.g. "c641eacf-c30c-4171-b403-f077724e848a"
+                            //included only if identifier was unabled to be retrieved
+      "manufacturer": <string>, // Build.MANUFACTURER
+      "model": <string>, // Build.MODEL
+      "locale": <string>, // application locale, e.g. "en-US"
+      "os": <string>, // OS name.
+      "osversion": <string>, // OS version.
+      "created": <string>, // date the ping was created
+                           // in local time, "yyyy-mm-dd"
+      "tz": <integer>, // timezone offset (in minutes) of the
+                       // device when the ping was created
+      "app_name": <string>, // "Fennec"
+      "channel": <string>, // Android package name e.g. "org.mozilla.firefox"
+      "distributionId": <string> // Distribution identifier (optional)
+    }
+
+
+Field details
+-------------
+
+identifier
+~~~~~~~~~~
+The ``identifier`` field is the Google Ad ID hashed using bcrypt. Ideally we want to send this instead of the
+client_id but not all distributions have Google Play Services enabled.
+
+client_id
+~~~~~~~~~~
+The ``client_id`` field represents the telemetry client id and it is only included if the identifier is empty.
+
+channel
+~~~~~~~
+The ``channel`` field represents the Android package name.
+
+Version history
+---------------
+* v1: initial version - shipped in `Fennec 68 <https://bugzilla.mozilla.org/show_bug.cgi?id=1534451>`_.
+
+Android implementation notes
+----------------------------
+On Android, the uploader has a high probability of delivering the complete data
+for a given client but not a 100% probability. This was a conscious decision to
+keep the code simple. Even if we drop a ping, it will be resent on future startups
+until we have confirmation that it has been uploaded.
+