August292014

DDOS downtime

projectwonderful.com is down right now, due to a DDOS attack that has affected our host. We’re not yet sure when we’re back up, but during this downtime a few things will happen:

  1. publishers will still make money from advertising, even though ads aren’t showing
  2. advertisers will be refunded for any charges incurred when the downtime has ended

So if you’re a publisher, you’ll get paid as you normally would’ve, and if you’re an advertiser, you won’t be charged during the downtime.  You may get notices about bids changing status or your account’s funds, but rest assured that any money spend when you couldn’t control your advertising will be refunded in full.

That said, any downtime is not acceptable to us, and events like this do not make us happy campers. A distributed denial of service attack is when lots of machines (usually hacked or under the control of other people) overload a server with requests. Our machines are built to handle a large volume of small requests from a large number of people (that’s what online advertising is, after all!) but the machines upstream of us that we don’t control were slowing down, and this was affecting other clients.

We will have more in the future! For updates, be sure to follow us on Twitter: @project1derful

May162014
We just put up a new feature, based on your requests!  When you’re searching our publishers looking for cool places to bid, sometimes it’s time-sensitive, and you want your ad showing right away.  In the past, you’d have to check each publisher to see what their approval settings were: did they allow all ads?  Maybe just ads from people who’d advertised there in the past?  Maybe they manually checked every bid?
Project Wonderful now does this filtering for you.  On the "Ratings and Restrictions" tab, there’s a new option (shown above, with lots of arrows!) that’ll let you see publishers that auto-approve all ads, or see publishers that DON’T auto-approve all ads (in case you prefer a more curated advertising environment).
Publishers: you can change your approval settings by going to "My ad boxes" and selecting “Approval settings”.
As always, thanks for being Project Wonderful members!  

We just put up a new feature, based on your requests!  When you’re searching our publishers looking for cool places to bid, sometimes it’s time-sensitive, and you want your ad showing right away.  In the past, you’d have to check each publisher to see what their approval settings were: did they allow all ads?  Maybe just ads from people who’d advertised there in the past?  Maybe they manually checked every bid?

Project Wonderful now does this filtering for you.  On the "Ratings and Restrictions" tab, there’s a new option (shown above, with lots of arrows!) that’ll let you see publishers that auto-approve all ads, or see publishers that DON’T auto-approve all ads (in case you prefer a more curated advertising environment).

Publishers: you can change your approval settings by going to "My ad boxes" and selecting “Approval settings”.

As always, thanks for being Project Wonderful members!  

March242014
March202014
A nice spring-themed logo for today, the first day of spring!
This logo was sent to us by Viktor, who made it because he’s awesome.  We asked if there was anywhere we could link when we thanked him for it, and he suggested frivbux.com: it’s a site he runs that pays you to play Flash games, and whose earnings go to charity.  Check it out! 

A nice spring-themed logo for today, the first day of spring!

This logo was sent to us by Viktor, who made it because he’s awesome.  We asked if there was anywhere we could link when we thanked him for it, and he suggested frivbux.com: it’s a site he runs that pays you to play Flash games, and whose earnings go to charity.  Check it out! 

February122014
We just rolled out a new feature to campaigns that you’ll probably really love.

Campaigns are used to bid across the network, allowing you to command huge amounts of traffic super easily, and get your message out for the best price going.  

A feature added today lets you run a campaign in terms of CPM (cost per 1000 impressions).  Your campaign will still bid in CPD (cost per day), but those bids will be adjusted in line to your CPM goal.

What this means is you can now bid across the entire network at, say, a $0.50 CPM rate, and not have to worry what CPD rate that corresponds to.  Your campaign will run the numbers and make the adjustments for you!  It’s a really easy, really cost-effective way to unlock the entire Project Wonderful network for your advertising.

Try a CPM campaign today - you can spend as much or as little as you like, and all the other features in CPD campaigns are there too!

We just rolled out a new feature to campaigns that you’ll probably really love.

