Bitcoin Forum
April 25, 2024, 06:09:36 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 »  All
  Print  
Author Topic: Anonymous Ads - bitcoin advertising network [migration to v.2]  (Read 44668 times)
arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 16, 2012, 05:04:28 PM
Last edit: February 16, 2012, 08:38:04 PM by arsenische
 #81

Would be easier if you provided them a library or even a service to do that

Thanks. I was thinking that after helping several advertisers I could develop a solution that would better fit their needs. But now I think I can make & publish some simplistic example that would work in most cases.

Update: ok, here it is: https://github.com/arsenische/aaap

1714068576
Hero Member
*
Offline Offline

Posts: 1714068576

View Profile Personal Message (Offline)

Ignore
1714068576
Reply with quote  #2

1714068576
Report to moderator
"You Asked For Change, We Gave You Coins" -- casascius
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714068576
Hero Member
*
Offline Offline

Posts: 1714068576

View Profile Personal Message (Offline)

Ignore
1714068576
Reply with quote  #2

1714068576
Report to moderator
1714068576
Hero Member
*
Offline Offline

Posts: 1714068576

View Profile Personal Message (Offline)

Ignore
1714068576
Reply with quote  #2

1714068576
Report to moderator
1714068576
Hero Member
*
Offline Offline

Posts: 1714068576

View Profile Personal Message (Offline)

Ignore
1714068576
Reply with quote  #2

1714068576
Report to moderator
Tritonio
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


Vanity of vanities; all is vanity...


View Profile
February 17, 2012, 03:12:09 AM
 #82

Hello again and thanks for the prev explanation. I am using the official bitcoin client though so what affected me is probably a bug(?)

Can you describe the ad selection algorithm exactly? As I understand it now it goes like this:
1. A dice drop decides whether it will display a bootstrapping ad or not. 10% to be a bootstraping ad (which is ANY ad that still has unspent bootstrap money, right?).
2. It evaluates each ad by the money it has given you in the last month (or in the last accounting period which is different for each ad?) divided by the impressions it had.
3. It shows the ad with the most profitable evaluation. Maybe it would make more sense to pick a random ad weighted by the value calculated in step 2 instead of just the best one?
flix
Legendary
*
Offline Offline

Activity: 1227
Merit: 1000



View Profile
February 17, 2012, 09:02:05 AM
 #83

Received my first withdrawal even ´though I was only testing this on low traffic sites. Love it!
arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 17, 2012, 05:17:08 PM
Last edit: May 20, 2012, 01:23:51 AM by arsenische
 #84

Can you describe the ad selection algorithm exactly? As I understand it now it goes like this:
1. A dice drop decides whether it will display a bootstrapping ad or not. 10% to be a bootstraping ad (which is ANY ad that still has unspent bootstrap money, right?).
2. It evaluates each ad by the money it has given you in the last month (or in the last accounting period which is different for each ad?) divided by the impressions it had.
3. It shows the ad with the most profitable evaluation. Maybe it would make more sense to pick a random ad weighted by the value calculated in step 2 instead of just the best one?

Ad selection algorithm (without minor details):

Code:
$isBootstrapped = mt_rand()%10==0;                                                                                                                
if (!$isBootstrapped)
  if (!LoadRandomAdForAffiliate())
    $isBootstrapped = true;
if ($isBootstrapped)
    LoadBootstrappedAd();

LoadBootstrappedAd query:
Code:
SELECT * FROM Ads WHERE rating >= $filter ORDER BY rand()*$maxBootstrapScore/(1+bootstrapScore) limit 1

Table Ads contains all ads. Bootstrap score = [sum of deposits with  >= 6 confirmations] - [sum of deposits with >= 24*6*billingCycle + 6 confirmations] (measured in satoshies). If bootstrapped ad is shown for affiliate, then it becomes connected to that affiliate (appears in Relays table).

