Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Google Location Data import experience #69

Closed
penrods opened this issue Mar 16, 2020 · 13 comments · Fixed by #410
Closed

Improve Google Location Data import experience #69

penrods opened this issue Mar 16, 2020 · 13 comments · Fixed by #410
Labels
Enhancement Enhancing an existing feature or a request High Priority High importance / High value
Milestone

Comments

@penrods
Copy link
Contributor

penrods commented Mar 16, 2020

The Import functionality is great, but still tricky to use. It might take a few iterations to get it to what we want, but here are some thoughts:

Break the Import into three stages, kinda like an old-school Wizard.

  1. "Intro" page.
    Explain what this does and give instructions to log in and start the process w/Google.
    Q: Can we explore the DOM on the webview? It would be cool to watch for an indicator that the request for a takeout has happened, then move to the "Waiting" step described below.
  2. "Waiting on Google takeout" page
    If the user returns to Import page, show a message that we are still waiting on the takeout file.
    Include a "Start over" button to go back to Step 1 in case something fails.
  3. "Import Complete"
    After an import completes, the results of the import should be remembered and displayed. E.g.
    "28 day of data imported from Mar 1 - Mar 28".
    Also have an "Import again" button that goes back to step 1.

During Step 2 the user should be be able to leave the app or go back to the main page. We should have a background task look for the takeout file when one is pending, so you don't have to go back to Import. The app should show a notification when the takeout file is found and process completes.

Discussion is welcome. I expect the implementer will find challenges and opportunities to improve this sequence. For instance, there might be a step 2.5 that helps with the download of the Takeout file.

@rparet rparet added this to Backlog in Private Kit Kanban Mar 19, 2020
@penrods
Copy link
Contributor Author

penrods commented Mar 20, 2020

Another thought from Google Play store:

As a privacy conscious individual (and the trust the app is looking for),
I find it a bit hard to stomach when it asks for my account details in a
webview inside the app. This helps people unfamiliar with Google
takeout but I would prefer to be given the option to do it manually
(and not risk my account credentials).

Let's consider adding instructions for those who are worried about this. They can do it independently -- although the fact that it is open source does allow them to see what is happening behind the scenes, too.

@rparet rparet added Enhancement Enhancing an existing feature or a request For next release High Priority High importance / High value labels Mar 20, 2020
@rparet rparet added this to the v2.0 milestone Mar 22, 2020
@rparet rparet moved this from Backlog to Dev In progress in Private Kit Kanban Mar 22, 2020
@greggles
Copy link
Contributor

I had several options from Google Takeout and I didn't know which to select. The instructions should likely give advice on these:

  • Delivery method: download link via email, Add to drive, Add to Dropbox, Add to OneDrive, Add to Box.
  • Frequency: Export once vs. Export every 2 months for 1 year
  • File type and size: .zip or .tgz, break apart exports larger than...2GB, 10GB etc.

I think resolving this would likely also fix #114.

@dankegel
Copy link

dankegel commented Apr 8, 2020

I just tried PrivateKit version 0.5.11 on android 10, and can confirm the import functionality is confusing; I got it to download, but was confused about whether it succeeded.

After ten minutes I did see my trace show imported data, so it does work, it's just hard for non-computer-types to use.

@diarmidmackenzie
Copy link

Completely agree with this. Extract from my recent test report:

https://docs.google.com/document/d/1Uh1A-h7Ddm6t-rAlHOM90xnsrkLEG9SGcTolf3uIbgQ/edit

"[DHM-S1-9 - Existing 69] I see a lot of problems with the embedded Google panel. It creates a complex UI, that I think many users will not be able to successfully navigate. If possible, it would be much preferable to have this function available natively in the App, with a simplified UX.
o There are lots of options exposed, and it is not obvious which steps to take
o General google navigation is available, which allows the user to navigate all over their google account, and get completely lost.
o There is a “Help” link, but it links to help for Google Account, rather than help for the operation the user is actually trying to perform.
o Likewise with the “Send feedback” link – this is available, but for Google.
o Lack of control of the content Google display is a risk, e.g.
§ If you create user documentation of this process (online, in-app, tutorial videos etc.) there is a risk of changing their UI.
§ Google Help warned me that they were running with a “limited team in light of COVID-19” – not a message you’d want misinterpreted as coming from Safe Paths.
o Android “Back” button moves back in the SafePaths app, not in the embedded Google page.
o Reduced screen available meant that some Google pages I was able to navigate to were cropped on the right.
o Confusing options available for data export like “Export every 2 months for a year”.
o “File type & size” – should it be .zip or .tgz? 2GB?
o I am in Italy, and the embedded google panel was in Italian, even though the rest of the app was in English."

Unlike other users, I was not able to get the import to succeed, but I'll raise that as a separate issue.

