Author Topic: Simple, self-sustaining and easy to implement referral program  (Read 10902 times)

0 Members and 1 Guest are viewing this topic.

Offline valzav

  • Sr. Member
  • ****
  • Posts: 294
    • View Profile
I've edited OP and refined description a little bit and added more implementation details.

Offline valzav

  • Sr. Member
  • ****
  • Posts: 294
    • View Profile
The major issue with this is that people would download the client on several computers to abuse the $10 reward. They would claim the reward on tons of different computers and then transfer all the funds to their own wallet. People WILL find a way to abuse this.

This is not computer or wallet installation that counts, but account registration + unique coupon redemption, the only way to get a coupon is to pass proof of person process. I expect there would be some cheating, but the percentage should be small relative to overall network effect.

Offline islandking

  • Sr. Member
  • ****
  • Posts: 378
  • The king of the island
    • View Profile
Here is the high-level description:

Delegates can campaign to run faucet/proof of person software on their websites and spend a part of the delegate payroll on bringing new users into the system by running a facet and paying some amount of BitUSD per identified user that registers account.
E.g. it can be 80% of the payroll and 10 BitUSD per user/account.
The faucet would work as described below:
1. Somebody visits faucet website
2. There would be a clear call to action (CTA) “Download BitShares client and register an account and get 10 BitUSD for free”
3. Visitor clicks CTA link a goes over proof of person/identity verification process
4a. After finishing step 3 visitor is suggested to download the client and install it
4b. Also visitor gets a ’10 BitUSD coupon link’ to his email address (this link is supported by BitShares client, I’ll elaborate more on this)
5. User (let’s call him or her user from this point) installs BitShares client and clicks on coupon link
6. BitShares client/wallet opens coupon redemption page suggesting user to choose his/her account name
7. After user submits account name, BitShares client communicates with faucet website checking the coupon's validity, if coupon valid the faucet registers user’s account and credits it with 10 BitUSD
8. Faucet generates new coupon, passes it into the client and client suggests user to share it with friends on Facebook, Twitter, forums, etc, each friend that registers account brings additional 5-10 BitUSD to the user, also friend starting from step #1 gets his 10 BitUSD.

Please note that this process solves initial account registration issue - user installs the client only after he or she is proven to have funds to pay account registration fee.


Spending 80% allows each delegate to register no more than 200 users each month within the current market cap, if there would be more users willing to register an account, the faucet can put them on a waiting list.
Having a waiting list makes BitShares looks like something scarce which is good factor for successful marketing campaign, also this process resembles “invitations only” campaigns that were proven to be very successful (think gmail)


Implementation.
1. We need open source faucet/proof of person software that anybody can download and run as a website.
2. This software should be able to generate coupons and have json api to communicate with BitShares client/wallet
3. faucet software should be able to track referral links posted by users
4. BitShares client/wallet should be able to communicate (via JSONP AJAX) with faucet to check and redeem coupons and making faucet to register user’s account.
5. Delegates running this service need make all the records public so the community can audit referral links, coupons generated, etc and vote out non-effective delegates.

Probably it’s too early to run full scale campaigns before we have stable network 1.0, simple lightweight client and on/off ramp services, but we need to try this on a smaller scale sooner rather than later, let’s have a single delegate running this and watch the results, if this would work I’m sure community vote in more delegates running campaigns like this. Also voting in/out delegates may help us to figure out how much we want to pay for user acquisition and how much delegates can collect as compensation.

The major issue with this is that people would download the client on several computers to abuse the $10 reward. They would claim the reward on tons of different computers and then transfer all the funds to their own wallet. People WILL find a way to abuse this.
I've been working on a new electronic cash system that's fully peer-to-peer, with no trusted third party. - Satoshi

Offline valzav

  • Sr. Member
  • ****
  • Posts: 294
    • View Profile
High-level description:
We can have marketing delegates that run faucet and finance referral program out of their payroll. The referral program pays some amount of BitAsset to identified unique users that download BitShares client and create account. For instance delegate can spend 80% of the payroll to fund referral program and pay 10 BitUSD per user/account created.
There would be also an initiative for users to invite their friends, e.g. each user referred a friend can get additional 10 BitUSD if friend installs client software and registers account.