LoadRandomAdForAffiliate query:
Code:
SELECT * FROM Relays WHERE affiliateAddress=$affiliateAddress ORDER BY rand()*$maxActiveCPI/(1+activeCPI) limit 1

Update 2012-05-20: algorithm changed so that it doesn't depend on past impressions, see details in new post.

Each pair of connected <ad, affiliate> has 1 record in table Relays. ActiveCPI is de-facto CPI for this relay during last billingCycle days.

Billing cycle is 30 days by default. In future advertisers will be able to specify the billing cycle upon Ad creation (and bootstrap score will be divided by that number).

So, answering your questions:
1) correct, but with filtering according to ads' ratings and affiliates' preferences
2) it is not divided by number of impressions... all ads have billing cycle of 30 days now, but in future they will be different (allowing advertisers to specify the speed of spending their money and duration of advertising campaign)
3) it seems to work as you suggested

SgtSpike
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
February 17, 2012, 05:57:00 PM
 #85

Interesting project!  When are stats updated?
arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 17, 2012, 06:00:53 PM
 #86

Interesting project!  When are stats updated?

Thanks! Stats are currently updated every 3 minutes.

Tritonio
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


Vanity of vanities; all is vanity...


View Profile
February 18, 2012, 02:15:26 AM
 #87

Thanks for the explanation arsenische!
One more question: Why do you multiply by $maxBootstrapScore. Does it change the ordering?
arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 18, 2012, 09:52:00 AM
 #88

One more question: Why do you multiply by $maxBootstrapScore. Does it change the ordering?

Wow... It looks like normalizing values is not required in these queries. Thanks for the hint!

Bro
Full Member
***
Offline Offline

Activity: 218
Merit: 100



View Profile
February 18, 2012, 01:58:14 PM
 #89

what an interesting concept.

is it working?
Tritonio
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


Vanity of vanities; all is vanity...


View Profile
February 19, 2012, 05:18:58 AM
 #90

More questions:
1. What happens to the bootstrap money and when? Are they automatically distributed based on something (and what is that?), or do I still control who will get them?
2. If I want to pay based on products sold for example, how do I do it? If I pay directly to the partner addresses I see in the CSVs, how is the affiliate (or your system) going to know who paid that affiliate? If I pay via btcrelay, how will the system know which ad is paying that btcrelay paylist? I suppose they have to know somehow who is paying or else how will they

Excuse me if you have answered these things before but right when I grasped the model, I got confused by the technical details. :-D
arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 19, 2012, 11:46:54 AM
 #91

More questions:
1. What happens to the bootstrap money and when? Are they automatically distributed based on something (and what is that?), or do I still control who will get them?
2. If I want to pay based on products sold for example, how do I do it? If I pay directly to the partner addresses I see in the CSVs, how is the affiliate (or your system) going to know who paid that affiliate? If I pay via btcrelay, how will the system know which ad is paying that btcrelay paylist? I suppose they have to know somehow who is paying or else how will they

Excuse me if you have answered these things before but right when I grasped the model, I got confused by the technical details. :-D

Even though it is somehow explained at How It Works page, I am grateful for questions like that because I want more people to understand this unusual system.

