1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
|
Telemetry
=========
This section describes existing telemetry probes measuring interaction with the
Address Bar.
For telemetry specific to Firefox Suggest, see the
:doc:`firefox-suggest-telemetry` document.
.. contents::
:depth: 2
Histograms
----------
PLACES_AUTOCOMPLETE_1ST_RESULT_TIME_MS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This probe tracks the amount of time it takes to get the first result.
It is an exponential histogram with values between 5 and 100.
PLACES_AUTOCOMPLETE_6_FIRST_RESULTS_TIME_MS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This probe tracks the amount of time it takes to get the first six results.
It is an exponential histogram with values between 50 and 1000.
FX_URLBAR_SELECTED_RESULT_METHOD
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This probe tracks how a result was picked by the user from the list.
It is a categorical histogram with these values:
- ``enter``
The user pressed Enter without selecting a result first.
This most likely happens when the user confirms the default preselected
result (aka *heuristic result*), or when they select with the keyboard a
one-off search button and confirm with Enter.
- ``enterSelection``
The user selected a result, but not using Tab or the arrow keys, and then
pressed Enter. This is a rare and generally unexpected event, there may be
exotic ways to select a result we didn't consider, that are tracked here.
Look at arrowEnterSelection and tabEnterSelection for more common actions.
- ``click``
The user clicked on a result.
- ``arrowEnterSelection``
The user selected a result using the arrow keys, and then pressed Enter.
- ``tabEnterSelection``
The first key the user pressed to select a result was the Tab key, and then
they pressed Enter. Note that this means the user could have used the arrow
keys after first pressing the Tab key.
- ``rightClickEnter``
Before QuantumBar, it was possible to right-click a result to highlight but
not pick it. Then the user could press Enter. This is no more possible.
FX_URLBAR_ZERO_PREFIX_DWELL_TIME_MS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This probe records the amount of time the zero-prefix view was shown; that is,
the time from when it was opened to the time it was closed. "Zero-prefix"
means the search string was empty, so the zero-prefix view is the view that's
shown when the user clicks in the urlbar before typing a search string. Often
it's also called the "top sites" view since normally it shows the user's top
sites. This is an exponential histogram whose values range from 0 to 60,000
with 50 buckets. Values are in milliseconds. This histogram was introduced in
Firefox 110.0 in bug 1806765.
PLACES_FRECENCY_RECALC_CHUNK_TIME_MS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This records the time necessary to recalculate frecency of a chunk of pages,
as defined in the `PlacesFrecencyRecalculator <https://searchfox.org/mozilla-central/source/toolkit/components/places/PlacesFrecencyRecalculator.sys.mjs>`_ module.
Scalars
-------
urlbar.abandonment
~~~~~~~~~~~~~~~~~~
A uint recording the number of abandoned engagements in the urlbar. An
abandonment occurs when the user begins using the urlbar but stops before
completing the engagement. This can happen when the user clicks outside the
urlbar to focus a different part of the window. It can also happen when the
user switches to another window while the urlbar is focused.
urlbar.autofill_deletion
~~~~~~~~~~~~~~~~~~~~~~~~
A uint recording the deletion count for autofilled string in the urlbar.
This occurs when the user deletes whole autofilled string by BACKSPACE or
DELETE key while the autofilled string is selected.
urlbar.engagement
~~~~~~~~~~~~~~~~~
A uint recording the number of engagements the user completes in the urlbar.
An engagement occurs when the user navigates to a page using the urlbar, for
example by picking a result in the urlbar panel or typing a search term or URL
in the urlbar and pressing the enter key.
urlbar.impression.*
~~~~~~~~~~~~~~~~~~~
A uint recording the number of impression that was displaying when user picks
any result.
- ``autofill_about``
For about-page type autofill.
- ``autofill_adaptive``
For adaptive history type autofill.
- ``autofill_origin``
For origin type autofill.
- ``autofill_other``
Counts how many times some other type of autofill result that does not have
a specific scalar was shown. This is a fallback that is used when the code is
not properly setting a specific autofill type, and it should not normally be
used. If it appears in the data, it means we need to investigate and fix the
code that is not properly setting a specific autofill type.
- ``autofill_preloaded``
For preloaded site type autofill.
- ``autofill_url``
For url type autofill.
urlbar.persistedsearchterms.revert_by_popup_count
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A uint that is incremented when search terms are persisted in the Urlbar and
the Urlbar is reverted to show a full URL due to a PopupNotification. This
can happen when a user is on a SERP and permissions are requested, e.g.
request access to location. If the popup is persistent and the user did not
dismiss it before switching tabs, the popup will reappear when they return to
the tab. Thus, when returning to the tab with the persistent popup, this
value will be incremented because it should have persisted search terms but
instead showed a full URL.
urlbar.persistedsearchterms.view_count
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A uint that is incremented when search terms should be persisted in the
Urlbar. This will trigger when a user loads a SERP from any SAP that results
in the search terms persisting in the Urlbar, as well as switching to a tab
containing a SERP that should be persisting the search terms in the Urlbar,
regardless of whether a PopupNotification is present. Thus, for every
``revert_by_popup_count``, there should be at least one corresponding
``view_count``.
urlbar.tips
~~~~~~~~~~~
This is a keyed scalar whose values are uints and are incremented each time a
tip result is shown, a tip is picked, and a tip's help button is picked. The
keys are:
- ``intervention_clear-help``
Incremented when the user picks the help button in the clear-history search
intervention.
- ``intervention_clear-picked``
Incremented when the user picks the clear-history search intervention.
- ``intervention_clear-shown``
Incremented when the clear-history search intervention is shown.
- ``intervention_refresh-help``
Incremented when the user picks the help button in the refresh-Firefox
search intervention.
- ``intervention_refresh-picked``
Incremented when the user picks the refresh-Firefox search intervention.
- ``intervention_refresh-shown``
Incremented when the refresh-Firefox search intervention is shown.
- ``intervention_update_ask-help``
Incremented when the user picks the help button in the update_ask search
intervention, which is shown when there's a Firefox update available but the
user's preference says we should ask them to download and apply it.
- ``intervention_update_ask-picked``
Incremented when the user picks the update_ask search intervention.
- ``intervention_update_ask-shown``
Incremented when the update_ask search intervention is shown.
- ``intervention_update_refresh-help``
Incremented when the user picks the help button in the update_refresh search
intervention, which is shown when the user's browser is up to date but they
triggered the update intervention. We show this special refresh intervention
instead.
- ``intervention_update_refresh-picked``
Incremented when the user picks the update_refresh search intervention.
- ``intervention_update_refresh-shown``
Incremented when the update_refresh search intervention is shown.
- ``intervention_update_restart-help``
Incremented when the user picks the help button in the update_restart search
intervention, which is shown when there's an update and it's been downloaded
and applied. The user needs to restart to finish.
- ``intervention_update_restart-picked``
Incremented when the user picks the update_restart search intervention.
- ``intervention_update_restart-shown``
Incremented when the update_restart search intervention is shown.
- ``intervention_update_web-help``
Incremented when the user picks the help button in the update_web search
intervention, which is shown when we can't update the browser or possibly
even check for updates for some reason, so the user should download the
latest version from the web.
- ``intervention_update_web-picked``
Incremented when the user picks the update_web search intervention.
- ``intervention_update_web-shown``
Incremented when the update_web search intervention is shown.
- ``tabtosearch-shown``
Increment when a non-onboarding tab-to-search result is shown, once per
engine per engagement. Please note that the number of times non-onboarding
tab-to-search results are picked is the sum of all keys in
``urlbar.searchmode.tabtosearch``. Please also note that more detailed
telemetry is recorded about both onboarding and non-onboarding tab-to-search
results in urlbar.tabtosearch.*. These probes in ``urlbar.tips`` are still
recorded because ``urlbar.tabtosearch.*`` is not currently recorded
in Release.
- ``tabtosearch_onboard-shown``
Incremented when a tab-to-search onboarding result is shown, once per engine
per engagement. Please note that the number of times tab-to-search
onboarding results are picked is the sum of all keys in
``urlbar.searchmode.tabtosearch_onboard``.
- ``searchTip_onboard-picked``
Incremented when the user picks the onboarding search tip.
- ``searchTip_onboard-shown``
Incremented when the onboarding search tip is shown.
- ``searchTip_persist-picked``
Incremented when the user picks the urlbar persisted search tip.
- ``searchTip_persist-shown``
Incremented when the url persisted search tip is shown.
- ``searchTip_redirect-picked``
Incremented when the user picks the redirect search tip.
- ``searchTip_redirect-shown``
Incremented when the redirect search tip is shown.
urlbar.searchmode.*
~~~~~~~~~~~~~~~~~~~
This is a set of keyed scalars whose values are uints incremented each
time search mode is entered in the Urlbar. The suffix on the scalar name
describes how search mode was entered. Possibilities include:
- ``bookmarkmenu``
Used when the user selects the Search Bookmarks menu item in the Library
menu.
- ``handoff``
Used when the user uses the search box on the new tab page and is handed off
to the address bar. NOTE: This entry point was disabled from Firefox 88 to
91. Starting with 91, it will appear but in low volume. Users must have
searching in the Urlbar disabled to enter search mode via handoff.
- ``keywordoffer``
Used when the user selects a keyword offer result.
- ``oneoff``
Used when the user selects a one-off engine in the Urlbar.
- ``shortcut``
Used when the user enters search mode with a keyboard shortcut or menu bar
item (e.g. ``Accel+K``).
- ``tabmenu``
Used when the user selects the Search Tabs menu item in the tab overflow
menu.
- ``tabtosearch``
Used when the user selects a tab-to-search result. These results suggest a
search engine when the search engine's domain is autofilled.
- ``tabtosearch_onboard``
Used when the user selects a tab-to-search onboarding result. These are
shown the first few times the user encounters a tab-to-search result.
- ``topsites_newtab``
Used when the user selects a search shortcut Top Site from the New Tab Page.
- ``topsites_urlbar``
Used when the user selects a search shortcut Top Site from the Urlbar.
- ``touchbar``
Used when the user taps a search shortct on the Touch Bar, available on some
Macs.
- ``typed``
Used when the user types an engine alias in the Urlbar.
- ``historymenu``
Used when the user selects the Search History menu item in a History
menu.
- ``other``
Used as a catchall for other behaviour. We don't expect this scalar to hold
any values. If it does, we need to correct an issue with search mode entry
points.
The keys for the scalars above are engine and source names. If the user enters
a remote search mode with a built-in engine, we record the engine name. If the
user enters a remote search mode with an engine they installed (e.g. via
OpenSearch or a WebExtension), we record ``other`` (not to be confused with
the ``urlbar.searchmode.other`` scalar above). If they enter a local search
mode, we record the English name of the result source (e.g. "bookmarks",
"history", "tabs"). Note that we slightly modify the engine name for some
built-in engines: we flatten all localized Amazon sites (Amazon.com,
Amazon.ca, Amazon.de, etc.) to "Amazon" and we flatten all localized
Wikipedia sites (Wikipedia (en), Wikipedia (fr), etc.) to "Wikipedia". This
is done to reduce the number of keys used by these scalars.
urlbar.picked.*
~~~~~~~~~~~~~~~
This is a set of keyed scalars whose values are uints incremented each
time a result is picked from the Urlbar. The suffix on the scalar name
is the result type. The keys for the scalars above are the 0-based index of
the result in the urlbar panel when it was picked.
.. note::
Available from Firefox 84 on. Use the *FX_URLBAR_SELECTED_** histograms in
earlier versions.
.. note::
Firefox 102 deprecated ``autofill`` and added ``autofill_about``,
``autofill_adaptive``, ``autofill_origin``, ``autofill_other``,
``autofill_preloaded``, and ``autofill_url``.
Valid result types are:
- ``autofill``
This scalar was deprecated in Firefox 102 and replaced with
``autofill_about``, ``autofill_adaptive``, ``autofill_origin``,
``autofill_other``, ``autofill_preloaded``, and ``autofill_url``. Previously
it was recorded in each of the cases that the other scalars now cover.
- ``autofill_about``
An autofilled "about:" page URI (e.g., about:config). The user must first
type "about:" to trigger this type of autofill.
- ``autofill_adaptive``
An autofilled URL from the user's adaptive history. This type of autofill
differs from ``autofill_url`` in two ways: (1) It's based on the user's
adaptive history, a particular type of history that associates the user's
search string with the URL they pick in the address bar. (2) It autofills
full URLs instead of "up to the next slash" partial URLs. For more
information on this type of autofill, see this `adaptive history autofill
document`_.
- ``autofill_origin``
An autofilled origin_ from the user's history. Typically "origin" means a
domain or host name like "mozilla.org". Technically it can also include a
URL scheme or protocol like "https" and a port number like ":8000". Firefox
can autofill domain names by themselves, domain names with schemes, domain
names with ports, and domain names with schemes and ports. All of these
cases count as origin autofill. For more information, see this `adaptive
history autofill document`_.
- ``autofill_other``
Counts how many times some other type of autofill result that does not have
a specific keyed scalar was picked at a given index. This is a fallback that
is used when the code is not properly setting a specific autofill type, and
it should not normally be used. If it appears in the data, it means we need
to investigate and fix the code that is not properly setting a specific
autofill type.
- ``autofill_preloaded``
An autofilled `preloaded site`_. The preloaded-sites feature (as it relates
to this telemetry scalar) has never been enabled in Firefox, so this scalar
should never be recorded. It can be enabled by flipping a hidden preference,
however. It's included here for consistency and correctness.
- ``autofill_url``
An autofilled URL or partial URL from the user's history. Firefox autofills
URLs "up to the next slash", so to trigger URL autofill, the user must first
type a domain name (or trigger origin autofill) and then begin typing the
rest of the URL (technically speaking, its path). As they continue typing,
the URL will only be partially autofilled up to the next slash, or if there
is no next slash, to the end of the URL. This allows the user to easily
visit different subpaths of a domain. For more information, see this
`adaptive history autofill document`_.
- ``bookmark``
A bookmarked URL.
- ``dynamic``
A specially crafted result, often used in experiments when basic types are
not flexible enough for a rich layout.
- ``dynamic_wikipedia``
A dynamic Wikipedia Firefox Suggest result.
- ``extension``
Added by an add-on through the omnibox WebExtension API.
- ``formhistory``
A search suggestion from previous search history.
- ``history``
A URL from history.
- ``keyword``
A bookmark keyword.
- ``navigational``
A navigational suggestion Firefox Suggest result.
- ``quickaction``
A QuickAction.
- ``quicksuggest``
A Firefox Suggest (a.k.a. quick suggest) suggestion.
- ``remotetab``
A tab synced from another device.
- ``searchengine``
A search result, but not a suggestion. May be the default search action
or a search alias.
- ``searchsuggestion``
A remote search suggestion.
- ``switchtab``
An open tab.
- ``tabtosearch``
A tab to search result.
- ``tip``
A tip result.
- ``topsite``
An entry from top sites.
- ``trending``
A trending suggestion.
- ``unknown``
An unknown result type, a bug should be filed to figure out what it is.
- ``visiturl``
The user typed string can be directly visited.
- ``weather``
A Firefox Suggest weather suggestion.
.. _adaptive history autofill document: https://docs.google.com/document/d/e/2PACX-1vRBLr_2dxus-aYhZRUkW9Q3B1K0uC-a0qQyE3kQDTU3pcNpDHb36-Pfo9fbETk89e7Jz4nkrqwRhi4j/pub
.. _origin: https://html.spec.whatwg.org/multipage/origin.html#origin
.. _preloaded site: https://searchfox.org/mozilla-central/source/browser/components/urlbar/UrlbarProviderPreloadedSites.jsm
urlbar.picked.searchmode.*
~~~~~~~~~~~~~~~~~~~~~~~~~~
This is a set of keyed scalars whose values are uints incremented each time a
result is picked from the Urlbar while the Urlbar is in search mode. The
suffix on the scalar name is the search mode entry point. The keys for the
scalars are the 0-based index of the result in the urlbar panel when it was
picked.
.. note::
These scalars share elements of both ``urlbar.picked.*`` and
``urlbar.searchmode.*``. Scalar name suffixes are search mode entry points,
like ``urlbar.searchmode.*``. The keys for these scalars are result indices,
like ``urlbar.picked.*``.
.. note::
These data are a subset of the data recorded by ``urlbar.picked.*``. For
example, if the user enters search mode by clicking a one-off then selects
a Google search suggestion at index 2, we would record in **both**
``urlbar.picked.searchsuggestion`` and ``urlbar.picked.searchmode.oneoff``.
urlbar.tabtosearch.*
~~~~~~~~~~~~~~~~~~~~
This is a set of keyed scalars whose values are uints incremented when a
tab-to-search result is shown, once per engine per engagement. There are two
sub-probes: ``urlbar.tabtosearch.impressions`` and
``urlbar.tabtosearch.impressions_onboarding``. The former records impressions
of regular tab-to-search results and the latter records impressions of
onboarding tab-to-search results. The key values are identical to those of the
``urlbar.searchmode.*`` probes: they are the names of the engines shown in the
tab-to-search results. Engines that are not built in are grouped under the
key ``other``.
.. note::
Due to the potentially sensitive nature of these data, they are currently
collected only on pre-release version of Firefox. See bug 1686330.
urlbar.zeroprefix.abandonment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A uint recording the number of abandonments of the zero-prefix view.
"Zero-prefix" means the search string was empty, so the zero-prefix view is
the view that's shown when the user clicks in the urlbar before typing a
search string. Often it's called the "top sites" view since normally it shows
the user's top sites. "Abandonment" means the user opened the zero-prefix view
but it was closed without the user picking a result inside it. This scalar was
introduced in Firefox 110.0 in bug 1806765.
urlbar.zeroprefix.engagement
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A uint recording the number of engagements in the zero-prefix view.
"Zero-prefix" means the search string was empty, so the zero-prefix view is
the view that's shown when the user clicks in the urlbar before typing a
search string. Often it's called the "top sites" view since normally it shows
the user's top sites. "Engagement" means the user picked a result inside the
view. This scalar was introduced in Firefox 110.0 in bug 1806765.
urlbar.zeroprefix.exposure
~~~~~~~~~~~~~~~~~~~~~~~~~~
A uint recording the number of times the user was exposed to the zero-prefix
view; that is, the number of times it was shown. "Zero-prefix" means the
search string was empty, so the zero-prefix view is the view that's shown when
the user clicks in the urlbar before typing a search string. Often it's called
the "top sites" view since normally it shows the user's top sites. This scalar
was introduced in Firefox 110.0 in bug 1806765.
urlbar.quickaction.impression
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A uint recording the number of times the user was shown a quickaction, the
key is in the form $key-$n where $n is the number of characters the user typed
in order for the suggestion to show. See bug 1806024.
urlbar.quickaction.picked
~~~~~~~~~~~~~~~~~~~~~~~~~
A uint recording the number of times the user selected a quickaction, the
key is in the form $key-$n where $n is the number of characters the user typed
in order for the suggestion to show. See bug 1783155.
places.*
~~~~~~~~
This is Places related telemetry.
Valid result types are:
- ``sponsored_visit_no_triggering_url``
Number of sponsored visits that could not find their triggering URL in
history. We expect this to be a small number just due to the navigation layer
manipulating URLs. A large or growing value may be a concern.
- ``pages_need_frecency_recalculation``
Number of pages in need of a frecency recalculation. This number should
remain small compared to the total number of pages in the database (see the
`PLACES_PAGES_COUNT` histogram). It can be used to valuate the frequency
and size of recalculations, for performance reasons.
Search Engagement Telemetry
---------------------------
The search engagement telemetry provided since Firefox 110 is is recorded using
Glean events. Because of the data size, these events are collected only for a
subset of the population, using the Glean Sampling feature. Please see the
following documents for the details.
- `Engagement`_ :
It is defined as a completed action in urlbar, where a user picked one of
the results.
- `Abandonment`_ :
It is defined as an action where the user open the results but does not
complete an engagement action, usually unfocusing the urlbar. This also
happens when the user switches to another window, if the results popup was
opening.
- `Impression`_ :
It is defined as an action where the results had been shown to the user for
a while. In default, it will be recorded when the same results have been
shown and 1 sec has elapsed. The interval value can be modified through the
`browser.urlbar.searchEngagementTelemetry.pauseImpressionIntervalMs`
preference.
.. _Engagement: https://dictionary.telemetry.mozilla.org/apps/firefox_desktop/metrics/urlbar_engagement
.. _Abandonment: https://dictionary.telemetry.mozilla.org/apps/firefox_desktop/metrics/urlbar_abandonment
.. _Impression: https://dictionary.telemetry.mozilla.org/apps/firefox_desktop/metrics/urlbar_impression
Custom pings for Contextual Services
------------------------------------
Contextual Services currently has two features involving the address bar, top
sites and Firefox Suggest. Top sites telemetry is described below. For Firefox
Suggest, see the :doc:`firefox-suggest-telemetry` document.
Firefox sends the following `custom pings`_ to record impressions and clicks of
the top sites feature.
.. _custom pings: https://docs.telemetry.mozilla.org/cookbooks/new_ping.html#sending-a-custom-ping
Top Sites Impression
~~~~~~~~~~~~~~~~~~~~
This records an impression when a sponsored top site is shown.
- ``context_id``
A UUID representing this user. Note that it's not client_id, nor can it be
used to link to a client_id.
- ``tile_id``
A unique identifier for the sponsored top site.
- ``source``
The browser location where the impression was displayed.
- ``position``
The placement of the top site (1-based).
- ``advertiser``
The Name of the advertiser.
- ``reporting_url``
The reporting URL of the sponsored top site, normally pointing to the ad
partner's reporting endpoint.
- ``version``
Firefox version.
- ``release_channel``
Firefox release channel.
- ``locale``
User's current locale.
Changelog
Firefox 108.0
The impression ping is sent for Pocket sponsored tiles as well. Pocket sponsored tiles have different values for ``advertiser`` and ``reporting_url`` is null. [Bug 1794022_]
Firefox 87.0
Introduced. [Non_public_doc_]
.. _Non_public_doc: https://docs.google.com/document/d/1qLb4hUwR8YQj5QnjJtwxQIoDCPLQ6XuAmJPQ6_WmS4E/edit
.. _1794022: https://bugzilla.mozilla.org/show_bug.cgi?id=1794022
Top Sites Click
~~~~~~~~~~~~~~~
This records a click ping when a sponsored top site is clicked by the user.
- ``context_id``
A UUID representing this user. Note that it's not client_id, nor can it be
used to link to a client_id.
- ``tile_id``
A unique identifier for the sponsored top site.
- ``source``
The browser location where the click was tirggered.
- ``position``
The placement of the top site (1-based).
- ``advertiser``
The Name of the advertiser.
- ``reporting_url``
The reporting URL of the sponsored top site, normally pointing to the ad
partner's reporting endpoint.
- ``version``
Firefox version.
- ``release_channel``
Firefox release channel.
- ``locale``
User's current locale.
Changelog
Firefox 108.0
The click ping is sent for Pocket sponsored tiles as well. Pocket sponsored tiles have different values for ``advertiser`` and ``reporting_url`` is null. [Bug 1794022_]
Firefox 87.0
Introduced. [Non_public_doc_]
Other telemetry relevant to the Address Bar
-------------------------------------------
Search Telemetry
~~~~~~~~~~~~~~~~
Some of the `search telemetry`_ is also relevant to the address bar.
contextual.services.topsites.*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These keyed scalars instrument the impressions and clicks for sponsored top
sites in the urlbar.
The key is a combination of the source and the placement of the top sites link
(1-based) such as 'urlbar_1'. For each key, it records the counter of the
impression or click.
Note that these scalars are shared with the top sites on the newtab page.
Telemetry Environment
~~~~~~~~~~~~~~~~~~~~~
The following preferences relevant to the address bar are recorded in
:doc:`telemetry environment data </toolkit/components/telemetry/data/environment>`:
- ``browser.search.suggest.enabled``: The global toggle for search
suggestions everywhere in Firefox (search bar, urlbar, etc.). Defaults to
true.
- ``browser.urlbar.autoFill``: The global preference for whether autofill in
the urlbar is enabled. When false, all types of autofill are disabled.
- ``browser.urlbar.autoFill.adaptiveHistory.enabled``: True if adaptive
history autofill in the urlbar is enabled.
- ``browser.urlbar.suggest.searches``: True if search suggestions are
enabled in the urlbar. Defaults to false.
Firefox Suggest
~~~~~~~~~~~~~~~
Telemetry specific to Firefox Suggest is described in the
:doc:`firefox-suggest-telemetry` document.
.. _search telemetry: /browser/search/telemetry.html
Event Telemetry
---------------
.. note::
This is a legacy event telemetry. For the current telemetry, please see
`Search Engagement Telemetry`_. These legacy events were disabled by default
and required enabling through a preference or a Urlbar WebExtension
experimental API.
.. _Search Engagement Telemetry: #search-engagement-telemetry
The event telemetry is grouped under the ``urlbar`` category.
Event Method
~~~~~~~~~~~~
There are two methods to describe the interaction with the urlbar:
- ``engagement``
It is defined as a completed action in urlbar, where a user inserts text
and executes one of the actions described in the Event Object.
- ``abandonment``
It is defined as an action where the user inserts text but does not
complete an engagement action, usually unfocusing the urlbar. This also
happens when the user switches to another window, regardless of urlbar
focus.
Event Value
~~~~~~~~~~~
This is how the user interaction started
- ``typed``: The text was typed into the urlbar.
- ``dropped``: The text was drag and dropped into the urlbar.
- ``pasted``: The text was pasted into the urlbar.
- ``topsites``: The user opened the urlbar view without typing, dropping,
or pasting.
In these cases, if the urlbar input is showing the URL of the loaded page
and the user has not modified the input’s content, the urlbar views shows
the user’s top sites. Otherwise, if the user had modified the input’s
content, the urlbar view shows results based on what the user has typed.
To tell whether top sites were shown, it's enough to check whether value is
``topsites``. To know whether the user actually picked a top site, check
check that ``numChars`` == 0. If ``numChars`` > 0, the user initially opened
top sites, but then they started typing and confirmed a different result.
- ``returned``: The user abandoned a search, for example by switching to
another tab/window, or focusing something else, then came back to it
and continued. We consider a search continued if the user kept at least the
first char of the original search string.
- ``restarted``: The user abandoned a search, for example by switching to
another tab/window, or focusing something else, then came back to it,
cleared it and then typed a new string.
Event Object
~~~~~~~~~~~~
These describe actions in the urlbar:
- ``click``
The user clicked on a result.
- ``enter``
The user confirmed a result with Enter.
- ``drop_go``
The user dropped text on the input field.
- ``paste_go``
The user used Paste and Go feature. It is not the same as paste and Enter.
- ``blur``
The user unfocused the urlbar. This is only valid for ``abandonment``.
Event Extra
~~~~~~~~~~~
This object contains additional information about the interaction.
Extra is a key-value store, where all the keys and values are strings.
- ``elapsed``
Time in milliseconds from the initial interaction to an action.
- ``numChars``
Number of input characters the user typed or pasted at the time of
submission.
- ``numWords``
Number of words in the input. The measurement is taken from a trimmed input
split up by its spaces. This is not a perfect measurement, since it will
return an incorrect value for languages that do not use spaces or URLs
containing spaces in its query parameters, for example.
- ``selType``
The type of the selected result at the time of submission.
This is only present for ``engagement`` events.
It can be one of: ``none``, ``autofill``, ``visiturl``, ``bookmark``,
``history``, ``keyword``, ``searchengine``, ``searchsuggestion``,
``switchtab``, ``remotetab``, ``extension``, ``oneoff``, ``keywordoffer``,
``canonized``, ``tip``, ``tiphelp``, ``formhistory``, ``tabtosearch``,
``help``, ``block``, ``quicksuggest``, ``unknown``
In practice, ``tabtosearch`` should not appear in real event telemetry.
Opening a tab-to-search result enters search mode and entering search mode
does not currently mark the end of an engagement. It is noted here for
completeness. Similarly, ``block`` indicates a result was blocked or deleted
but should not appear because blocking a result does not end the engagement.
- ``selIndex``
Index of the selected result in the urlbar panel, or -1 for no selection.
There won't be a selection when a one-off button is the only selection, and
for the ``paste_go`` or ``drop_go`` objects. There may also not be a
selection if the system was busy and results arrived too late, then we
directly decide whether to search or visit the given string without having
a fully built result.
This is only present for ``engagement`` events.
- ``provider``
The name of the result provider for the selected result. Existing values
are: ``HeuristicFallback``, ``Autofill``, ``Places``,
``TokenAliasEngines``, ``SearchSuggestions``, ``UrlbarProviderTopSites``.
Data from before Firefox 91 will also list ``UnifiedComplete`` as a
provider. This is equivalent to ``Places``.
Values can also be defined by `URLBar provider experiments`_.
.. _URLBar provider experiments: experiments.html#developing-address-bar-extensions
|