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

Contextual Onboarding Pixels #3177

Conversation

alessandroboron
Copy link
Contributor

@alessandroboron alessandroboron commented Aug 2, 2024

Task/Issue URL: https://app.asana.com/0/1206329551987282/1207569383033366/f

Description:

Adds Pixels for Contextual Onboarding.

Note
You may wonder why we renamed pixels with _unique. Since SwiftUI can redraw the view multiple times and because the user can interact with the browser, e.g. refresh the page, I’ve renamed the pixels _unique so I can take advantage of the UniquePixel class. ODRI is across the change as per comment.

Steps to test this PR:

Prerequisites:

  1. Add return VariantIOS(name: "mb", weight: 1, isIncluded: VariantIOS.When.always, features: [.newOnboardingIntro]) in DefaultVariantManager at line 145.
  2. Add newInstallCompletion(self) in DefaultVariantManager at line 128.
  3. Delete the App.

SCENARIO 1 - Linear Flow

  1. Run the new onboarding flow and wait for the first dialogue to appear on screen.
  2. Tap on “Let’s do it”.
  3. Tap on “Skip”.
  4. The New Tab Page should appear on the screen with a new Dax dialogue suggesting DDG searches.
  5. Ensure that m_dx_try_a_search_unique is fired in console log.
  6. Tap on one of the searches. E.g. “local weather”.
  7. Ensure that m_onboarding_search_option_tapped_unique is fired in the console log.
  8. A Dax dialogue informing the user about the DDG search should appear.
  9. Ensure that m_dx_s_unique is fired in the console log
  10. Tap on the "Got it!” button.
  11. The Dax dialogue should update and suggest to the user a list of websites to try.
  12. Ensure that m_dx_try_visit_site_unique is fired in the console log.
  13. Tap on one of the websites “ebay.com”.
  14. Ensure that m_onboarding_visit_site_option_tapped_unique is fired in the console log.
  15. The Dax dialogue should inform the user that multiple trackers have been blocked. The Privacy Dashboard icon should be highlighted.
  16. Ensure that m_dx_wt_unique is fired in the console log.
  17. Tap on the privacy icon button.
  18. Ensure that m_privacy_dashboard_first_time_used_unique is fired in the console log. If the app is just installed daysSinceInstall parameter should be 0. If the privacy icon was highlighted from_onboarding parameter should be true.
  19. Ensure also that existing pixel mp is fired.
  20. The privacy dashboard should be presented on the screen.
  21. Tap the “Done” button on the Privacy Dashboard to dismiss the Privacy Dashboard.
  22. The Privacy Dashboard icon should not be highlighted anymore.
  23. Tap the “Got It!” Button.
  24. The Dax dialogue should update and educate the user on the Fire Button. The Fire Button should show the pulse animation.
  25. Ensure that m_dx_fe_s_unique is fired in the console log.
  26. Tap the “Fire” button.
  27. The Dax dialog should dismiss and the fire button should stop the pulse animation.
  28. Tap “Close Tabs and Clear Data”.
  29. The new tab page should have a Dax dialogue titled “You’ve got this”.
  30. Ensure that m_dx_end_new_tab_unique is fired in the console log.
  31. Enter a URL in the address bar and press enter.
  32. Ensure that m_second_sitevisit_unique is fired in the console log.

Scenario 2 - Custom Searches

  1. Run the new onboarding flow and wait for the first dialogue to appear on screen.
  2. Tap on “Let’s do it”.
  3. Tap on “Skip”.
  4. The New Tab Page should appear on the screen with a new Dax dialogue suggesting DDG searches.
  5. Instead of tapping one of the suggested searches, input' flying duck' in the address bar and press enter.
  6. Ensure that m_onboarding_search_custom_unique is fired in the console log.
  7. Tap on the "Got it!” button.
  8. The Dax dialogue should update and suggest to the user a list of websites to try.
  9. Instead of tapping one of the suggested searches, input www.facebook.com and press enter.
  10. Ensure that m_onboarding_visit_site_custom_unique is fired.
  11. Ensure that m_dx_sm_unique is fired.
  12. Visit another website
  13. Ensure that m_second_sitevisit_unique is fired in the console log.