The faucet would work as described below:
1. Somebody visits faucet website
2. There would be a clear call to action (CTA) “Download BitShares client, register account and get 10 BitUSD”.
3. Visitor clicks CTA link a goes over proof of person/identity verification process.
4a. After finishing step 3 visitor is suggested to download the client and install it.
4b. Also visitor gets a ’10 BitUSD coupon’ to his email address.
5. User installs BitShares client and clicks on a coupon link or just copies coupon code as text.
6. BitShares client/wallet opens coupon redemption page suggesting user to choose his/her account name and enter coupon code (if coupon linked clicked the coupon would be inserted automatically).
7. After user submits account name, BitShares client communicates with faucet website checking the coupon's validity, if coupon valid the faucet registers user’s account and credits it with 10 BitUSD.
8. Faucet generates new coupon, passes it back to client and client suggests user to share it with friends on Facebook, Twitter, forums, etc, if friend registers account, user gets 10 BitUSD and also friend going over identification process (steps #1-#7) gets his 10 BitUSD.

Advantages of this kind of referral program are:
- It's simple in terms of UX - user just goes over proof of person process, downloads and installs BitShares client, redeems coupon and chooses an account name, account name gets registered immediately.
- It's easy to implement - this doesn't require any toolkit changes or hard forks.
- It's self-sustaining - delegates compete to run the faucet - so stake holders voting for delegates, vote for some parameters of the campaign, such as niche served, marketing message, price per acquisition, so if stake holders think the dilution caused by the campaign not worse the value that new users bring it, stake holders vote out the delegate.
- This kind of campaign creates scarcity - spending 80% allows each delegate to register no more than 200 users each month within the current market cap, if there would be more users willing to register an account, the faucet can put them on a waiting list. Having a waiting list makes BitShares looks like something scarce which is good factor for successful marketing campaign, also this process resembles “invitations only” campaigns that were proven to be very successful (think gmail).

Implementation.
1. We need open source faucet/proof of person software that anybody can download and run as a website.
2. This software should be able to generate coupons and have json api, so BitShares client/wallet would be able to communicate with faucet.
3. Faucet software should be able issue and redeem coupons.
4. BitShares client/wallet should be able to communicate (via JSONP AJAX) with faucet to check and redeem coupons and making faucet to register user’s account.
5. Delegates running this service have to make all the records public so the community can audit referral links, coupons generated, etc and vote out non-effective delegates.

In order to BitShares client to find which faucet it needs to talk to redeem a coupon, delegates running faucets needs to publish faucet endpoint urls.
In general delegates can run not only faucet software, but provide some other services, so they can publish a list of services, e.g.:

Code: [Select]
"services": [
        {
            "name": "faucet",
            "version": "1.0",
            "coupon-prefix": "A123", // this is need for client to figure out what faucet to user to redeem coupon
            "url": "http://delegate-faucet.com/api/faucet/1.0"
        },
        {
            "name": "exchange",
            "version": "1.0",
            "url": "http://delegate-faucet.com/api/exchange/1.0",
            "app": {
                "url": "http://github.com/somedelegate/exchangeapp",
                "version": "0.1.2",
                "checksum": "1232142343243242"
            }
        },
        {
            "name": "escrow",
            "version": "1.0",
            "url": "http://delegate-faucet.com/api/escrow/1.0"
        }
    ]
Some of the services can be supported by the client out of the box like faucet or escrow service, some of them may require installation of angular module - delegates publish github link and client downloads and installs it, when delegates update app's version, client will automatically update it. If delegates removes this application from a list of provided services, client can uninstall the application. When delegate is voted out, the application would be no longer available.

Probably it’s too early to run full scale campaigns before we have stable network, simple lightweight client and on/off ramp services, but we before we get there we try this on a smaller scale, let’s have a single delegate running this and watch the results, if this would work, I'm sure stake holders would vote in more delegates running referral programs like this for different niches. Also voting in/out delegates may help us to figure out how much we want to pay for user acquisition and how much delegates can collect as compensation.

UPDATE 2
To prevent delegates from cheating and to have a single delegate efficiency metric (KPI) I suggest to remember first used faucet name or id somewhere in on the client/wallet side and make it to pass it to some centralized location each time the client is started, we can have a http callback address on bitshares.org for this, all the data gathered should be made pulicly available so everybody can see how many users opened the client multiple times and what faucets or referral programs have aquired those users.
Probably instead of a centralized location, we can find a way for clients to pass this data to all delegates on chain or off chain.

UPDATE 3
Some more features can be implemented on top of this, e.g. sending BitUSD to any email address directly from the wallet. Faucet operator just needs to have BitShares account so all the transfers to this account that include email address in the memo field would be forwarded to specified email address. There is no need for sender to create faucet account. Receiver needs to login to faucet via OAuth and verify email address.

UPDATE 4
This approach doesn't require a delegate position. It only requires a faucet with some funds that would be used to pay up referrals, it can be as low as 0.5BTS per user - just amount needed to register an account. Having a delegate running this kind of campaign just makes things simple.

« Last Edit: November 25, 2014, 08:13:46 pm by valzav »