Page MenuHomePhabricator

[M] Locally track Native ApplePay donation events
Closed, ResolvedPublic3 Estimated Story Points

Assigned To
None
Authored By
HNordeenWMF
Aug 12 2024, 7:37 PM
Referenced Files
Restricted File
Oct 1 2024, 3:48 PM
F57578666: CleanShot 2024-10-01 at 17.44.36@2x.png
Oct 1 2024, 3:45 PM
F57495702: image.png
Sep 10 2024, 1:06 PM
F57495647: CleanShot 2024-09-10 at 14.38.33@2x.png
Sep 10 2024, 1:06 PM
F57495747: image.png
Sep 10 2024, 1:06 PM

Description

Background

The Apps team is building a Year-in-Review report that shows App users a summary of their recent engagements with Wikipedia and the App.

This work is part of the FY2425 annual plan Wiki Experiences 3.2 KR to see a 50% increase in the number of donations via touch points outside of the annual banner and email appeals per platform

We plan to have a section of the feature recognize past donors for their contributions, and invite readers to donate to the Wikimedia Foundation. To effectively do this, the feature will need to know which users have donated recently.

User stories

As a reader viewing my end-of-year summary in the App, I want my donations to appear alongside materials about donating, so that I can feel recognized for my past contributions, and receive personalized content about how donations are used.

Required
  • Record successful Native ApplePay donations as a local event, with a timestamp
  • Identify whether donation was one-time or the first donation of a recurring donation
  • Allow users to clear their "in-app" or "local" donation history in Settings
Nice-to-have
  • One-time/first donation amount is recorded for native payments, and it can be totaled for future reference in Year-in-Review reports

Future consideration:

  • When building Year-in-Review, track which appinstallIDs were identified as a donor and saw donor-specific materials during their view of Year-in-Review report.
QA

Can be tested in 7.6.0 (4183)

Event Timeline

Tsevener renamed this task from Locally track donation events to [M] Locally track donation events.Aug 29 2024, 5:21 PM
Mazevedo added a subscriber: scblr.

Hi @scblr!
This ticket has a UI component, but it didn't go through you before I started digging into it, so I'm sending it back to your capable hands.
The requirements mentioned allowing users to see and delete their local donations. So, I added a menu item under account, displaying a simple list with a button to enable deletion.
I created this UI as simply as possible to allow me to test my implementation, so please don't consider any of my decisions here.
Here's a video of how it's working so far.

Thanks, @Mazevedo – this looks good so far.

1) Would it be possible to swipe to delete these list items (like in the Wikipedia languages screen)? An additional Edit button at the top right would provide additional affordance:

image.png (2×1 px, 177 KB)

2) Use sentence case: Donation history instead of Donation History

CleanShot 2024-09-10 at 14.38.33@2x.png (1×662 px, 113 KB)

3) I can imagine that this could work well together with T373714

4) The empty state could be optimized, e.g. using the space to fundraise:

Illustration: To be designed

Copy: You haven’t donated to Wikimedia from this device yet. Help us to ensure that reliable knowledge remains accessible for all and free of advertisement.

Button: Donate now

Tagging @HNordeenWMF to check if there’s any interest in using that space (re: donation nudges)

Hi @scblr!

Thanks for taking a look at that. For your items:

  1. Yes! We can create this in a component-y way so that we can reuse it in the future. What do you think?
  2. We have an empty state Component with an image, text, and a button. Here's an example from Watchlists. Could we reuse that?

Simulator Screenshot - iPhone 15 Pro Max - 2024-09-10 at 10.29.43.png (2×1 px, 163 KB)

Hi @scblr!

Thanks for taking a look at that. For your items:

  1. Yes! We can create this in a component-y way so that we can reuse it in the future. What do you think?

Cool, a list component like this might be helpful in the future! Let’s bring it up in planning?

  1. We have an empty state Component with an image, text, and a button. Here's an example from Watchlists. Could we reuse that?

Simulator Screenshot - iPhone 15 Pro Max - 2024-09-10 at 10.29.43.png (2×1 px, 163 KB)

Sounds good! I’ll think about a suitable illustration for this state.

