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

💡 API Use Case: advertisement for project sponsors #769

Closed
gr2m opened this issue Jan 28, 2017 · 33 comments
Closed

💡 API Use Case: advertisement for project sponsors #769

gr2m opened this issue Jan 28, 2017 · 33 comments

Comments

@gr2m
Copy link

gr2m commented Jan 28, 2017

I had a chat with @piamancini on this and she asked me to share it here.

One of the 3 big reasons why I think Open Collective is so revolutionary is that it’s about the exposure that sponsors get. And we could built upon that and go beyond just listing sponsors in our README, but actually have dedicated sponsor slots on our website etc.

I’m part of the maintainers team at Hoodie (hood.ie). We had a sponsor program in the past which was quite successful, but we had to shut it down due to the overhead. If we could use Hoodie’s collective as a way to receive payments, then half of the overhead is already gone.

The other half would be

  1. Show a banner on hood.ie for the week’s sponsor
  2. Send out two tweets from @HoodieHQ

For the 2nd half, we could build a simple "sponsor message management system" that would use Open Collective’s APIs. The API requirements would be

  1. A webhook that calls a configurable URL every time someone makes a payment trough the Open Collective
  2. Ideally we could embed a payment form into the external service itself in which a company could directly sign up for the pre-defined plan (or one-time payment), and the payment would directly go to our collective

I think the ideal flow from a sponsor’s perspective would be like this:

  • Sign up as official sponsor at sponsor.hood.ie. We inform the sponsor that the price is $1,000 USD / week.
  • The sign up form lets the user put in their information about their company, select an available weekly spot, enter their company’s information, enter their sponsor message to be shown on the website and their messages to be tweeted by @HoodieHQ
  • Then in the last step, Open Collective handles the payment. We don’t show all the options that we show on our Collective page, instead the price should be hard coded, but they payment goes to Hoodie’s Collective’s account and the transaction appears on Hoodie collective’s page. The payment should not be processed until the sponsor was accepted by the community, see below.

What would be special about this sponsor message solution is that it would not work like today’s advertisement networks. We would not inject a message with JavaScript from an external page, instead the service would send a pull request to update the Website’s source code (and maybe the project’s README). That would bring the added value that sponsors would receive some valuable backlinks which is good for their SEO. And the community can reject sponsor messages as they go trough the PR review process. In that way it’s very Open Sourcy ™️ There would also be no problem with tracking users etc which would help with acceptance from the Open Source community.

The sponsor does not go through Hoodie’s Collective page, we don’t show the options for backers and the lower sponsor levels. Instead we would only show the option to become a sponsor for one week for sth like $1,000 USD. But the payment would be handled by Open Collective and the money would appear in the transactions on the collective page.

I think a service like this would go hand-in-hand with the narrative that Open Source does not need charity from companies. Instead explore the potential of collaborating on eye height to the benefit of both sides and aligned with the values and goals of the respective Open Source communities.

Please let me know what you think.

PS: if anybody is up for collaborating on such a "sponsor message management system", ping me :) In a nutshell, I would build it open source with a "deploy to XYZ" button on the README so every community can easily host it themselves and adapt as needed. Hosting Open Source projects is free with services like now, these are exciting times, all pieces are in place, all it takes is a few people and some time to make it happen :)

@gr2m gr2m changed the title 💡 Usecase: advertisement for project sponsors 💡 API Use Case: advertisement for project sponsors Jan 29, 2017
@asood123
Copy link
Member

asood123 commented Feb 2, 2017

A system like this would be pretty cool. What do you think are the minimum pieces you need to try it?

@gusaus
Copy link

gusaus commented Feb 9, 2017

We've been having a discussion about making a Polymer element for this. If this is a viable option, possibly we can put a group together and make this happen.

Any thoughts?

@gr2m
Copy link
Author

gr2m commented Feb 9, 2017

If Polymer or other kind of widget, having a Stripe-esque payment form that we can put anywhere we want and money would go transparently into our Open Collective – that would be superb

@gusaus
Copy link

gusaus commented Feb 9, 2017

@btopro pointed me to https://www.webcomponents.org/element/vic10us/stripe-form, so I 'think' it's possible. Would be good to get some more input from those who could actually build it, if they had the means.

@btopro
Copy link

btopro commented Feb 9, 2017

you can fork / ingest elements from polymer into your builds. Doesn't mean someone doesn't need to know how to do that but any front-end dev should be able to pick this tech up quickly. This could also be used in place of your current "People who contribute to this" widget to ensure that your injectable could import the associated polymer template. Polymer auto scopes things to the tag so that they have a better chance of reflecting the intended design of the element instead of just using <div whatever>people here</div> and have it be affected by the site's its injected into

@gusaus
Copy link

gusaus commented Feb 11, 2017

Think this would be a win - win if we got this working. Do we need @asood123 or someone else from OpenCollective to take the lead? If cost is an issue, we could put our OpenProducer collective to use https://opencollective.com/openproducer

@gr2m
Copy link
Author

