Closed Bug 1159277 Opened 6 years ago Closed 6 years ago

Document Adjust data collection in Firefox for Android

Categories

(Firefox Build System :: Android Studio and Gradle Integration, defect)

defect
Not set
normal

Tracking

(firefox38 unaffected, firefox38.0.5 fixed, firefox39 fixed, firefox40 fixed)

RESOLVED FIXED
mozilla40
Tracking Status
firefox38 --- unaffected
firefox38.0.5 --- fixed
firefox39 --- fixed
firefox40 --- fixed

People

(Reporter: nalexander, Assigned: nalexander)

References

Details

Attachments

(3 files, 1 obsolete file)

This ticket tracks the request at https://bugzilla.mozilla.org/show_bug.cgi?id=1143888#c30, namely: "a patch to in-tree docs that enumerate the data that this [the Adjust SDK] collects."

From https://bugzilla.mozilla.org/show_bug.cgi?id=1143888#c32: there are examples at http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/docs/uitelemetry.rst (which becomes https://ci.mozilla.org/job/mozilla-central-docs/Tree_Documentation/mobile/android/base/fennec/uitelemetry.html),
and also http://mxr.mozilla.org/mozilla-central/source/services/healthreport/docs/identifiers.rst.

This needs to document the endpoints that data is sent to, the circumstances under which it is sent, and the datapoints. Normally this would also include the wire format, but since the SDK controls that I [bsmedberg] don't think we need that in this case.
bsmedberg: I've filed this to track the documentation work for Bug 1143888.  Two questions:

1) we're planning (and have approval) to uplift the Adjust SDK integration to beta in time for the Spring 38.0.5 release.  Does this documentation need to be in tree before that uplift happens?  Before 38.0.5 hits GA?

2) we intend to turn off Adjust SDK integration in 39 and remove the code from the tree entirely as soon as possible.  Does this short window change the scope of the documentation work necessary?

I'm aware that things tend to not get documented retroactively; and that short-lived things tend to turn into long lived things :/
Flags: needinfo?(benjamin)
1) Under normal circumstances this would occur as the code itself lands, but since that's already happened let's just get it done. We should uplift the docs with the code so that each branch correctly documents the current state of the data submission code.

2) I understand that we're not enabling this code regularly, just for special releases to optimize advertising. I wasn't aware that we were planning on removing the code completely. We should leave the docs as long as the code is also present so that they match: please document the build flags that turn the feature on and off.
Flags: needinfo?(benjamin)
/r/7887 - Bug 1159277 - Document Adjust data collection in Firefox for Android. r=mfinkle,bsmedberg

Pull down this commit:

hg pull -r 6896d945d6a3697af05609847b14fc819fa47cd5 https://reviewboard-hg.mozilla.org/gecko/
Attachment #8599460 - Flags: review?(mark.finkle)
Attachment #8599460 - Flags: review?(benjamin)
mfinkle, bsmedberg: I'm uploading the locally built docs to people.mozilla.org/~nalexander/adjust_docs/index.html as I type.  I see a few small formatting issues but nothing serious.