@diarmidmackenzie
Copy link

Further evidence that the UX is very problematic. I let my wife try to run through the proces without briefing on her phone.

Several novel problems hit:

  • she didn't recall her google password. The Android password manager normally remembers it for her, but that doesn't operate in this context.
  • she didn't read the text in the embed carefully, and just scrolled down looking for the blue button. She therefore overlooked the place where you have to choose a "Delivery method"
  • when she found it, she had no idea what delivery method to use. Most of them were meaningless to her (e.g. Add to OneDrive, Add to Box). She evntually guessed that "Send download link by email" was the best choice (correct, but lucky)
  • she was not then sure what to do next (I believe she has to open her email account to download the file, and told her this)
  • she used Gmail app. This then launched the "Google browser".app on her phone (this is diferent from Chrome). That app didn't have permissions to write to storage, so we would have had to find the relevant permissions menu and tweak it.
  • at this point she gave up. She said that if she'd not been helping me out, she'd have given up long before & deleted the app.

@kenpugsley
Copy link
Collaborator

Please note ... #410 is is progress that will rework this experience.

@diarmidmackenzie
Copy link

Is this a duplicate of #410? Shall we just close this, or does this add anything extra?

@tstirrat
Copy link
Contributor

#410 is the code change to improve the import flow:

Lets try to get some of these UX issue fixed, but be aware that Google does not provide a nice progrmmable interface to getting this data because it is inside their account settings, so there will be some UX issues that we cannot solve.

But we can hopefully imporove the text guides, or descriptions so that users can complete the journey effectively.

@E3V3A
Copy link

E3V3A commented Apr 13, 2020

This look very nice!

But the mere potential, that the user has 1 GB to download, is quite a scary idea. What will happen to a lot of people is the following:

  • They live in a location with poor coverage, resulting in getting only 3G or throttled 4G.
  • They're on a pre-paid data plan that only have 1-4 GB/months. (Very common!)
  • They have a data plan that is limited to X GB/month and anything after that will have mafia rates usually based on a per MB's (not GB's).

Worst case scenario:

  • User ending up with no phone service at all or
  • stopped out for any more data usage.

That said, we should warn users to only download when on a reliable WiFi connection.

@dankegel
Copy link

dankegel commented Apr 13, 2020

Actual data usage if they just check location is much lower. (i.e. the Google Takeout
interface lets the user select what data types to export. I chose just "location".
Looking at the URL it uses, I suspect #410 pre-selects the location data type for the user,
which would mean it'd be hard for users to screw up and try to download all types.)

The remaining wording is scary, but that's a minor problem.

@E3V3A
Copy link

E3V3A commented Apr 13, 2020

@dankegel What do you mean with just check location?
I guess it depend on what they have done in the last 2 weeks. Sitting at home, then yes, but biking around the city or driving to other cities, then no.

@sergesemashko
Copy link
Contributor

well, I think we are trying to go too far in a single code change and maybe baby steps made iteratively would be a better option.

let me explain current state of import feature in develop branch which actually doesn't work at all:

  1. IOS throws out a blob as text to the web view and nothing happens
  2. filename to import is hardcoded to 2020_March.json instead of dynamically figuring which month file to import based on current date
  3. somebody brought up a privacy/security concern from GooglePlay review about entering google account password in the web view
  4. Takeout MUST BE downloaded inside the web view in order to import
  5. Downloaded files are stored on the phone filesystem and never deleted

PR #410 is bringing in:

  • Google takeout is opened in the browser app instead of web view (addresses issues 1, 3, 4)
  • Takeout can be downloaded either through google drive app (which I believe uses only Wifi) or via manual download link click in Takeout.
  • "Import locations" button opens a document picker to import Take out archive
  • Only the data from current and previous months is imported (addresses 2 and beginning of a month issues)
  • There is a file clean up at the end of import (addresses issue 5)

Yes, there might be a concern with big files, somebody mentioned 7 years of locations is about 500mb. Unfortunately, Take out provides only one option to download either all or no locations, no option to select time range.

Thanks for testing and the feedback, at the moment it's kind of hard to extract any actionable points other than updating the instructions, so further suggestions/guidance is still needed.

Yeah, even improved version still requires more improvements 😄 but if user follows instructions and downloads either through link or google drive it should be no problem importing.

If it was up to me, I'd suggest to wrap up and merge #410 as I believe something (what works) is better than nothing, keep the improvement conversation and open another PR when it makes sense.

@tstirrat
Copy link
Contributor

Yes I agree that we should get #410 merged soon, and we can improve the instructions/steps if they need more clarification

Private Kit Kanban automation moved this from Dev In progress to Done Apr 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement Enhancing an existing feature or a request High Priority High importance / High value
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

9 participants