gr2m commented Feb 11, 2017

The first step would be a working prototype of an embedded HTML form on a website outside of opencollective.com that let’s someone pay a given amount and the money lands in the projects open collective. I would not worry about polymer right now, it'll be just sugar.

I don’t know the state of the Open Collective API. I don’t know if this is technically possible right now, @asood123 or @xdamman could probably tell us or point us to the right places?

@xdamman
Copy link
Contributor

xdamman commented Feb 12, 2017

The only API we have at the moment is to get a JSON array of all the backers or sponsors of a collective, see https://github.com/OpenCollective/OpenCollective/wiki/API

As a first version, I'd consider redirecting people to the collective page to the contribute section: http://opencollective.com/hoodie#support

Or to a specific donation URL, e.g. http://opencollective.com/hoodie/donate/20 (you can generate those links from http://opencollective.com/hoodie/transactions)

Please let us know what else you would need.
We could for example add an endpoint to get the summary of a collective (current balance, current yearly budget, total number of backers/sponsors). That would be easy to do.

@gr2m
Copy link
Author

gr2m commented Feb 12, 2017

Or to a specific donation URL, e.g. http://opencollective.com/hoodie/donate/20

This is cool!

Feedback to the button: Can we change the wording of "donating" to "contributing" or just "pay" to align with the wording on rest of Open Collective?

Please let us know what else you would need.

Can we add a callback URL that gets called if the transaction is done or fails?

@xdamman
Copy link
Contributor

xdamman commented Feb 12, 2017

I have a PR ready for customizing the verb in the custom URL, e.g. https://opencollective.com/hoodie/[donate|pay|contribute]/:amount/:interval/:description
opencollective/opencollective-website#651

@gusaus
Copy link

gusaus commented Feb 13, 2017

So collectives can create specific donation URLs on their own?
https://opencollective.com/openproducer/donate/100
https://opencollective.com/openproducer/donate/1000

If so, would there be a way to set the interval? (monthly, yearly, one time, etc.).

@piamancini
Copy link
Contributor

@gusaus just add /monthly or/yearly

@gusaus
Copy link

gusaus commented Feb 14, 2017

This is great - had no idea you could already do this! So if you're already able to create donation URLs, we're back to what's suggested by @gr2m

The first step would be a working prototype of an embedded HTML form on a website outside of opencollective.com that let’s someone pay a given amount and the money lands in the projects open collective. I would not worry about polymer right now, it'll be just sugar.

Is there no way to embed just the buttons created by donation URLs? @btopro Isn't this what we may be able to do with Polymer?

@btopro
Copy link

btopro commented Feb 14, 2017

Yes!

@xdamman
Copy link
Contributor

xdamman commented Feb 14, 2017

Yes, just go to https://opencollective.com/openproducer/transactions and click on "request money".
It will let you customize the amount, frequency and description.
The URL format is /:collective/[donate|pay|contribute]/:amount(/[month(ly)|year(ly)])/:description

e.g. https://opencollective.com/openproducer/donate/100/month/become%20a%20sponsor

@gr2m
Copy link
Author

gr2m commented Feb 14, 2017

@xdamman can we add a redirectTo parameter to the request money URL?

@xdamman
Copy link
Contributor

xdamman commented Feb 15, 2017

I like that idea. We could. We could redirect the user to https://redirectUrl?amount=100&currency=USD&interval=month&descriprion=become%20a%20sponsor but how would you be sure that it's a valid transaction? We could use a signature or we could simply redirect to https://redirectUrl?transactionId=4272 to force you to call our API to get the data of the transaction (and therefore be sure that the transaction happened).

Also, note that sometimes credit cards bounce or refunds happen. So need a way to synchronize every so often the actual list of transactions.

Let me know your thoughts. Happy to spend some time on this.

@gr2m
Copy link
Author

gr2m commented Feb 16, 2017

Maybe combine the two? https://redirectUrl?amount=100&currency=USD&interval=month&descriprion=become%20a%20sponsor&transactionId=4272

Is there a possibility of an error case? If yes I'd also add an ?error=... so we can handle it on the redirected page.

Having a callback parameter would be we need to build a custom shop page and use Open Collective for payments :) Much excite

@xdamman
Copy link
Contributor

xdamman commented Feb 21, 2017

We talked about it. We first need to generate a UUID per transaction because right now we are referencing them with a sequential ID. This is a problem because people could easily guess them and this could represent a security risk.

I'm working on this. Still a work in progress. #803

@gusaus
Copy link

gusaus commented Feb 22, 2017

Yes, just go to https://opencollective.com/openproducer/transactions and click on "request money".
It will let you customize the amount, frequency and description.
The URL format is /:collective/[donate|pay|contribute]/:amount(/[month(ly)|year(ly)])/:description
e.g. https://opencollective.com/openproducer/donate/100/month/become%20a%20sponsor

It seems like we're close to providing 'almost' the same detail as you can with Patreon.

edit your rewards 2017-02-22 12-39-50