I have not included any mention of versions or plans to back out.  Happy to add as y'all see fit.  I have one reference needed (a blogpost?  a link to mfinkle's mailing list post?) or we should say something weaker or nothing at all.
Flags: needinfo?(mark.finkle)
Flags: needinfo?(benjamin)
(In reply to Nick Alexander :nalexander from comment #4)
> mfinkle, bsmedberg: I'm uploading the locally built docs to
> people.mozilla.org/~nalexander/adjust_docs/index.html as I type.  I see a
> few small formatting issues but nothing serious.

Direct link: http://people.mozilla.org/~nalexander/adjust_docs/mobile/android/base/fennec/adjust.html
mfinkle: while writing these docs and trying to say something about the referrer intent, I ran into a question about the flow.  At https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/distribution/ReferrerReceiver.java#53 we check if the referrer source is /not/ equal to MOZILLA_UTM_SOURCE.  But the comment by the definition suggests the opposite should happen:

    /**
     * If the install intent has this source, we'll track the campaign ID.
     */
    private static final String MOZILLA_UTM_SOURCE = "mozilla";

(See https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/distribution/ReferrerReceiver.java#33.)

Is something wrong or am I missing something?
(In reply to Nick Alexander :nalexander from comment #6)
> mfinkle: while writing these docs and trying to say something about the
> referrer intent, I ran into a question about the flow.  At
> https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/
> distribution/ReferrerReceiver.java#53 we check if the referrer source is
> /not/ equal to MOZILLA_UTM_SOURCE.  But the comment by the definition
> suggests the opposite should happen:
> 
>     /**
>      * If the install intent has this source, we'll track the campaign ID.
>      */
>     private static final String MOZILLA_UTM_SOURCE = "mozilla";
> 
> (See
> https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/
> distribution/ReferrerReceiver.java#33.)
> 
> Is something wrong or am I missing something?

MOZILLA_UTM_SOURCE is only used for Campaigns that are Mozilla specific (not part of Ad Networks) or OTA distributions. An Ad Network campaign will never have MOZILLA_UTM_SOURCE set.

The code here checks to see if MOZILLA_UTM_SOURCE is not set, which means it can only be an Ad Network campaign and should be tracked via Adjust.

https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/distribution/ReferrerReceiver.java#53
Flags: needinfo?(mark.finkle)
(In reply to Nick Alexander :nalexander from comment #4)

> I have one reference needed (a blogpost?  a link to
> mfinkle's mailing list post?) or we should say something weaker or nothing
> at all.

I'd rather say nothing at all in the docs.
Attachment #8599460 - Flags: review?(mark.finkle)
Comment on attachment 8599460 [details]
MozReview Request: bz://1159277/nalexander

https://reviewboard.mozilla.org/r/7885/#review6653

::: mobile/android/base/docs/adjust.rst:54
(Diff revision 1)
> +  V/Adjust  ( 6508): 	package_name     org.mozilla.fennec_mfinkle

org.mozilla.fennec

::: mobile/android/base/docs/adjust.rst:56
(Diff revision 1)
> +  V/Adjust  ( 6508): 	android_uuid     9d239f2b-3d31-448a-9238-7dc464922276

this is my uuid. we could change a number or just say <guid>

::: mobile/android/base/docs/adjust.rst:70
(Diff revision 1)
> +  V/Adjust  ( 6508): 	gps_adid         41cef9b8-ade7-46f6-a5ca-b8f75a41e4cf

this is my uuid. we could change a number or just say <guid>

::: mobile/android/base/docs/adjust.rst:19
(Diff revision 1)
> +When is data collected and sent to the Adjust backend?

This description is almost right. We need to post to Adjust under two situations:
1. General startup (all the time for all users)
2. INSTALL_REFERRER

It would be nice to limit #1 to non-distribution installs.
In discussion with mfinkle, we're going to:

* update comments about how MOZ_UTM_SOURCE works;
* update docs to reflect that we always submit, on every App start, regardless of where the App originated (Play Store, manual install, update);
* remove any discussion of contractual arrangement;
* be transparent that Adjust backend forwards data to a set of advertisers that Mozilla opts in to;
* suggest that this is time limited, but not commit to removing it for a specific version or date.

Future work:

* not uploading at all if a distribution is present (Bug 1153396);
* not uploading multiple times -- relies on getting a callback on success.
Comment on attachment 8599460 [details]
MozReview Request: bz://1159277/nalexander

/r/7887 - Bug 1159277 - Document Adjust data collection in Firefox for Android. r=mfinkle,bsmedberg
/r/7967 - Bug 1159277 - mfinkle's review comments.  TO BE FOLDED INTO EARLIER COMMIT.

Pull down these commits:

hg pull -r ba5287c5ddf6373aa7d885e1dbda608a40f5ecf7 https://reviewboard-hg.mozilla.org/gecko/
Attachment #8599460 - Flags: review?(mark.finkle)
bsmedberg: over to you for the next round of edits.

mfinkle: definitely worth another look from you, when you have a spare moment.
Comment on attachment 8599460 [details]
MozReview Request: bz://1159277/nalexander

https://reviewboard.mozilla.org/r/7885/#review6769

::: mobile/android/base/docs/adjust.rst:19
(Diff revision 2)
> +documented https://docs.adjust.com.

"documented at"

::: mobile/android/base/docs/adjust.rst:106
(Diff revision 2)
> +The *gps_adid* is a Google Advertising ID.  It is capable of uniquely identifying a device to any

Is it worth mentioning here how users can reset this?

::: mobile/android/base/docs/adjust.rst:147
(Diff revision 2)
> +An alternative approach would be to build three jars -- one interface jar and two implementation

Let's remove this paragraph. The in-tree docs are there to document what actually is. Alternatives are confusing.
Attachment #8599460 - Flags: review?(benjamin)
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #14)
> Comment on attachment 8599460 [details]
> MozReview Request: bz://1159277/nalexander
> 
> https://reviewboard.mozilla.org/r/7885/#review6769
> 
> ::: mobile/android/base/docs/adjust.rst:19
> (Diff revision 2)
> > +documented https://docs.adjust.com.
> 
> "documented at"

Fixed.

> ::: mobile/android/base/docs/adjust.rst:106
> (Diff revision 2)
> > +The *gps_adid* is a Google Advertising ID.  It is capable of uniquely identifying a device to any
> 
> Is it worth mentioning here how users can reset this?

I don't think so.  The ID used cannot be changed by users -- I added a note to the next version about other IDs that may be used -- and the ability to forget a device requires the app token, which should not be public: see https://docs.adjust.com/en/getting-started/#testing-attribution.

> ::: mobile/android/base/docs/adjust.rst:147
> (Diff revision 2)
> > +An alternative approach would be to build three jars -- one interface jar and two implementation
> 
> Let's remove this paragraph. The in-tree docs are there to document what
> actually is. Alternatives are confusing.

Done.
Flags: needinfo?(benjamin)
Comment on attachment 8599460 [details]
MozReview Request: bz://1159277/nalexander

/r/7887 - Bug 1159277 - Document Adjust data collection in Firefox for Android. r=mfinkle,bsmedberg
/r/7967 - Bug 1159277 - mfinkle's review comments.  TO BE FOLDED INTO EARLIER COMMIT.
/r/8035 - Bug 1159277 - bsmedberg's review comments.  TO BE FOLDED INTO EARLIER COMMIT.

Pull down these commits:

hg pull -r fbdbd9d65193323b71d0d48bbcf0c33c89e74a04 https://reviewboard-hg.mozilla.org/gecko/
Attachment #8599460 - Flags: review?(benjamin)
Comment on attachment 8599460 [details]
MozReview Request: bz://1159277/nalexander

Approval Request Comment
[Feature/regressing bug #]: Adjust SDK landing.
[User impact if declined]: none.  This is just to keep the in-tree description in sync with the code.
[Describe test coverage new/current, TreeHerder]: none.
[Risks and why]: none!  Documentation and comments only.
[String/UUID change made/needed]: none.

This should get on to the 38.0.5 release branch, to go with the rest of the Adjust SDK landing.
Attachment #8599460 - Flags: review?(mark.finkle)
Attachment #8599460 - Flags: review?(benjamin)
Attachment #8599460 - Flags: approval-mozilla-beta?
Attachment #8599460 - Flags: approval-mozilla-aurora?
Comment on attachment 8599460 [details]
MozReview Request: bz://1159277/nalexander

https://reviewboard.mozilla.org/r/7885/#review6797

Ship It!
Attachment #8599460 - Flags: review+
https://hg.mozilla.org/mozilla-central/rev/6742d72b2ec8
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 40
Attachment #8599460 - Flags: approval-mozilla-beta?
Attachment #8599460 - Flags: approval-mozilla-beta+
Attachment #8599460 - Flags: approval-mozilla-aurora?
Attachment #8599460 - Flags: approval-mozilla-aurora+
Attachment #8599460 - Attachment is obsolete: true
Attachment #8620180 - Flags: review+
Attachment #8620181 - Flags: review+
Attachment #8620182 - Flags: review+
Product: Firefox for Android → Firefox Build System
Target Milestone: Firefox 40 → mozilla40
You need to log in before you can comment on or make changes to this bug.