Campaigns are used to bid across the network, allowing you to command huge amounts of traffic super easily, and get your message out for the best price going.

A feature added today lets you run a campaign in terms of CPM (cost per 1000 impressions). Your campaign will still bid in CPD (cost per day), but those bids will be adjusted in line to your CPM goal.

What this means is you can now bid across the entire network at, say, a $0.50 CPM rate, and not have to worry what CPD rate that corresponds to. Your campaign will run the numbers and make the adjustments for you! It’s a really easy, really cost-effective way to unlock the entire Project Wonderful network for your advertising.

Try a CPM campaign today - you can spend as much or as little as you like, and all the other features in CPD campaigns are there too!

September272013

Getting started advertising

We want advertising to be as simple and as easy as possible, but there’s going to be a learning curve no matter what you do!  To try to keep that curve flat (think more “tiny hill at the park” than “Mount Everest”) we’ve produced a “Getting started advertising” guide that walks you through the basics of advertising on Project Wonderful.  Give it a look - even if you’re a seasoned pro, you might learn about some features you didn’t know were there!

Also, it features a robot.

:o

June182013

Funds now put on hold when withdrawing!

When you take your funds out of Project Wonderful, we put that request in a queue that gets processed in one business day.  

In the past, we’d just put in the request and then process it.  But if you spent your funds during that waiting time, this could mean your withdrawal would then not go through because there were no longer enough funds in your account!

Today we’ve changed it so that when you request a withdrawal, those funds are put on hold until the withdrawal is processed.  So if you have $100 and request a withdrawal for $90, your available balance will drop to $10 right away.  If you decide you’d rather spend those funds than withdraw them, you can cancel your withdrawal request, and your balance will go back to $100 again. 

It’s a pretty simple change, but it should help out our members who sometimes had their withdrawal requests fail when they became the high bidder again.

As always, thanks for being a Project Wonderful member!

June112013

New hit tracking code is now up

The new code we mentioned in the last post is now live.  We did the rollover today at noon, so today’s stats will be a half-and-half mixture of the two tracking mechanisms, but from tomorrow onward it’s all 1:1 sampling.  Nice!  As usual, drop us a line at service@projectwonderful.com if you’ve got any questions.  And thanks for being Project Wonderful members!

June32013

New hit tracking code!

Tracking the traffic an ad box gets seems like a straight-forward problem, right? Mark whenever you get a display, and call it a day. If you see the same IP address (roughly equivalent to the same person) then you know they’ve hit the site twice.

Turns out it’s not that easy, and that’s one of the reasons you’re never likely to get matching data from two different hit-tracking applications.

First off, how are you recording this information? JavaScript hit tracking won’t get people who have JavaScript off. Server-side tracking can keep track of direct image accesses, but these are completely invisible to anything at the HTML level. Project Wonderful is an advertising network, so we’re going to records hits with both JavaScript and with fallback straight HTML. Most ad networks only use JavaScript, but we’re not most ad networks!

Next, WHAT are you tracking? Do you care about people who load the site entirely, or who just access it before clicking away? Our answer is simple: we care about who sees the ads. So if you put an ad box at the top of your page, and one at the bottom, those two ad boxes will likely record different hits, because not everyone will always wait for the full page to load. You’ll see more traffic on your top ad box, and that’s great, because that ad box is actually seeing more traffic. More people are looking at it!

Finally, there’s the matter of volume. If you’re recording every hit on a page, that means at the minimum recording what page it was on and which IP accessed it - for every single hit across the entire network. And you need to be able to process, analyze, and summarize this data in real time. Imagine all the traffic from every single site on your network being funneled into your servers. You need to be keep up!

In the past, Project Wonderful’s hit tracking scaled up as sites did: if you got 100 hits a day, we tracked every one of those, but if you got 50,000 then we would randomly sample the traffic stream. It’s sort of like how surveys work: you don’t call up every single person in the country to ask them what they think about Doritos, you call up a representative sample and extrapolate from there. But the problem with random sampling is that there’s that pesky “accurate to within 1 percentage point, 19 times out of 20” phrase you’ve often heard afterwards. When you’re randomly sampling, you’re never 100% sure you’re capturing everything, because you are by definition missing some things. It’s really unlikely, but something could slip through!