Scenario 3 - Site Owned by Major Trackers

  1. Run the new onboarding flow and wait for the first dialogue to appear on screen.
  2. Tap on “Let’s do it”.
  3. Tap on “Skip”.
  4. The New Tab Page should appear on the screen with a new Dax dialogue suggesting DDG searches.
  5. Tap whatsapp.com in the address bar.
  6. A dialog explaining that FB owns whatsapp should appear.
  7. Ensure that m_dx_so_unique is fired in the console log.

Scenario 4 - Site is Major Tracker

  1. Run the new onboarding flow and wait for the first dialogue to appear on screen.
  2. Tap on “Let’s do it”.
  3. Tap on “Skip”.
  4. The New Tab Page should appear on the screen with a new Dax dialogue suggesting DDG searches.
  5. Tap facebook.com in the address bar.
  6. A dialog explaining that we can’t protect the users from FB should appear.
  7. Ensure that m_dx_sm_unique is fired in the console log.

Scenario 4 - Site with no Trackers

  1. Run the new onboarding flow and wait for the first dialogue to appear on screen.
  2. Tap on “Let’s do it”.
  3. Tap on “Skip”.
  4. The New Tab Page should appear on the screen with a new Dax dialogue suggesting DDG searches.
  5. Tap duckduckgo.com in the address bar.
  6. The Pesky trackers dialog should appear
  7. Ensure that m_dx_wo_unique is fired in the console log.

Scenario 5 - Final Dialog from Contextual Dax

  1. Run the new onboarding flow and wait for the first dialogue to appear on screen.
  2. Tap on “Let’s do it”.
  3. Tap on “Skip”.
  4. The New Tab Page should appear on the screen with a new Dax dialogue suggesting DDG searches.
  5. Tap on one of the searches. E.g. “local weather”.
  6. A Dax dialogue informing the user about the DDG search should appear.
  7. Tap on the "Got it!” button.
  8. The Dax dialogue should update and suggest to the user a list of websites to try.
  9. Tap on one of the websites “ebay.com”.
  10. The Dax dialogue should inform the user that multiple trackers have been blocked. The Privacy Dashboard icon should be highlighted.
  11. Tap the “Got It!” Button.
  12. The Dax dialogue should update and educate the user on the Fire Button. The Fire Button should show the pulse animation.
  13. Navigate to another website, eg. www.repubblica.it
  14. End of Journey dialog “You’ve got this” should appear.
  15. Ensure that m_dx_end_tab_unique pixel fires in the console log.

Definition of Done (Internal Only):

Copy Testing:

  • Use of correct apostrophes in new copy, ie rather than

Orientation Testing:

  • Portrait
  • Landscape

Device Testing:

  • iPhone SE (1st Gen)
  • iPhone 8
  • iPhone X
  • iPhone 14 Pro
  • iPad

OS Testing:

  • iOS 15
  • iOS 16
  • iOS 17

Theme Testing:

  • Light theme
  • Dark theme

Internal references:

Software Engineering Expectations
Technical Design Template

Copy link

github-actions bot commented Aug 2, 2024

🚫 The Asana task linked in the PR description is not added to iOS App Board project.

  1. Verify that the correct task is linked in the PR.
    • ⚠️ Please use the actual implementation task, rather than the Code Review subtask.
  2. Verify that the task is added to iOS App Board project.
  3. When ready, remove the bot: not in app board label to retrigger the check.

@github-actions github-actions bot added the bot: not in app board Added by automation for pull requests with tasks not added to iOS App Board Asana project label Aug 2, 2024
Copy link

github-actions bot commented Aug 2, 2024

Warnings
⚠️ PR has more than 500 lines of code changing. Consider splitting into smaller PRs if possible.

Generated by 🚫 dangerJS against 4acae57

Copy link
Contributor

@samsymons samsymons left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pixel testing steps worked for me, though I had an edge case issue with the flow that I sent over MM.

@alessandroboron alessandroboron merged commit e79d9ad into AleSab/implement-contextual-onboarding Aug 5, 2024
13 of 14 checks passed
@alessandroboron alessandroboron deleted the alessandro/contextual-onboarding-pixels branch August 5, 2024 00:52
alessandroboron added a commit that referenced this pull request Aug 5, 2024
Task/Issue URL: https://app.asana.com/0/1206329551987282/1207569383033366/f
**Description**:
Adds Pixels for Contextual Onboarding.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: not in app board Added by automation for pull requests with tasks not added to iOS App Board Asana project
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants