Marketing your website or business with Facebook Ads on a budget
Facebook Ads provides a great way to display contextually targeted ads to Facebook users. In this article I will discuss creating a Facebook ad as well as techniques for managing your Facebook ads to enable them to be better leveraged, and run for longer periods of time on smaller budgets.
The first component of a Facebook ad is the Ad Campaign. A campaign can contain a collection of ads. You give the campaign a name and control it's daily spending budget here. You can also Pause the campaign here.
The next step is to create your ad for each web site, and this is where you are given a plethora of marketing options. You can focus your ad towards certain demographics.
Here I am setting the target URL and my picture and description for the ad. Please note that Facebook will reject ads if they include the word 'Facebook' in the description, or if they display the Facebook logo. As seen here I am hoping that they will either not notice, or 'let it slide', the little blur of a logo on my web page screenshot. It's also possible that the 'fb' used in my description will get the ad rejected. It's difficult to market products and services directly related to Facebook because of these limitations. Any change to your ad will place it in the 'waiting to be reviewed' queue, and a Facebook employee must approve or reject your ad before it begins to run.
Keywords - Here you can see, I am targeting my ad towards development professionals over the age of 21 using the Keywords section using the Keywords section. Please note that it displays the estimated number of people in your target demographic, the particular group of people that have a chance to view your ad. As you play with different settings you'll see this number change in real time to give you an idea of how your changes are affecting your potential pool size.
If you are running a Facebook ad on a budget, I recommend having as narrow a target audience as possible for your main campaign. If need be, you can create another campaign with tighter budget constraints to be shown to a wider audience.
The size of the demographics will affect how quickly you use up your daily budget and how long the ad runs for that day. If your target demographic is millions of users, and your daily limit is $100, you can expect that $100 to be gone in about 30 mins to an hour. Other factors affect the running time, this is just for illustration, and I will delve more deeply into a possible formula for that later. Just be aware that unless you have a lot of money, targeting millions of people may not get you very far. Technically you are reaching the same number of users, but other factors determine the effectiveness of your campaign and I will discuss this later.
Connections - you will want to have a Facebook Page for your web page or business, if only to keep Facebook Ads from showing your ads to people who are already a user of your site or business. You can also cross-promote using these settings. If you have one web site or business and you know that people using that site would be interested in your new web site or business, you could target users who are connected to the Facebook Page of your first site.
Facebook Ad Pricing
The final piece of your ad will be pricing. For any available ad inventory, Facebook selects the best ad to run based on the cost per click or impression and ad performance. All Facebook Ads compete with each other to show for each impression, regardless of how they are bid. There are a lot of behind the scenes factors that go into determining how Facebook competes your bid against other ad bids. Using the suggested bid price will give you the most number of impressions, however if you are on a budget you do not want to bid the suggested bid necessarily.
Under bidding is an effective way of spreading your ad display over a longer period of time with a small budget. By under bidding, your ad will be selected less for display, and your budget can be stretched out over the course of a day. Using this method, you can still target a wide demographic but use a low bid to give you extended hours of exposure. It will not result in any more web site traffic per se, but it allows you a steady stream of traffic to your business instead of a huge burst. It is also safer, since your web site could have a temporary problem (due to the extra traffic or otherwise) that could result in spending ad money and having your web site down during a short time period. You are charged for the ads views and clicks whether they can connect to your site or not.
Effective Facebook Ad timing and manually running campaigns
Timing of your ad is important. For most Facebook ads, you want them to run during prime time Facebook hours and when people want to click on things and explore the web. Generally you want to avoid the early morning and late night hours. Certain days of the week are more valuable than others. Overall web traffic increases starting around Wednesday just before noon, and ends on Sunday. Facebook has the ability to set the end time on a campaign so you can use this feature if you like or adjust the ads manually. The purpose of this discussion is to only run your ads during the most valuable times to receive traffic from your ads. If you have a business that sells a nutritional based sleep product, you might want to run your ads in the evening, as a simple example. If you run a roofing repair business, you might have a general ad campaign that runs constantly on a low daily budget and another higher budgeted ad campaign that you manually run after heavy storms. If your Facebook ad is targeting the local area, then you can rely on your local time zone for deciding when to run and pause your ads. Just remember that if you are advertising something nationally, that timing can still be used to save money and make your ads yield effective results. Running ads in the middle of the night is less effective in most circumstances, unless your product is targeted at that demographic.
Here is a simple suggestion for effective times to run your ads:
- Monday 11am - 2pm, 7pm - 8pm
- Tuesday 11am - 2pm, 7pm - 9pm
- Wednesday 11am - 3pm, 7pm - 10pm
- Thursday 9am - 1am
- Friday 9am - 1am
- Saturday 2pm - 5pm
- Sunday 2pm - 5pm
By managing when your ads run during the day, you can save money and they will be more effective at yielding real prospects for your business.
Facebook Ad metrics, is your ad working?
A successful Facebook ad campaign will be one that brings in the lowest Average CPC. Average CPC is shown on most of your Facebook ad reports, as seen below.