Because of this, we’ve been investing in infrastructure behind-the-scenes to move away from random sampling. Very soon, Project Wonderful will be turning on our new hit tracking code. Every single page view is now logged, processed, and analyzed in real time, and random sampling is a thing of the past. It’s an impressive feat (one that’s normally only possible when you have Google-level infrastructure) but it was something we wanted and it lets us support some new features, so it’s been something we’ve been working towards for months. This code has actually been running in parallel with our current hit code a while, which has let us debug it and ensure everything’s working as it should, but very soon we’ll be switching over and displaying this new data exclusively.

We’ll make a new post when it’s online, so you’ll know. Smaller sites will notice no difference, as random sampling doesn’t affect them. Larger publishers won’t notice much of a difference in their numbers: page views will be almost identical, but unique visitors will likely be smaller (now that we’re tracking every single display, we can give more accurate numbers here).

Stay tuned, and we can’t wait to share the exciting new features we’ve got coming down the pipe!

October312012

Asynchronous code

UPDATE: Connectivity has been restored.  While we still recommend you use our asynchronous code - it’ll prevent any future downtime from having an impact on your site - there’s a much easier way of getting it now.  Just log in, go to “My ad boxes” and click on “code”.  We’ll leave this up for reference, but didn’t want to force you with manually editing HTML if you don’t have to. :) 

*** 

We’ve offered asynchronous code for a long time now: it’s an improved version of our basic code that means than when our site goes down, your ads still load quickly.  Even though our site is currently down, you can still convert your older ad box code to the asynchronous version that won’t hold up your site.  

First, look at the PW code already in your page source.  It may have these lines:
d.projectwonderful_adbox_id = “#####”;
d.projectwonderful_adbox_type = “#”;

Or it may have this lines:
s += “src = http://www.projectwonderful.com/gen.php”;
s += “?id=#####&type=#”;

In either case, make note of the numbers marked by ##### and #. 
* ##### is a three-to-five digit number, which is your ad box’s ID
* # is a number between 1 and 7, which indicates the ad box type (square, leaderboard, and so on)

There are two blocks of code to replace your old one with.  The first is the same for every ad box, and begins the process of contacting our server for the winning bids:

<!— Project Wonderful Ad Box Loader —>
<script type=”text/javascript”>
   (function(){function pw_load(){
      if(arguments.callee.z)return;else arguments.callee.z=true;
      var d=document;var s=d.createElement(‘script’);
      var x=d.getElementsByTagName(‘script’)[0];
      s.type=’text/javascript’;s.async=true;
      s.src=’//www.projectwonderful.com/pwa.js’;
      x.parentNode.insertBefore(s,x);}
   if (window.attachEvent){
    window.attachEvent(‘DOMContentLoaded’,pw_load);
    window.attachEvent(‘onload’,pw_load);}
   else{
    window.addEventListener(‘DOMContentLoaded’,pw_load,false);
    window.addEventListener(‘load’,pw_load,false);}})();
</script>
<!— End Project Wonderful Ad Box Loader —>

The second block should be pasted immediately below the first, and will display the ad box in your page once our server has sent a response.  (That’s the part that will prevent your whole page from hanging if our servers go down.)

<!— Project Wonderful Ad Box Code —>
<div style=”text-align:center;”><div style=”display:inline-block;” id=”pw_adbox_#####_#_0”></div></div>
<!— End Project Wonderful Ad Box Code —>

Note, the ##### and # in that second block.  Those are the spots where you’ll fill in the numbers you retrieved from your old code.

Generally you can simply grab the code from the “Publishing -> My ad boxes -> Code” page.  Even though the site is down, we’re still available to help you at  service@projectwonderful.com if you run into any problems.  Thanks for your patience - we’re working on getting connectivity restored!

← Older entries Page 1 of 2