Also - It would be ideal to have these levels appear on our OpenCollective page with a way to share or embed -
openproducer is on open collective 2017-02-22 12-57-57

Does that make sense?

@balupton
Copy link

balupton commented Feb 23, 2017

Hey everyone, over at Bevry (we receive sponsors via several services and sources) and we've just pushed up our work at https://github.com/bevry/sponsored which seems to include what this issue seeks.

It will pull in sponsor details across several services (patreon, gratipay, open collective) and sources (stripe, coinbase, etc) and then correlate that with your reward tiers (via configuration) to expose the results over a JSON API (and eventually a web component) to show in your readmes (via https://github.com/bevry/projectz) as well as on your websites.

So far I've got the patreon data fetching going - and will add Open Collective soon, didn't realise they had an API already! Great news!

Should have more to show next week as we get it up and running for Bevry users.

@xdamman
Copy link
Contributor

xdamman commented Mar 7, 2017

Sorry it took so long but we had to refactor a bunch of things to make this happen.

But here it is: https://github.com/OpenCollective/OpenCollective/wiki/API

Let me know how it goes. Can't wait to see what you will come up with :-)

@gusaus
Copy link

gusaus commented Mar 23, 2017

Would it be possible to create a widget like this?

donate to fight for the future 2017-03-22 18-03-22

@xdamman
Copy link
Contributor

xdamman commented Mar 24, 2017

Yes, you could already do it and linking each button to their corresponding url, e.g.

(you can customize the description after the last /, just make sure it's url encoded)

@gusaus
Copy link

gusaus commented Mar 31, 2017

Very cool! @btopro Do you think we have all the ingredients to make a Polymer/OpenCollective widget similar to https://donate.fightforthefuture.org/?

@btopro
Copy link

btopro commented Mar 31, 2017

@gusaus yes. From my reviewing of the platform the last few days and beating my head against the wall I can say that Polymer 1.0 is the way to go. 2.0 is still in RC phase and upgrading at a later point in time is trivial for the most part from my working w/ making 1 elements and upgrading to 2. There may even be an automated upgrade much like the Drupal coder upgrade extension had for 6 to 7.

@gusaus
Copy link

gusaus commented Apr 12, 2017

I believe this issue is related - opencollective/opencollective#339

@ericholscher
Copy link

ericholscher commented Jul 10, 2017

Just wanted to touch base here with an idea that @gr2m and myself have been talking about. We have been experiments w/ Ethical Ads (non-tracking, first party hosted) over at Read the Docs for the past year: http://docs.readthedocs.io/en/latest/ethical-advertising.html

Currently we aren't distributing money back to projects because of the logistics involved. We are running ads for the community, as a way to give back, but it would be interesting to be able to pay some of the revenue forward.

I think the above issue has most of the idea -- where we could pay a % of ad revenue for larger RTD projects. We are looking at doing something where the projects help sell ads for their projects docs. This would allow them to leverage their network, and the hope would be they could sell ads at a higher value since they have more knowledge of their specific market. Giving them a % of the revenue would then be simple, because they are able to find relevant sponsors, and the ads will be more valuable.

I think there's a really fascinating angle here where we can further "target" the ads without tracking users, but instead by leveraging our communities knowledge of the companies and members inside of it. This would lead to better ads, that are worth more, and leverage our distributed and unique communities.

That said -- getting devs to be able to actually effectively sell sponsorship at scale seems like a profoundly hard problem. I think that is likely the key -- to distribute talking points and collateral, effectively training them as a remote OSS sponsorship sales force... You know, simple :)

@xdamman
Copy link
Contributor

xdamman commented Jul 11, 2017

I love it. Totally aligned on the values.

Could people use your ad network by embedding a script tag (or iframe or straight HTML) and assign the profit to the open source collective of their choice? Couple of people have expressed interest for that. See also https://twitter.com/vamseeJasti/status/882362106346995713

Feel free to join us to chat more about this on slack: https://slack.opencollective.org - there is a #adnetwork channel.

@coderberry
Copy link

coderberry commented Aug 4, 2017

Our company (codesponsor.io) has a platform currently that is set up to place "ethical ads" similar to the guidelines that both RTD (@ericholscher) and Carbon Ads are following. We allow any developer that has OSS projects to be paid directly (via bitcoin) or be paid via the Open Collective. We are using text-only "sponsored by" ads that are highly relevant to the developer community.

@gr2m
Copy link
Author

gr2m commented Aug 4, 2017

@cavneb I've seen https://github.com/codesponsor/dev, looks great! Have you double checked with GitHub if the ads added to the GitHub READMEs are conform with their terms of service? If yes, maybe add it to the README, because that was the first question I had :)

@coderberry
Copy link

coderberry commented Aug 4, 2017

Great point @gr2m. According to their Terms of Service we believe we are compliant. However, I have a meeting set up to clarify.

@znarf
Copy link
Member

znarf commented Sep 9, 2018

No recent activity on the issue, closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants