Fundraising tech/Roadmap/Campaign fallback Sub-national targeting

Request For Proposal edit

Mediawiki PHP/Javascript CentralNotice (contract): Campaign fallback, Sub-national targeting edit

Contact: David Strine

Deadline: Open until filled

Location: Remote/Telecommute

General Background: edit

CentralNotice is the Wikimedia movement’s centralised announcement delivery system. Through the use of web banners, which consist of CSS, HTML and Javascript. The system delivers messaging for both Fundraising and Programmatic purposes through a wiki gui interface, without the need for deployments.

The system provides a number of key features in the delivery of banners:

  • Campaign Scheduling
  • Campaign Targeting (based on interface language, country and device)
  • Banner diet

Background links:

Project Description: edit

The Fundraising Tech team at Wikimedia Foundation (WMF) is seeking a contractor engineer to partner with us on two features in CentralNotice. We are seeking proposals for an adjustment to CentralNotice regarding Subnational Targeting and Campaign Fallback.

Subnational Targeting

Increase the targeting ability in CentralNotice. This will allow campaign creators to communicate with a smaller subset of MediaWiki users in a given country and reduce banners for other users.

Campaign Fallback

Expand the fallback system between campaigns. This is logic and functionality which switches over to lower priority campaigns when available, but does not work on the banner level.

Project Requirements: edit

Subnational Targeting

Regional (sub-national) targeting based on ip-derived location information sourced from Maxmind. An API for accessing this data already exists and is used by CentralNotice for country-level targeting client-side. The new feature should build on the existing country-level mechanism, and will include an admin interface component as well as a client-side selection component.

More Information:

Campaign Fallback

Expand campaign priority system to fallback to lower or equal priority campaigns on a per-user basis. It should use data stored in the browser regarding impressions shown to this specific user. Specifically, it should integrate with the current Impression Diet feature, which limits banners shown to individual users.

Both functionalities will be part of the MediaWiki CentralNotice extension. The specific programming languages will be JavaScript and PHP.

No closed-source, proprietary solutions will be considered and work will need to be made available under the GNU General Public License 2.0 or later.

Desired Outcome: edit

David Strine and, or Joseph Seddon must be able to perform light user testing or be shown a demonstration of this user experience and approve the experience.

Subnational Targeting:

UI should be provided for a CentralNotice admin to target subnational areas in the campaign settings.

This project only requires testing for targeting in Canada and the US but functionality should be compatible with all geographies.

Campaign Fallback:

A campaign manager should be able to set campaigns to switch when high priority campaigns have run out of impressions so that lower priority campaigns can be shown without active intervention.

Campaign fallback Phabricator task

We expect this to be production code. Please see the code conventions below. Code should be submitted as gerrit patches and will be reviewed by the Fundraising Tech team members who may require changes before merging the code to CentralNotice. The feature should at least be stable enough to be added to the Beta cluster to be considered “done”. We are available to explain details of CentralNotice and the release process in more detail to aid in proposals and budget estimation.

Stakeholders: edit

WMF Sponsor: Joseph Seddon, David Strine

Technical Lead: Elliott Eggleston

Engineering Support: Andrew Russell Green, Elliott Eggleston

Timeline and Cost Estimates: edit

Ideally, we are hoping to get this initial component completed in a six-month time frame (completed by June 2019), but please indicate in your proposal how long you think the work will take, along with your cost estimate and/or hourly rate.

Submissions: edit

To summarize, your proposal should include:

  • A resume or CV and a statement of your prior experience with MediaWiki;
  • A summary of the steps you would take in approaching the work, using PHP and Javascript;
  • An estimate of the time required, and;
  • Either a fixed cost or hourly rate and estimated total hours to complete the project.

If you have clarifying questions you would like answered before submitting a proposal, feel free to send them to [someone] and we’d be glad to answer them. When you are ready to submit your proposal, send it to [Someone] at that same email, and we’ll be in touch.

About Wikimedia Foundation: edit

Wikimedia Foundation is the nonprofit organization that supports Wikipedia and the other Wikimedia free knowledge projects. Our vision is a world in which every single human can freely share in the sum of all knowledge. We believe that everyone has the potential to contribute something to our shared knowledge, and that everyone should be able to access that knowledge, free of interference. We host the Wikimedia projects, build software experiences for reading, contributing, and sharing Wikimedia content, support the volunteer communities and partners who make Wikimedia possible, and advocate for policies that enable Wikimedia and free knowledge to thrive. The Wikimedia Foundation is a charitable, not-for-profit organization that relies on donations. We receive financial support from millions of individuals around the world, with an average donation of about $15. We also receive donations through institutional grants and gifts. The Wikimedia Foundation is a United States 501(c)(3) tax-exempt organization with offices in San Francisco, California, USA.