@scblr @HNordeenWMF I feel like the design is causing scope to get quite large, we did not estimate for a new screen. The easiest thing we could do is a simple button somewhere in Settings that says "Clear local donation history" without having to display each donation event line by line, swipe to delete, empty states, etc. Would that fulfill legal's requirements @HNordeenWMF?

  • True @Tsevener – a clear button would suffice from a design perspective.
  • In addition, we could hide the donation history button when there’s no local donation history (to spare the empty state design/implementation) [CC @Mazevedo]

Thanks for all the work here @scblr and @Mazevedo
I agree with @Tsevener : let's keep it to a simple button that says "Clear donation history" that only appears if we have any local donation history recorded. That's on me for the requirement originally saying "Allow users to view and clear their "in-app" or "local" donation history in Settings", when the legal requirement is only for allowing the user to clear it. As long as we on the back-end can utilize their list of donations, it doesn't need to be displayed to the user at this point.

Let's go with that, and we can create a task for future improvements where users can view their donation history, and where we take advantage of the empty state as Robin suggested.

What about this suggestion @HNordeenWMF? 👇

  • In addition, we could hide the donation history button when there’s no local donation history (to spare the empty state design/implementation) [CC @Mazevedo]

@scblr @HNordeenWMF Just hiding the donation history would be much faster than implementing a custom empty view. We can get that merged pretty quickly based on the worked I have already done

No custom empty view is needed right now

Viewing the detailed donation history & custom empty state have been split off into a task here: T374996: Allow users to view donation history & leverage empty state
We will not do this as part of Wikiwrapped - but if we continue to reference donations in other ways throughout the upcoming fundraising work, and find that users want more visibility, we can pick that task up.

Hi @Mazevedo when you pick this back up during Wikiwrapped sprint: how were you progressing in trying to record Web donations in addition to Native ApplePay? This comment from Dmitry (android is doing a similar thing for the Contributiosn dashboard) may be helpful for the Web donations: https://phabricator.wikimedia.org/T374472#10135226

Hi @Mazevedo when you pick this back up during Wikiwrapped sprint: how were you progressing in trying to record Web donations in addition to Native ApplePay? This comment from Dmitry (android is doing a similar thing for the Contributiosn dashboard) may be helpful for the Web donations: https://phabricator.wikimedia.org/T374472#10135226

Hi @HNordeenWMF! Since it was nice to have and the UI part hadn't been estimated, I didn't go into the web payments for the first round. I can use Dmitry's findings to persist the web payment info as well when I pick this ticket back.

HNordeenWMF raised the priority of this task from Low to Medium.Sep 30 2024, 6:48 PM

Thanks for picking this back up @Mazevedo. If this task goes quickly, I'd like to see if it could be squeezed into the current 7.6.0 beta before it goes to production. (So tracking is in place before the upcoming campaigns starting on Oct 3).

@scblr @HNordeenWMF I made a video with the updated version available here. I added a couple of alerts to give the user some feedback since now we're just using a simple button. Let me know what you think.

Looks good @Mazevedo – we could use the heart.text.square.fill symbol for this specific case:

{F57578675}

thanks @Mazevedo, if it's easy to add to the alert, it could be improved with one clarifying line:

Confirm deletion
This will only apply to donations made from this device.
Cancel / Delete

Looks good @Mazevedo – we could use the heart.text.square.fill symbol for this specific case:

{F57578675}

@scblr this older part of the code needs a PDF, could you export the symbol for me?

@scblr - your icon sounds like a suggestion, not a required update. (Let me know if I misinterpreted)
In the interest of time and getting this out before campaigns begin, @Mazevedo it's ok if this moves forward without the icon update.

HNordeenWMF renamed this task from [M] Locally track donation events to [M] Locally track Native ApplePay donation events.Oct 1 2024, 10:13 PM
HNordeenWMF updated the task description. (Show Details)

I'll move it into Needs code review to make it into the release, but @scblr whenever you're back just send me the pdf, it's a small change!

Tsevener updated the task description. (Show Details)
Tsevener added a subscriber: Mazevedo.

Looks good, thanks @Mazevedo! Could you clarify what can be referenced in Wikipedia Year in Review?

  • The fact that they donated
  • Amount given
  • Monthly / one time