Matchingo memory game deployed on Facebook
We released Matchingo for Facebook... @smartyp of SmartyPantsCoding.com envisioned, created, designed, and developed the original Silverlight 2 based game. I am building the Facebook integration and the server components... working with the Facebook API, building the WCF service, SQL data, and internal game engine providers required to power the Facebook functionalities that we want.

Right now it supports a global Facebook scoreboard as well as comparing your scores with your friends. It also sends a taunt to your opponents, whenever you beat one of their scores.
We'd like to allow people to pull in their own pictures to use as flash cards from Facebook albums or Flickr, and then share their 'Matchingo flashcard albums' for others' gameplay use if they want to. (once approved to be on the public card list of course.. after all, The Internet is for Porn...)
We are considering other things like deploying into Azure, that might be fun.
Part 1 : Integrating a Silverlight application with Facebook
In this first part of the series on integrating a Silverlight application with Facebook, I will discuss how to register a Facebook application. I will discuss the Facebook application settings, what they mean, specific settings for a Silverlight application, and how to debug a Silverlight application integrated with Facebook, since some of the Faceboook application settings can be used for this purpose.
My guide will assume you have a Facebook account, already know Microsoft .NET, and that you are familiar with Silverlight development. You may or may not already have a Silverlight application that you would like to build a Facebook application from, or you are just interested in learning how to build one. Whatever the case, hopefully you will learn more about what a Facebook application entails and how to being integrating your application with Facebook. While I will specifically address Silverlight integration with Facebook, some of the settings and solutions can be applied to building Flash application for Facebook as well. The issues addressed in this series will be applicable to any RIA.
The very first step in creating a Facebook application is to register the application. The URL for the Facebook Developers area is:
http://developers.facebook.com/
This URL displays a welcome page and offers various blogs and links to Facebook development resources. Of special note is the link on the right side of the page, 'Documentation Wiki' .On the page is the 'Building an app is easy, Start Now' button.

Clicking Start Now will bring you to the Get Started page as shown below.

Even though I will go over some of the Facebook application settings in my guide, the information on the Get Started page is an important read. It very briefly explains the settings, and generally gives you an idea of what you will need. It explains the need for your own web hosting provider, and knowledge of programming. PHP is a very popular web technology, the one which Facebook was written in, and it has many references to integrating PHP with Facebook but less references to other technologies.
Once you have thoroughly read the Get Started page, click on the "Go to Facebook Developer App" link to begin registering your first Facebook application. Immediately after clicking the link you will be greeted with the Facebook Developer 'Allow Access' prompt:

Click Allow to continue.
Now we are at the main developer landing page. Of primary note is the 'Set Up New Application' button shown below, but later under the 'My Applications' heading, your application(s) will be listed.

Click the 'Set Up New Application' button to continue. You will be prompted for the application name, and to accept Facebook terms. The application name will be displayed to your users and used on links to your application in Facebook. The application name will be displayed anywhere that Facebook refers to your application on menus and such. An example name would be the popular Facebook game 'Mafia Wars'. Certain terms like 'Face', 'FB', 'fb' or other words or phrases are prohibited by the Facebook Terms.

Once you have chosen your app's name and agreed to the terms, click on Save Changes.
If you're having trouble coming up with ideas, here is a list of ideas that users have written in with to help with your brainstorming:
- Sports
- Religion
- Parenting
- Fitness
After clicking Save Changes, you will be presented with the Application Settings page:

Down the left hand side is navigation to different settings pages for your Facebook app. We will use these later. Lets discuss the Basic settings first.

The Description is important, it is displayed on the Application Authorization web page that is presented to a user when they first attempt to access your application. The Application Authorization page ('Allow Access' page) that I am describing is similar to the page that I displayed earlier, having the 'Allow' or cancel buttons. The description should concisely explain what the application is and what it does.
The Icon image is displayed on the Facebook Applications toolbar that is shown at the bottom left of every Facebook user's browser window.