1. Bootstrap money go to Anonymous Ads, they are the main source of its profit. For this money it connects the bootstrapped ad to affiliates (i. e. gives it proportional share of 10% of affiliates' impressions and generates unique bitcoin addresses for each pair <ad, affiliate that displays this ad>).

Right now I use that money to support affiliates on behalf of advertisers (advertisers don't do it yet, but affiliates need to get paid).

2. At step 1 Anonymous Ads generated unique bitcoin address for each pair of <ad, connected affiliate>. So when it receives money to that bitcoin address, it knows which ad paid to what affiliate (and thus can select randomly one of the most profitable ads to be shown for that affiliate).

The list of ads connected to affiliate is shown at affiliate's ads page (for example, http://anonymousads.com/affiliate/1/ads). If you hover the ad's link, you'll see the generated bitcoin address for that pair of <ad, affiliate> in URL. Ads are ordered according to probability of being shown for that affiliate.

Tritonio
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


Vanity of vanities; all is vanity...


View Profile
February 19, 2012, 03:21:21 PM
 #92

Even though it is somehow explained at How It Works page, I am grateful for questions like that because I want more people to understand this unusual system.
I've read it but I didn't see what happens to the bootstrap money anywhere. :-) Maybe you should write that somewhere there explicitly to avoid confusion.
Quote
Right now I use that money to support affiliates on behalf of advertisers (advertisers don't do it yet, but affiliates need to get paid).
I see. I'll drop a few bitcents every now and then on the bittit ad.
Quote
2. At step 1 Anonymous Ads generated unique bitcoin address for each pair of <ad, connected affiliate>. So when it receives money to that bitcoin address, it knows which ad paid to what affiliate (and thus can select randomly one of the most profitable ads to be shown for that affiliate).

The list of ads connected to affiliate is shown at affiliate's ads page (for example, http://anonymousads.com/affiliate/1/ads). If you hover the ad's link, you'll see the generated bitcoin address for that pair of <ad, affiliate> in URL. Ads are ordered according to probability of being shown for that affiliate.
That's perfect. It means that I can even pay manually if the volume is low enough. Just perfect. :-)

Thanks for the answers!

BTW it could be usefull to show the current average and maximum bootstrap score in the stats page to let us get an idea of how often we are going to appear in bootstrap ads. ;-)

Also in the stats page you say: CPI = 0.09983719 btc per thousand impressions
Don't you mean CPM = 0.09983719?
arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 19, 2012, 04:54:56 PM
 #93

what an interesting concept.

is it working?

thanks.. should be working... but I'd like to hear about it from advertisers since they are the ones that can evaluate the quality of traffic they receive for their money Smiley

arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 19, 2012, 09:50:07 PM
 #94

I've read it but I didn't see what happens to the bootstrap money anywhere. :-) Maybe you should write that somewhere there explicitly to avoid confusion.
Added info about it into the hint here.

Quote
BTW it could be usefull to show the current average and maximum bootstrap score in the stats page to let us get an idea of how often we are going to appear in bootstrap ads. ;-)
Bootstrap scores are shown in the Ads list (in descending order). I added the estimated values you are asking about into blue box at Stats page.

Quote
Also in the stats page you say: CPI = 0.09983719 btc per thousand impressions
Don't you mean CPM = 0.09983719?
Fixed that.

Thanks for your feedback and for supporting Anonymous Ads!

Tritonio
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


Vanity of vanities; all is vanity...


View Profile
February 22, 2012, 05:53:41 AM
 #95

Could we have ads served via a script? I don't really fancy the frames and the blog image ad is always white and too wide. Could you serve script so that we can include ads like this:

Code:
<a href='http://anonymousads.com/userbar/58/click'><script src='http://anonymousads.com/userbar/58/script'></script></a>
All the script must do is a document.write if I am not mistaken.

That would allow us to make the ad text wrap or change it's style.

I don't know what this would do with image ads though. I think that best solution (for us) would be for the script to take some parameters like this:

Code:
<a href='http://anonymousads.com/userbar/58/click'><script src='http://anonymousads.com/userbar/58/script/200/100'></script></a>
should return either text or an image ad that fits within a 200x100 pixel box.

That way we can request ads based on how space we've got available. ;-)


I've also got two questions.
What happens if I put two different affiliate ads in one page?
What happens if I put the same affiliate ad two times in a page?
arsenische (OP)
Legendary
*
Offline Offline

Activity: 1199
Merit: 1012


View Profile
February 22, 2012, 02:25:50 PM
 #96

Could we have ads served via a script?

Thanks for your proposal, I partially implemented it. Please try something like:

Code:
<script src='http://anonymousads.com/a/58?js' type='text/javascript'></script>

You can customize the look & size with CSS, for example:

