Closed

Ad network to run on Google App Engine

This project received 1 bids from talented freelancers with an average bid price of $2550 USD.

Get free quotes for a project like this
Employer working
Skills Required
Project Budget
$30 - $5000 USD
Total Bids
1
Project Description

I need someone to develop a CPC ad network that will run on the Google App Engine. Features will include click-fraud prevention, keyword and geolocation targeting, and prioritization by eCPM.

## Deliverables

The ad network will be organized as follows: Each user will be able to act as both publisher and advertiser. Users will need to be able to generate an ad tag that they can place on a webpage that will display an ad. They should be able to specify the keywords for that page in the tag in a JavaScript variable. This is all they should need to act as publisher. When the JavaScript in the ad tag fetches ads, the ads should be formatted similarly to Google AdSense text ads: 1-6 ads should be shown, depending on the format of the ad. All of the ads for that tag should be fetched with a single call to the server. When a visitor clicks on an ad, the system should perform anti-click-fraud checks. If the click passes those checks, the appropriate amount of money should be taken out of the advertiser's campaign budget (see below). 10% of that money should go to the ad network; 90% should go to the publisher. As an advertiser, the user should be able to create a "campaign" which consists of mutually exclusive ads. This means that if one ad from the campaign is shown on a web page, no more ads from that campaign should be shown. If there are not enough ads which match the appropriate criteria, the system should pick global ads (specified with a special keyword, such as +*+global+*+ or something similar). If there are still not enough ads to fill all the spots, the system should show nothing for the spots which can't be filled with ads. The campaign will be targeted by keywords and/or geolocation. The campaign will have multiple ads in it. A campaign should only be allowed to run if it's funded for enough clicks to have at least 2 clicks per ad; that way, some statistics can be gathered for each ad for the purpose of optimization. The ads in the campaign will have a headline that should span one line, text that should span at most three lines, and a URL that isn't shown. When an ad is created, the URL should be sent to the [url removed, login to view] for shortening; this will allow the ad network to use Google's, [url removed, login to view]'s, and others' spam- and malware-fighting resources in order to prevent visitors from going to bad links. There should be a facility for visitors to register complaints about ads. Please use as simple an implementation as possible, as I will be modifying the effects of these complaints. The most important thing is that each complaint is stored and related to the relevant ad. This will allow me to develop on my own a means of dealing with inappropriate or malicious ads. Each time an ad is shown non-fraudulently, a counter for the number of impressions for that ad should be incremented. Each time an ad is clicked non-fraudulently, a counter for the number of clicks for that ad should be incremented. Every so often, the CTR and max eCPM should be calculated for each ad and saved to indexed properties. When a campaign's per-click bid is updated, it should update the max eCPM property for each ad contained under that campaign based on the CTR. When ads are requested, ads that match the geotargeting/keyword targeting criteria should be sorted by max eCPM and retrieved such that there are enough matching ads for the ad format, and no campaign has more than one ad in the set. The price for a click on each ad should be set so that the eCPM is equal to the lowest eCPM of the set of ads to be shown, similar to a Dutch auction (and the way Google and Facebook price ad clicks). When an ad has 0 clicks, its CTR and max eCPM should be calculated as though it has been clicked on once. When an ad has 0 impressions, its CTR and max eCPM should be calculated as though it has 1 impression in order to avoid divide-by-zero errors. This also has the feature of showing brand new ads until they have some impressions and possibly clicks in order to be able to calculate statistics for the ads. The scope for the project DOES NOT include any means of collecting funds from advertisers or means of paying publishers. Simply assume that initially, some advertisers will have a starting balance. After that, ensure that the amount of money in the system stays the same. Money inside the system is transferred in the following two ways: -From advertiser to advertiser's campaign when funding a campaign -From campaign, 10% to the network (a specific user) and 90% to the publisher when an ad belonging to that campaign is clicked. You must enforce a "global conservation law" to ensure money is neither gained nor lost in any transaction. The following things will help your bid win: -Show an App Engine app you've already built and describe the most challenging problem you solved while building the app and how you solved it -Showcase any expertise tests you have passed on this site that are relevant to this project -Describe how you intend to set up the impression and click counters so they are scalable but still work correctly (without missing clicks, for instance) -Describe how you intend to implement click fraud prevention -Describe how you intend to ensure that money is never gained nor lost in any transaction

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online