Clicking the change your icon link will bring up the icon upload page. I recommend uploading the icon in 16x16 dimensions, but if you upload an image that is larger it will automatically resize the image for you.

The Logo image is displayed on the Application Authorization page (Allow Access). It should be 75x75 but the system will resize the image for you if necessary.
The Developers section gives you the option of granting admin privledges to other Facebook users. The user must be your Friend in Facebook. Simply enter their name (as shown on their Facebook profile) to give them access.
The Developer Contact Email is used by Facebook staff in the event they need to contact you about your application.
The User Support Email Address (or URL) is used in several Facebook web pages, where the user is given the ability to contact the owners of the Facebook application. Some of these Facebook links are found on your application's Facebook page, which we will discuss later. The email address is not displayed to users but you can receive feedback, complaints, and questions from users.
Clicking on the right side navigation bar, select 'Authentication'

'Installable to' refers to the ability for your application to be installed as tabs on User pages and Public Facebook Pages.
The Post-Authorize Callback URL is POSTed to when a person authorizes your application. Facebook's servers will POST several fields back to this URL along with a signature. Facebook sends a number of POST parameters to your Post-Authorize Callback URL in the form of a POST request. The user authorizing your application will not be redirected to this URL (specify the Post-Authorize Redirect URL in your application's settings to configure the redirect). Facebook's servers send this request in the background. A description of the fields posted is here: http://wiki.developers.facebook.com/index.php/Post-Authorize_Callback_URL
The Post-Remove Callback URL is POSTed to when a person removes your application from their applications on their "My Applications" page. Facebook's servers will POST several fields back to this URL along with a signature. A description of the fields posted is here: http://wiki.developers.facebook.com/index.php/Post-Remove_URL
In the beginning, most developers will not need to use these URLs. Later, you will probably find some uses for them. They are optional and not required for a Facebook application to function.
Clicking on the Canvas navigation pane displays the following settings:

The Canvas Page is not terribly important, except maybe for SEO / search engine ranking. Note that if your Canvas Page URL is already taken by another application, you will see the following message:

If you see this message you will have to click your browser's back button, or on Application Settings and then Canvas navigation pane to get back and try another url name.
The Canvas Callback URL is the most important setting for your application. This is the URL that Facebook will use for the IFrame. For the purposes of this guide, we will be using an IFrame for the Render Method. If we were not using IFrame, this would be the page that the Facebook server loads the FBML from.
For the purposes of debugging your Silverlight application on Facebook, is is possible to set the Canvas Callback URL to 'http://127.0.0.1' and attach to the process. Note that you will attach to the iexplore.exe of the IFrame process, NOT the iexplore.exe process that has the same title as the web browser. The process you want to attach to will have no title and be of type 'Silverlight'.

The Bookmark URL and Post-Authorize Redirect URLs are where the browser will be redirected for the respective actions. You can find possible uses for these, but for our purposes we will leave these blank.
Render Method should be set to IFrame. When a user goes to your application, Facebook splits the screen into two IFrames. The bottom IFrame is pointed to the Canvas Callback URL along with several querystring parameters. For a Silverlight application, the IFrame (along with the querystring) will only load one time, the initial page load. Whatever you enter as your Canvas Callback URL will be used for the bottom IFrame, and whatever your website displays will be shown in all its glory within it's own IFrame browser window. With this render method you can output whatever HTML, CSS, Javascript, Java, Flash, or Silverlight however you would like, just like a normal web application. If you use IFrame you do not need to be concerned with FBML.
The rest of the settings are explained well, they may affect how your web pages display within the IFrame.
Clicking on the Advanced pane on the left navigation, you will see these settings:

For any client side technology like Silverlight or Flash, you will want to select 'Desktop' as the application type. The reasons for this setting will be explained in my next tutorials on building Silverlight Applications for Facebook.
You will want to set Sandbox Mode to be enabled. This will prevent anyone except the application developers (as set in your Basic settings) from accessing your Facebook application. While the Sandbox Mode is turned on, when anyone else tries to access your application's Facebook URL, they will receive a 'Page Not Found' message.
Once your settings are configured, you can navigate directly to your new application via the Canvas Page URL. For my example, I would direct my browser to http://apps.facebook.com/tictactoe
The next tutorials in this series on Integrating a Silverlight application with Facebook will discuss handling Facebook authentication and consuming the Facebook API as it relates to a Silverlight application.