Closed Bug 1482158 Opened Last year Closed Last year

Expand organic search telemetry to include major engines

Categories

(Data Platform and Tools :: Datasets: Search, enhancement, P1)

x86_64
Linux
enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: harter, Assigned: mkaply)

References

Details

Attachments

(2 files)

In Bug 1475571 we implemented organic search telemetry for Google. We are interested in measuring partner market share. To do so, we need to expand this telemetry to include major search engines.
I have an initial engine list below. We may need to add engines to this list once we hear back from our partners.

* Yahoo!
* Bing
* DDG
Assignee: nobody → mozilla
Status: NEW → ASSIGNED
Here's Bing and DuckDuckGo

For Bing, we can't distinguish between organic followon and sap followon once there has been an sap followon (it's cookie based).

For DuckDuckGo, we can't distinguish sap followon from sap.
Comment on attachment 8999285 [details] [diff] [review]
First pass at Bing/DuckDuckGo

Review of attachment 8999285 [details] [diff] [review]:
-----------------------------------------------------------------

::: browser/modules/BrowserUsageTelemetry.jsm
@@ +301,4 @@
>  
> +          // This code is used for all Bing follow-on searches
> +          if (secondaryCode == "QBRE") {
> +            let enumerator = Services.cookies.getCookiesFromHost("www.bing.com");

Are we sure the cookies are retrieved from memory and this call won't cause main thread I/O?

If we don't provide the second parameter (origin attribute), isn't this going to return the wrong results for pages loaded in container tabs?
> Are we sure the cookies are retrieved from memory and this call won't cause main thread I/O?

I don't know the answer to that. What's the best way to find out?

> If we don't provide the second parameter (origin attribute), isn't this going to return the wrong results for pages loaded in container tabs?

I'll fix.
(In reply to Mike Kaply [:mkaply] from comment #4)
> > Are we sure the cookies are retrieved from memory and this call won't cause main thread I/O?
> 
> I don't know the answer to that. What's the best way to find out?

From reading a bit of the code in nsCookieService.cpp, it seems this will block only if accessed during early startup. If you call this after an HTTP request has already been performed, then it should be fine.
Mike De Boer:

This new patch incorporates a regex for additional engines and for handling cases where we get a URL before the search service is intialized (which allows us to eliminate some code).

I do not handle Yandex because they load their URLs 3 or 4 times so I can't track them properly unless we add some code to eliminate duplicate URLS.
Comment on attachment 9002500 [details]
Bug 1482158 - Add telemetry for other major engines.

Mike de Boer [:mikedeboer] has approved the revision.
Attachment #9002500 - Flags: review+
Argh. Repushed.
Flags: needinfo?(mozilla)
Woot! Mike, can you confirm this includes Yahoo?
Flags: needinfo?(mozilla)
Yep. Yahoo, google, duckduckgo, bing, baidu. Yandex wasn't possible using this mechanism.
Flags: needinfo?(mozilla)

Can we deprotect this bug since this code has shipped? I'd just like third parties to be able to follow the bug_numbers in Histograms.json.

Flags: needinfo?(rharter)

SGTM. :mconnor to confirm we're OK making this bug public.

Flags: needinfo?(rharter) → needinfo?(mconnor)

Yes, we can unhide this bug.

Flags: needinfo?(mconnor)
Group: mozilla-employee-confidential
You need to log in before you can comment on or make changes to this bug.