Code:
 <STYLE type="text/css">
   .anonymousads {border:1px solid blue;width:160px;height:100px; padding:5px;margin:0px;position:relative;background-color:#FFA;font-size:0.8em;overflow:auto;}
   .anonymousads p {position:absolute; top:5px; left:5px; padding:0px; margin:0px;color:#077;}
   .anonymousads a {color:#770;font-size:0.8em}
   .anonymousads a:hover {color:#AA0;}
   .anonymousads small {color:red;position:absolute; bottom:5px; right:5px;}
 </STYLE>

(see it here)

Quote
That way we can request ads based on how space we've got available. ;-)

Yes, we'll need this kind of mechanism for graphic ads. I am going to rework rendering of graphic ads to allow this feature.

Quote
What happens if I put two different affiliate ads in one page?

If ads belong to different affiliates, then different ads are likely to be shown.

Quote
What happens if I put the same affiliate ad two times in a page?

If it is an image ad, then the same ad will be shown till the end of the browser session.
If it is an iframe or javascript, then it depends on browser caching behavior.

Anyway, only one click and impression for unique ip during 24 hours will be counted.

Tritonio
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


Vanity of vanities; all is vanity...


View Profile
February 22, 2012, 03:55:19 PM
Last edit: February 22, 2012, 05:11:07 PM by Tritonio
 #97

Excellent! I'm already using it on bittit and blended it into the site theme. I'll start using it in my other websites too. :-)
matthewh3
Legendary
*
Offline Offline

Activity: 1372
Merit: 1003



View Profile WWW
February 25, 2012, 03:09:26 AM
 #98

It's still only paying peanuts tho out of 478 impressions and 16 clicks I've been paid 0.03361597BTC so like £0.10 while AdSense pays me over £0.80 per click.

Tritonio
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


Vanity of vanities; all is vanity...


View Profile
February 25, 2012, 03:31:25 AM
 #99

It's still only paying peanuts tho out of 478 impressions and 16 clicks I've been paid 0.03361597BTC so like £0.10 while AdSense pays me over £0.80 per click.

1. It's still new so until it balances out with the other ad services it might need some time.

2. Adsense sucks ballz... They've closed an account which violated no rule at all just because someone or some people (nobody knows who) was/were causing "suspicious clicks" as Google's described them. And instead of just not paying for those click which the owner of the site had no way to control AT ALL, they shut down the account, no questions asked. Well they gave the owner the right to appeal but they only repeated "suspicius clicks" in their answer and kept the account terminated. So good luck reaching the payout when you site is used by a ten thousand users. One asshole is probably enough to get your account terminated.

3. Wait 30 days. Some people might by waiting for the end of the 30 day payout period to pay their affiliates. You might get some more then.
1QaZxSw2
Member
**
Offline Offline

Activity: 89
Merit: 10



View Profile
February 25, 2012, 04:36:22 AM
 #100

It's still only paying peanuts tho out of 478 impressions and 16 clicks I've been paid 0.03361597BTC so like £0.10 while AdSense pays me over £0.80 per click.

1. It's still new so until it balances out with the other ad services it might need some time.

2. Adsense sucks ballz... They've closed an account which violated no rule at all just because someone or some people (nobody knows who) was/were causing "suspicious clicks" as Google's described them. And instead of just not paying for those click which the owner of the site had no way to control AT ALL, they shut down the account, no questions asked. Well they gave the owner the right to appeal but they only repeated "suspicius clicks" in their answer and kept the account terminated. So good luck reaching the payout when you site is used by a ten thousand users. One asshole is probably enough to get your account terminated.

3. Wait 30 days. Some people might by waiting for the end of the 30 day payout period to pay their affiliates. You might get some more then.

The worst part is all monies in your account are lost if your account is terminated. The appeal process is JUST ONE EMAIL that you can send, which will receive a reply that basically restates the complaint. I have yet to hear of a successful appeal or even a non-form letter reply to any appeal.

Ad-sense is total BS and needs to die.
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!