<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Snipe.Net &#187; facebook applications</title>
	<atom:link href="http://www.snipe.net/tags/facebook-applications/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snipe.net</link>
	<description>Bitterness never tasted so sweet</description>
	<lastBuildDate>Tue, 24 Jan 2012 04:30:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Facebook Introduces HTTPS Opt-In for Users, Impacts App Developers</title>
		<link>http://www.snipe.net/2011/01/facebook-https-opt-in/</link>
		<comments>http://www.snipe.net/2011/01/facebook-https-opt-in/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 17:24:04 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[facebook applicaton development]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[infosec]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3332</guid>
		<description><![CDATA[In an article posted today on the Facebook Developer Blog, Facebook announced that they would be offering users the option to switch their Facebook experience to HTTPS-only, which would force all Facebook page loads to be routed over SSL. According to the blog entry, this feature would be opt-in, and canvas application developers would need [...]]]></description>
			<content:encoded><![CDATA[<p>In an article posted today on the Facebook Developer Blog, Facebook announced that they would be offering users the option to switch their Facebook experience to HTTPS-only, which would force all Facebook page loads to be routed over SSL.<span id="more-3332"></span></p>
<p>According to <a href="http://developers.facebook.com/blog/post/452">the blog entry</a>, this feature would be opt-in, and canvas application developers would need to provide an SSL url for the &#8220;Secure Canvas URL&#8221;. </p>
<p>If a user who has opted into the SSL-only version of Facebook attempts to access a Facebook Application that doesn&#8217;t have a Secure Canvas URL set, the user will evidently be shown a message (which will likely be confusing and scary, not because Facebook will purposefully make it so, but because most users don&#8217;t really understand SSL) that will give them the option to switch from HTTPS to HTTP. From the post:</p>
<blockquote><p>If you do not provide a secure Canvas URL, we will display a confirmation page to let HTTPS users switch to HTTP and continue to your app.</p></blockquote>
<p>This currently affects CANVAS apps only &#8211; not application tabs &#8211; although that may very well change once Facebook pushes the IFRAME version of tabs out some time in Q1. </p>
<p>HTTPS is slower and more server intense than HTTP, and it&#8217;s one more cost/timeline issue that has to be factored in. For some clients, I set up the hosting environment (which would include DNS, SSL, etc) &#8211; for others, their IT department provisions web space and handles DNS, and they often require a mountain of paperwork and a week to process. </p>
<p>For the latter scenario, the cost of the certificate is negligible, but for a highly-trafficked app, the increase in server load could have serious financial impact. It could mean the difference between needing one server and several.</p>
<p>For smaller companies, stepping up to SSL would mean buying a certificate and potentially paying extra for the dedicated IP address it will need, and if the app takes off, a much heftier hosting bill for running everything over SSL.</p>
<p>If the above would actually, truly improve the safety of the users in some significant way, I&#8217;d probably still be on-board. </p>
<p>Security is something I take <em>very</em> seriously, and in 2010, <a href="http://en.wikipedia.org/wiki/Firesheep">Firesheep</a> showed the world how easy it was to hijack a user&#8217;s Facebook session and essentially pwn their account because the session data was being transmitted unencrypted and was sniffable over public wifi. To be fair, it wasn&#8217;t just Facebook that was affected, but if you&#8217;re logging into websites on an unencrypted public wifi, odds are your email accounts and everything else are at risk too.</p>
<p><strong>That said, this seems like it will give naive users a false sense of security and not actually provide that much value for the effort involved by the app developers. </strong></p>
<p>&#8220;Oh, this application must be safe &#8211; I&#8217;m using HTTPS, and the S stands for *secure*!&#8221;</p>
<p>Phishing, rogue apps and malware are already horrendous problems on social media websites, Facebook especially. I would much rather see Facebook (and others) improve their session handling before going in this direction. Reputable companies who are collecting any kind of PII are already running data submission over HTTPS, and non-reputable companies aren&#8217;t going to become more honest just by forcing them to encrypt the data they&#8217;re mining from your profile.</p>
<p><strong>The net result is a lot of extra work for developers and companies for not a lot of benefit to not a lot of users, with the side effect of confusing people into thinking that SSL = trustworthy, or that a non-SSL app is malicious and trying to eat their souls.</strong></p>
<p>IMHO, the much bigger threat to Facebook users is their own poor judgment on what to click on. <strong>Social engineering rules social networks, and no amount of encryption is going to fix that.</strong> As the <a href="http://www.jinx.com/men/shirts/geek/social_engineering.html">fabulous shirt from Jinx says</a> &#8220;there is no patch for human stupidity&#8221;. </p>
<p>Until people start being more critical of what they&#8217;re clicking on and what apps they&#8217;re allowing access to their profile, they&#8217;ve got a lot more to worry about than SSL. <strong>It&#8217;s the same false sense of security that users running antivirus programs often suffer from. </strong></p>
<p>&#8220;I don&#8217;t need to worry about what I click on &#8211; I&#8217;m running antivirus! My virus definitions are up to date, so I am safe and protected and nothing can harm me.&#8221;</p>
<p>In 2008, Symantec had to write new virus signatures every 20 seconds to keep up with the onslaught of malware that was released. This was increased to every 8 seconds by 2009. [Source: <a href="http://www.amazon.com/gp/product/0071742557?ie=UTF8&#038;tag=snipenet&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0071742557">Gray Hat Hacking The Ethical Hackers Handbook, 3rd Edition</a>]</p>
<p>To prove my point, I&#8217;ve created <a href="http://www.fb-profile-spy.com/">FB Profile Spy</a>. It&#8217;s still a work in progress, but it&#8217;s a better-security-through-humiliation project, similar to my better-behavior-through-humiliation project <a href="http://www.socialmediadouchebag.net">socialmediadouchebag.net</a>. It&#8217;s completely safe &#8211; and not even hooked up to the Facebook API at all (but of course please feel free to use NoScript and check it out thoroughly before interacting with the links. I have nothing to hide.) Click through and &#8220;allow&#8221; the &#8220;app&#8221;. I need to tighten up the javascript slideshow lecture at the end and I need to sync up the layout with the new profile design, but it&#8217;s coming along.</p>
<p>What do you think? Am I just being a whine-ass lazy developer? Am I being a slacker security pundit? Let me know in the comments.</p>
<p><em>NOTE: This article first appeared on <a href="http://fbmhell.com">FBMHell.Com</a>.</em></p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/11/facebook-and-myspace-users-beware-virus/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/11/virus3.gif&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Facebook and MySpace Users, Beware!" height="90" width="90" onmouseover="onover('Facebook and MySpace Users, Beware!')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/10/twitter-launches-beta-lists/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/10/beta_alert.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Twitter launches groups in BETA for some users" height="90" width="90" onmouseover="onover('Twitter launches groups in BETA for some users')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/practical-mod_rewrite/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/dave.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Practical Mod_Rewrite for Web Developers" height="90" width="90" onmouseover="onover('Practical Mod_Rewrite for Web Developers')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2011/01/facebook-https-opt-in/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Introducing FBMHell.Com</title>
		<link>http://www.snipe.net/2010/07/introducing-fbmhell-com/</link>
		<comments>http://www.snipe.net/2010/07/introducing-fbmhell-com/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 00:09:32 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[fbml]]></category>
		<category><![CDATA[static fbml]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3161</guid>
		<description><![CDATA[Good news, everyone! My compulsive need to make websites and write content has struck again, this time resulting in my new site, FBMHell.Com, which I hope will evolve into a great resource for Facebook developers, whether you&#8217;re an app developer or fan page designer. It&#8217;s literally just been launched, so I&#8217;m looking for your help. [...]]]></description>
			<content:encoded><![CDATA[<p>Good news, everyone! My compulsive need to make websites and write content has struck again, this time resulting in my new site, <a href="http://fbmhell.com">FBMHell.Com</a>, which I hope will evolve into a great resource for Facebook developers, whether you&#8217;re an app developer or fan page designer.</p>
<p><span id="more-3161"></span>It&#8217;s literally just been launched, so I&#8217;m looking for your help. I&#8217;ll be going through some older posts and rounding up the questions that seem to come up often and writing up answers for the new site, but if there&#8217;s a burning question you&#8217;ve had for a while and haven&#8217;t been able to find an answer for, let me know in the comments.</p>
<p><a href="http://fbmhell.com"><img class="aligncenter size-large wp-image-3162" title="fbmhell" src="http://www.snipe.net/wp-content/uploads/2010/07/fbmhell-560x500.png" alt="" width="560" height="500" /></a></p>
<p>One that comes up often is whether or not you can include an IFRAME in a tab, so don&#8217;t ask that one <img src='http://www.snipe.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  It&#8217;s already on deck.</p>
<p>I&#8217;m looking for all kinds of questions, ranging from the complicated to the more basic, so don&#8217;t be afraid to ask. More complicated tutorials (similar to what I&#8217;ve posted in the past regarding app development and complex mini-sites on tabs) will take a little longer, so be patient, and remember to <a href="http://feeds.feedburner.com/snipe/fbmhell">subscribe to the RSS feed</a> so you&#8217;ll get all the latest posts.</p>
<p>Categories will be added as content demands, of course.</p>
<p>I really want this site to be a great resource for everyone (including myself, as a repository of stuff I know works), so I&#8217;m looking forward to your feedback!</p>
<p>Also keep your eyes peeled for the launch of <a href="http://fbmlwizard.com">FBMLWizard</a>, a drag+drop Facebook fan page tab builder.  I&#8217;ll update you here when it&#8217;s ready.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/09/introducing-tehawesomenet/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/09/stars.gif&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Introducing TehAwesome.Net" height="90" width="90" onmouseover="onover('Introducing TehAwesome.Net')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/10/facebook_1.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Big Changes to the Facebook Platform" height="90" width="90" onmouseover="onover('Big Changes to the Facebook Platform')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2010/05/facebook-fan-pages-10k/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2010/05/fuck-you.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You" height="90" width="90" onmouseover="onover('Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/07/introducing-fbmhell-com/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You</title>
		<link>http://www.snipe.net/2010/05/facebook-fan-pages-10k/</link>
		<comments>http://www.snipe.net/2010/05/facebook-fan-pages-10k/#comments</comments>
		<pubDate>Thu, 20 May 2010 02:25:00 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[facebook fan page]]></category>
		<category><![CDATA[facebook fan pages]]></category>
		<category><![CDATA[fbml]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3057</guid>
		<description><![CDATA[You&#8217;re gonna love this. And by love I mean be filled with rage. I started receiving emails from people today, frustrated that they could no longer set a specific tab as their default landing tab in Facebook. Everyone assumed it was a bug. It&#8217;s not. UPDATE May 20, 10:45AM: Facebook has actually apologized and done [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;re gonna love this. And by love I mean be filled with rage. I started receiving emails from people today, frustrated that they could no longer set a specific tab as their default landing tab in Facebook. Everyone assumed it was a bug. It&#8217;s not.</p>
<p><span id="more-3057"></span><br />
<strong>UPDATE May 20, 10:45AM:</strong> Facebook has actually apologized and done a complete 180 in the last 12 hours and they have reversed this decision. <strong>I&#8217;m leaving the original post up for reference, but as of right now, they have reverted back to the original way it worked, where any page admin can set default tabs, regardless of the size of their fan base.</strong></p>
<p>From <a href="http://forum.developers.facebook.com/viewtopic.php?pid=228104#p228104">their developer forums</a>:</p>
<blockquote><p>
As of last night, we&#8217;ve removed the recently-added authentication requirement for setting custom landing tabs on Pages. The requirement was instituted as part of a Pages quality initiative, and we apologize for the inconvenience this caused to our developer and business community. We are re-investigating the situation, and will not make any further changes without first giving our community standard notice and lead-time.</p>
<p>Thanks for all your feedback,<br />
Matt Trainer</p></blockquote>
<hr />
<strong>Original Post: </strong><br />
According to <a href="http://forum.developers.facebook.com/viewtopic.php?id=58864&#038;p=1">this post on the Facebook Developer forums</a>, Facebook has struck yet another critical blow to smaller companies who are trying to use the Facebook platform to grow their business without a lot of startup capital.  The thread had started by someone asking why they could no longer edit the Facebook Fan Page settings to specify which application tab they wanted to set as the default landing page.</p>
<p>The Facebook platform is known for being exceptionally buggy, so most &#8220;me too&#8221;ers assumed it was a bug and patiently awaited a bug fix confirmation from Facebook. The question went unanswered for a day, until finally a Facebook employee <a href="http://forum.developers.facebook.com/viewtopic.php?pid=227722#p227722">dropped this bombshell</a>.</p>
<blockquote><p>Hello all,</p>
<p>We apologize for not messaging this earlier. Facebook recently made a change requiring that Pages be authenticated before enabling the ability to set a landing tab beyond Wall or Info. To be eligible for authentication, a Page must have greater than 10k fans or the Page admin must work with their ads account manager. If you are already working with an account representative, please contact that representative to begin the authentication process. If you do not work with an account representative, you can use this contact form to inquire about working with an account representative.</p>
<p>Also, for advertisers who don’t have a representative or 10k fans, and want to run ads and land users on a specific tab, you can still do so with standard Facebook ads by making their Destination URL as the URL incl. your tab.  Unfortunately, this currently will not work with &#8220;Fan&#8221; ads.</p>
<p>Thanks,<br />
Matt Trainer</p></blockquote>
<p><strong>What this means is that Facebook Fan Page admins can no longer specify a default landing tab for their fan page UNLESS they have 10k or more fans, OR they &#8220;have an account manager&#8221;. </strong>Having an account manager sounds great, right? The thing is, you have to spend at least $10k in Facebook advertising before they&#8217;ll even talk to you, let alone give you an account manager. That contact form leads to the &#8220;how much money are you willing to spend with us&#8221; form, and if your answer is less than $10k, don&#8217;t expect them to help you.</p>
<p>So once again, the little guy gets screwed. It started in November with their <a href="http://www.dailyglobal.com/2009/11/facebook-contest-is-no-longer-free/">charges to their contest/promotional guidelines</a>, which were also rolled out quietly with little or no notification to developers or users, which dictated something very similar. Certain types of promotions now have to be approved by an account manager. Only you don&#8217;t get an account manager unless you spend upwards of $10k in media buys. </p>
<p>Note that it appears as though this is only effective moving forward.<strong> If you&#8217;ve already set a default tab on your Facebook Fan page, they&#8217;re not going to take it away from you.</strong> At least not at this point. But as of yesterday, if you hadn&#8217;t already set a default tab, you won&#8217;t be able to do so without meeting one of the 10k requirements mentioned above.</p>
<p>I&#8217;m not even going to talk about the recent Facebook privacy issues. This isn&#8217;t the post for it, and honestly, I don&#8217;t have the energy to open that gigantic can of worms right now. But with those recent changes on top of <em>this</em>, I have to ask WTF they are thinking over there. Fuck you, Facebook.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/06/fb-fanpages-fbml-box/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/04/facebook_pic.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Static FBML: Not Every Facebook Fan Page Needs An Application" height="90" width="90" onmouseover="onover('Static FBML: Not Every Facebook Fan Page Needs An Application')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2011/05/new-facebook-page-admin-scam/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2011/05/facebookscam.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="New Facebook Page Admin Scam" height="90" width="90" onmouseover="onover('New Facebook Page Admin Scam')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2002/06/google-style-page-numbering-with-x-per-page-and-y-page-numbers-displayed/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/06/picture-22.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Google Style Page Numbering (with x per page and y page numbers displayed)" height="90" width="90" onmouseover="onover('Google Style Page Numbering (with x per page and y page numbers displayed)')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/05/facebook-fan-pages-10k/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Big Changes to the Facebook Platform</title>
		<link>http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/</link>
		<comments>http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 18:00:22 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[fbml]]></category>
		<category><![CDATA[social networks]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2472</guid>
		<description><![CDATA[Last night, during a webcast, Facebook announced some upcoming significant changes to the Facebook platform. Most are good, a few may be frustrating, but here they are. These changes will start to be rolled out in November &#38; December and will continue into the first and second quarter of 2010. If you develop Facebook applications, [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, during a webcast, Facebook announced some upcoming significant changes to the Facebook platform. Most are good, a few may be frustrating, but here they are. These changes will start to be rolled out in November &amp; December and will continue into the first and second quarter of 2010.</p>
<p><span id="more-2472"></span></p>
<p>If you develop Facebook applications, I <em>strongly</em> encourage you to check out their <strong>new <a href="http://wiki.developers.facebook.com/index.php/Developer_Roadmap">Facebook Developer Roadmap</a></strong>, which breaks down upcoming changes in detail and let&#8217;s you know when to expect these changes to roll out.</p>
<p>I for one am <em>thrilled</em> to see Facebook finally trying to work <em>with</em> developers to give them a clear idea of what to expect and when. As someone who has spent the past two years writing Facebook applications and being frustrated by surprise platform changes, this is a giant step in the right direction from my point of view. Previously, it was not uncommon to get only a day or two&#8217;s notice &#8211; or no notice at all &#8211; regarding critical application functionality. If you&#8217;re the developer for one application, that&#8217;s inconvenient and annoying at best, if you&#8217;re obligated to maintain a dozen or so applications it can be utterly traumatizing.</p>
<p>From the look of things, Facebook is trying to streamline the way applications communicate with users, and is adding some features specifically designed to improve the flow of turn-based gaming and make it easier for users to find games amid the sea of applications in the app directory.</p>
<p>Overall, these changes bring new features to the application developer&#8217;s toolbelt, but changes to the newsfeed and Stream API also mean that several of the ways you were previously able to send messages to a user&#8217;s newsfeed/stream (the one you <a href="http://www.snipe.net/2009/04/changes-to-facebooks-newsfeed/">just updated in April</a> to comply with their last round of newsfeed changes) will no longer be supported.</p>
<p>To put a finer point on it, if you don&#8217;t feel like extending your current applications to take advantage of the new features, you will still need to update them to get them to function as they currently do.<strong> If you do not update your application to use the Stream API, your application will NO LONGER send any messages to your users&#8217; stream.</strong> More on this down below.</p>
<p>So here&#8217;s a quick run-down of what to expect in the next few months &#8211; I&#8217;m covering the issues that will affect current applications first, and then we&#8217;ll get into the good stuff that talks about new features and functionality, so you know what you have to update to keep your existing functionality before worrying about extending it.</p>
<h3>Big changes to the Stream, old API not supported, templates disappear, new format</h3>
<p>As I mentioned above, if you don&#8217;t care enough (or your clients are not paying you enough) to update your current applications with the new functionality these updates bring, you&#8217;re still going to have to spend some time in the code just to get them not to break.</p>
<p>As of December 20, 2009, when Facebook.showFeedDialog and feed templates are discontinued, <strong>if your application hasn&#8217;t been updated </strong>to use <a href="http://wiki.developers.facebook.com/index.php/Stream.publish">Stream.publish</a>, <a href="http://wiki.developers.facebook.com/index.php/Facebook.streamPublish">Facebook.streamPublish</a>, or <a href="http://wiki.developers.facebook.com/index.php/FB.Connect.streamPublish">FB.Connect.streamPublish</a>, <strong>your application will no longer be able to send newsfeed messages</strong>.</p>
<p>These <a href="http://wiki.developers.facebook.com/index.php/Using_the_Open_Stream_API">Stream API functions</a> will be the only way to send messages to users&#8217; streams and they are available right now, so I encourage you to start making the switch now so you have plenty of time to test and troubleshoot any issues that come up.</p>
<p>But wait &#8211; there&#8217;s more!</p>
<p><strong>Stream stories will be rendered slightly differently, with only one image and few lines of text.</strong> Only the first image and first few lines of text will be rendered by default. A user can choose to expose the rest of the images and text by clicking a &#8220;See More&#8221; link.</p>
<p><strong>Only one action link will be rendered, and it must be 25 characters long or less.</strong> &#8220;Formatting&#8221;-style characters (like &#8220;|&#8221;, &#8220;[", "]&#8220;, and others) will not be rendered.</p>
<p><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Stream"><img class="aligncenter size-full wp-image-2492" title="Roadmap_Stream" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Stream.jpg" alt="Roadmap_Stream" width="526" height="399" /></a></p>
<p><strong>Key Policy Change:</strong> In order to encourage intentional behavior, <strong>you will no longer be able to automatically pop up a Feed form for a user</strong> unless that user has explicitly indicated that he or she wishes to share this information. According to Facebook, &#8220;a user should never be surprised by a Feed form&#8221;. You can continue to render Feed forms through FB.Connect.streamPublish and Facebook.streamPublish.</p>
<p>In the Stream Roadmap page, they outline when it is appropriate to open a feed form:</p>
<ul>
<li>When the user has clicked a button that says &#8220;Share this&#8221;.</li>
<li>When a user has indicated via your user interface that they want to share. For example, if a user wrote a review within your application, and they checked a box that said &#8220;Share with friends&#8221; next to your &#8220;Publish this review&#8221; button. If you pre-checked a &#8220;Share with friends&#8221; box and they unchecked it, a Feed form should not pop up.</li>
</ul>
<p>Perhaps more importantly, <strong>they also outline when you should NOT prompt the user with a feed form</strong> (and therefore NOT allow your user to post the action to their stream):</p>
<ul>
<li>When a user takes an action that is a normal part of using your application, for example, achieving a new high score.</li>
<li>When you present a user with a result or new information, for example, completing a quiz.</li>
</ul>
<p>These last two will directly impact how a LOT of Facebook apps and games currently function. While it will no doubt have an adverse impact on monthly active users for the applications that currently trigger stream entries on these actions, it is most likely a response of Facebook users complaining about the tremendous influx of stupid quizzes that have been flooding their newsfeeds for the past several months.</p>
<p>Hopefully, the other changes detailed below will offset the impact of apps not appearing in the stream as often and will more than compensate for any loss in virality.</p>
<p>Check out the <strong><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Stream">Stream Roadmap page on the Facebook Developers site</a></strong> for full details.</p>
<h3>No more Profile boxes or Boxes tab</h3>
<p>That&#8217;s right. Poof. Going forward (in the short term) <strong>application tabs will be the only way applications can integrate into Profiles</strong>. We will be removing profile boxes, application info sections, and the Boxes tab. Facebook says they are exploring additional ways to enable developers to integrate into Profiles.</p>
<p>Please note that it does NOT appear that Facebook will be moving application content currently in Profile boxes or the Boxes tab into Profile tabs for you. From the <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Profile">Profile Roadmap page on the Facebook Developer&#8217;s Wiki</a>:</p>
<blockquote><p><strong>Where will users&#8217; profile boxes go?</strong><br />
Profile boxes will not exist in the near future. Application tabs will be the only way developers can integrate into the profile. If integrations on the profile are an important part of your application, we encourage you to focus development and transition to application tabs.</p></blockquote>
<p>(Timing: Late 2009/Early 2010)</p>
<p>So it looks like if you don&#8217;t make this change to your application yourself and you rely on Profile boxes or Boxes tab boxes for your application to work, your app will effectively just disappear from user profiles when this change goes live.</p>
<p><strong>Application tabs will shrink from 760 pixels wide (today) to <del datetime="2009-12-16T18:39:55+00:00">510 pixels</del> 520 pixels wide to accommodate a slightly revised design.</strong> Boxes, info sections, and the Boxes tab will be removed in the near future. This kind of sucks, in my opinion, but I assume they&#8217;re doing it to accommodate a new design with either larger ads or some sort of right-rail navigation. Still, that&#8217;s a <del datetime="2009-12-16T18:39:55+00:00">250</del> 240 pixel loss of real estate. Bummer.</p>
<p>Update as of Dec 15, 2009: According to a <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Profile">recently updated roadmap page</a>, they will be shrinking the tabs down to 520 instead of 510. This, along with other profile changes, is set to roll out early 2010 by their last estimate.</p>
<p><strong>Slight Application Canvas page layout change. </strong>In order to make it clearer to users when they are using an application created by a third party developer, Facebook is going to slightly modify how the top-navigation is rendered on canvas pages:</p>
<p><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Canvas"><img class="aligncenter size-large wp-image-2496" title="Roadmap_Canvas" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Canvas-559x341.png" alt="Roadmap_Canvas" width="559" height="341" /></a></p>
<p>Looks like they&#8217;re still tinkering with ideas on the new layout of Application Canvas pages, but overall this shouldn&#8217;t impact most applications too much. They encourage developers to <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Canvas">periodically check the Canvas Roadmap page for updated designs</a>.</p>
<p>Now then &#8211; we&#8217;ve covered all of the stuff that impacts your current applications as they are now. Let&#8217;s look ahead to some of the great new functionality ahead.</p>
<h3>Email</h3>
<p>Developers will be able to ask users to share their primary email addresses. This is a big deal because it was previously verboten to collect a user&#8217;s email address without specifically asking them to type it into a form and submit it. (Timing: Nov 2009)</p>
<h3>New Application Counter (woot!)</h3>
<p><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Counter"><img class="alignright size-full wp-image-2477" title="Roadmap_Counter" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Counter.jpg" alt="Roadmap_Counter" width="256" height="324" /></a>The <strong><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Counter">application counter</a></strong> is one of my favorite improvements laid out in this roadmap and is just one of many steps Facebook is taking to position itself as a gaming platform.</p>
<p>You will have the opportunity to increment your count to indicate to a user that they should take an action in your application, for example, take their turn in a game, or see a comment from another user on content they created within that application.</p>
<p>The count can be incremented by your application, and when a user clicks through to the application, the count will be reset to zero.</p>
<p>As we continue to see an influx applications leveraging Facebook as a platform for RPG and turn-based gaming, it seems Facebook is getting behind the idea and beginning to provide specific features to encourage growth in this area. (Timing: November/December 2009)</p>
<h3>Games/Applications Dashboards</h3>
<p>In fact, apps that are games will be separated by category from apps that are&#8230; well, applications. Plus, users have access to <strong><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Dashboards">two different Dashboards</a></strong>, one for Games and one for Applications.</p>
<p>The Games dashboard will have a number of features that encourage users to find games their friends and playing, and to stay active in games they&#8217;ve started, including:</p>
<p><strong>Recent games:</strong> Facebook will prominently display games that a user has recently played, showing the application icon and application name. Clicking on a game will take the user to the game&#8217;s canvas page.</p>
<p><strong>Game News: </strong>There will be a text field next to each game on the dashboard where developers can set Game News. This area is free form and targetable by user, e.g. &#8220;You are ranked 17th among your friends. Austin&#8217;s score is the next highest at 28,400. Can you beat him?&#8221; or, &#8220;Your pumpkins are wilting &#8211; water them soon!&#8221;</p>
<p><strong>Your friends are playing:</strong> Facebook will display some of the games that your friends are playing along with information about relevant activities in the game.</p>
<p><a href="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Games_Dashboard.png"><img class="aligncenter size-large wp-image-2482" title="Roadmap_Games_Dashboard" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Games_Dashboard-560x327.png" alt="Roadmap_Games_Dashboard" width="560" height="327" /></a></p>
<p>According to Facebook, an app cannot appear in both the Games directory and the Applications directory, and they&#8217;ll be reviewing Games listed in the Games directory to make sure they belong there.</p>
<p>All non-game applications will have similar functionality (your recent applications, application news messages, and applications your friends are using) in the Application Dashboard.</p>
<h3>Application Notifications</h3>
<p><strong>Facebook is removing application-to-user notifications and user-to-user notifications</strong>. Instead, they encourage you to use other channels to communicate directly with your users, and to enable them to communicate with each other about your application.</p>
<p><strong>Communication between you and your users:</strong></p>
<p>They encourage you to use Email (once the user has opted to share their email address with you) for things like product announcements, newsletters, or billing and transactional communication.</p>
<p>If you want to notify users about an action they should take with your application (like taking their turn in a game), incrementing the Application Counter will be a good way to notify them.</p>
<p>The application news in the Application Dashboard will be a great way to share a brief message with a user while they&#8217;re exploring the Dashboards. You&#8217;ll be able to target these on a per-user basis.</p>
<p><strong>Communication between your users and their friends:</strong></p>
<p>The stream is the most powerful way to enable users to share their experiences with all of their friends.</p>
<p>The new Share flow will give your users the ability to send messages directly to their friends&#8217; Inboxes, with attachments predetermined by you. This will be the best way to encourage one-to-one and one-to-few messages between users, and is intended to replace requests.</p>
<p>Users will still be able to invite their friends to check out your application.</p>
<p>The estimated timing on this is approximately 30 days after you are able to start requesting a user&#8217;s email address. (Latest estimate: November/December 2009)</p>
<h3>Open Graph API: Incredible potential, or not at all?</h3>
<p>The info on Facebook&#8217;s Developer page for this is a little vague at best. They state:</p>
<blockquote><p>The Open Graph API will allow any page on the Web to have all the features of a Facebook Page. Once implemented, developers can include a number of Facebook Widgets, like the Fan Box, or leverage any API, which enable the transformation of any Web page so it functions similar to a Facebook Page.</p>
<p>For example, AwesomeTees might decide that strategically they would like to locate their brand identity at www.awesometees.com. AwesomeTees will install the Fan Box widget, which will allow any Facebook user to &#8220;Become a Fan&#8221; of AwesomeTees, thereby establishing an official connection to AwesomeTees. The user will then have AwesomeTees listed in their list of connections on their profile as Pages are represented today.</p></blockquote>
<p>This isn&#8217;t that different than how it currently works, so that&#8217;s not really news. What is interesting is this one line n their description, further down:</p>
<blockquote><p>Additionally, any content that AwesomeTees publishes on AwesomeTees.com will show up in the stream on Facebook like it normally would.</p></blockquote>
<p>Wait, say what? It sounds like they&#8217;re saying that news updates that would normally appear on a website, and would have to be manually cross-posted to a brand&#8217;s Facebook fan page will somehow automagically appear. I would have to assume they will require some sort of XML or JSON standardized format that website news announcements will have to be published in, but there&#8217;s little detail out on this just yet. This feature is a ways off though, with initial versions not expected until the second quarter of 2010.</p>
<h3>And finally &#8211; Verification goes away as a brand, becomes universal for all apps</h3>
<p>According to the <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Principles_Policies_and_Verification">Principles, Policies and Verification roadmap</a>, Facebook is doing away with paid Verification and is extending it out to all applications.</p>
<blockquote><p>On December 1st, 2009 we&#8217;ll retire the Verification brand, as we scale what was a voluntary program into a universal requirement. There is no longer a submission process or fee, and there won&#8217;t be distribution boosts as the product will move towards more intentional user sharing. Starting today, we will suspend the processing of Verification submissions. <strong>All apps must meet Verification Checklist expectations and will be subject to review at any time.</strong></p></blockquote>
<p>So this means while you no longer have to shell out big bucks for your app to be verified, it also means that Facebook will probably be more aggressive about making sure all developer applications do meet their verification criteria, and will yank your app with ir without notice if it feels like your app isn&#8217;t up to snuff.</p>
<h3>Full Timeline</h3>
<p>To give you a little more perspective, here is the timeline of the upcoming Platform changes, based on Facebook’s Developer Roadmap and originally compiled by <a href="http://www.insidefacebook.com/2009/10/29/mark-your-calendars-planning-for-facebooks-platform-changes-over-the-next-3-6-months/">InsideFacebook.Com</a>:</p>
<p><strong>Late October 2009</strong></p>
<ul>
<li>Simplified policies posted, verification program ended, and “extending verification standards to all applications”</li>
<li> Platform Live Status tool launching, which will show “updates on platform stability and load”</li>
</ul>
<p><strong>November 2009</strong></p>
<ul>
<li> New email permission API (developers can ask users to share their email address)</li>
<li> Access point to invites will be moved “to either a filter in Inbox or surfaced in the Application and Games Dashboards”</li>
<li>User-to-user Inbox APIs will be launched</li>
<li>Stream story formatting changes (1 image shown by default, few lines of text, 1 action link)</li>
<li>New “add bookmark” button</li>
</ul>
<p><strong>November/December 2009</strong></p>
<ul>
<li>Notifications API (both app-to-user and user-to-user) will be removed (note: Facebook says this will happen “30 days after email permission is available”)</li>
<li>Feed forms cannot be popped open without “explicit user intent” (note: this is a new Facebook policy)</li>
<li>Application bookmarks moving from the bottom menu bar to the left side of the home page</li>
<li>Counter API launching (counts can appear on home page application bookmarks)</li>
<li>Applications and Games dashboards launching</li>
<li>New application branding on canvas pages launching</li>
</ul>
<p><strong>December 2009</strong></p>
<ul>
<li> All stream publishing APIs beside Stream.publish, Facebook.streamPublish, and FB.Connect.streamPublish will no longer be supported (December 20)</li>
<li>Revamped developer site launching</li>
</ul>
<p><strong>Late 2009 / Early 2010</strong></p>
<ul>
<li> Requests API will be removed (note: Facebook says this will happen “30 days after launching new Inbox sharing”</li>
<li>Profile boxes will be removed (application tabs will be the only way to integrate into the profile page at that point)</li>
<li>Improved analytics and APIs launching</li>
</ul>
<p><strong>Early 2010</strong></p>
<ul>
<li> Open Graph API launching</li>
</ul>
<h3>Conclusion</h3>
<p>So it feels like Facebook might finally, really be getting their shit together. This is arguably one of the biggest rounds of changes to the platform that we&#8217;ve seen in quite some time, and for the first time, they&#8217;re actually giving developers a head&#8217;s up and being very transparent about timing and impact.</p>
<p>All in all, the vast majority of these changes are great news for application developers. We&#8217;re getting tons of new features, new integration points and opportunities for viral engagement. The trade-off in what we&#8217;re losing seems to be well worth it, if all of these improvements come to fruition.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/04/facebook-application-tabs/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/04/69tx0t.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="%$#^%$* Facebook Application Tabs" height="90" width="90" onmouseover="onover('%$#^%$* Facebook Application Tabs')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/09/planning-a-facebook-application/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/n40212040147_6720.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Planning Your Facebook Application" height="90" width="90" onmouseover="onover('Planning Your Facebook Application')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/01/advertising-on-facebook-applications-an-experiment/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/01/socialcash.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Advertising on Facebook Applications &#8211; An Experiment" height="90" width="90" onmouseover="onover('Advertising on Facebook Applications &#8211; An Experiment')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Changes to Facebook&#8217;s Newsfeed/Wall</title>
		<link>http://www.snipe.net/2009/04/changes-to-facebooks-newsfeed/</link>
		<comments>http://www.snipe.net/2009/04/changes-to-facebooks-newsfeed/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 21:32:17 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=1784</guid>
		<description><![CDATA[With the most recent API changes, specifically the one that changed the way fan pages behave so that they look and behave more like Facebook user profiles, Facebook also made a significant change in how newsfeeds work in applications. Previously, you would send newsfeed items to a user&#8217;s profile wall and their main newsfeed using [...]]]></description>
			<content:encoded><![CDATA[<p>With the most recent API changes, specifically the one that changed the way fan pages behave so that they look and behave more like Facebook user profiles, Facebook also made a significant change in how newsfeeds work in applications.<br />
<span id="more-1784"></span><br />
Previously, you would send newsfeed items to a user&#8217;s profile wall and their main newsfeed using the same API call.  <a href="http://wiki.developers.facebook.com/index.php/Feed.publishUserAction">Feed.publishUserAction</a> pretty much took care of all of the feed related publishing.</p>
<p>Something like this would do the trick:</p>
<p>[source='php']$template_bundle_id = 123456789;<br />
$tokens = array();</p>
<p>try {<br />
$facebook->api_client->feed_publishUserAction($template_bundle_id, json_encode($tokens), $array_of_friends_id, &#8221;);<br />
} catch(Exception $e) {<br />
// error trapping goes here<br />
}[/source]</p>
<p>The code above would insert a one-line story into the user&#8217;s profile wall (as seen below), and into their friends&#8217; /home.php newsfeed.</p>
<p style="text-align: center;"><a href="http://www.snipe.net/wp-content/uploads/2009/04/fb_feed.jpg"><img class="aligncenter size-large wp-image-1786" title="fb_feed" src="http://www.snipe.net/wp-content/uploads/2009/04/fb_feed-560x322.jpg" alt="fb_feed" width="560" height="322" /></a></p>
<p>While the profile item is nice, the truly viral aspects come from the friends&#8217; newsfeed items. Most people don&#8217;t spend a lot of time on profile pages &#8211; they rely on their /home.php page for the overview of what their friends are doing by way of posted items, status updates and application messaging.</p>
<p>With the latest change in the Facebook API, suddenly feeds stopped appearing in the the newly redesigned friends&#8217; newsfeed, now referred to as the &#8220;stream&#8221;. They were still being pushed to the user&#8217;s profile, but as we already mentioned, the usefulness of putting feed items there is somewhat limited.</p>
<p><strong>With these new updates, publishUserAction no longer publishes anything to the users&#8217; friends&#8217; stream, and now only publishes one-line stories to the user&#8217;s own profile wall.</strong></p>
<h3>Enter Feed Forms and Facebook.showFeedDialog</h3>
<p>Using <a href="http://wiki.developers.facebook.com/index.php/Facebook.showFeedDialog" target="_blank">showFeedDialog</a>, the user is prompted whether or not they want to publish the action to their stream. While this does mean changing some application code, switching oer to the new feed system is actually very easy for the most part. (I cannot speak for how one would do it in a Flash-based application, as I haven&#8217;t had to tackle that yet.)</p>
<p>Assuming you&#8217;ve already created your feed template bundle in the <a href="http://developers.facebook.com/tools.php?feed">feed template console</a>, you&#8217;d do something like this:</p>
<p>[source='php']$feed_template = &#8220;{&#8216;filmname&#8217;:'&#8221;.$film_name.&#8221;&#8216;, &#8216;images&#8217;:[{'src':'".$film_cover."', 'href':'http://apps.facebook.com/snagfilms'}]}&#8221;;</p>
<p>echo &#8216;<script type="text/javascript">
Facebook.showFeedDialog(123456790, '.$feed_template.');
</script>&#8216;;[/source]</p>
<p>As long as you have a short-story version in your feed template, that&#8217;s pretty much all you have to do. <strong>If your previous feed templates only used one-line stories, you WILL have to create new feed template bundles that use short stories, as one-line stories are NEVER published to the stream.</strong> Otherwise, just stick that line of PHP/JavaScript into your form handler (or whatever script completes the action the user is initiating) in your application and you&#8217;re back in business. </p>
<p>To further complicate things, Facebook just announced the beta launch of their <a href="http://wiki.developers.facebook.com/index.php/Using_the_Open_Stream_API">Open Stream API</a> using <a href="http://wiki.developers.facebook.com/index.php/Stream.publish">Stream.publish</a>, which looks like it might offer a simpler-but-different method by which you can publish feeds. Fortunately for this article &#8211; and for the time being, my sanity &#8211; the Open Stream API is in beta, and only application developers can publish to their stream from their apps. As more information is available about Stream.publish, I&#8217;ll try to keep you updated.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/10/facebook_1.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Big Changes to the Facebook Platform" height="90" width="90" onmouseover="onover('Big Changes to the Facebook Platform')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/09/planning-a-facebook-application/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/n40212040147_6720.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Planning Your Facebook Application" height="90" width="90" onmouseover="onover('Planning Your Facebook Application')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/12/planning-a-facebook-application-part-two/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/n40212040147_6720.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Planning a Facebook Application: Part Two" height="90" width="90" onmouseover="onover('Planning a Facebook Application: Part Two')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/04/changes-to-facebooks-newsfeed/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>%$#^%$* Facebook Application Tabs</title>
		<link>http://www.snipe.net/2009/04/facebook-application-tabs/</link>
		<comments>http://www.snipe.net/2009/04/facebook-application-tabs/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 20:28:56 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=1774</guid>
		<description><![CDATA[So this is new. And by new I mean painfully similar to the types of major functionality bugs we see every time there is a large-scale functionality change in Facebook. I don&#8217;t know if this is a bug, or just undocumented, but I am unable to get the FBID of a user (even one who [...]]]></description>
			<content:encoded><![CDATA[<p>So this is new. And by new I mean painfully similar to the types of major functionality bugs we see every time there is a large-scale functionality change in Facebook.<span id="more-1774"></span></p>
<p>I don&#8217;t know if this is a bug, or just undocumented, but<strong> I am unable to get the FBID of a user (even one who has allowed and interacted with the app) if the application is on its own tab in a fan page.</strong> I can get it on the boxes tab (by way of a workaround below) or on its own canvas page, but <em>nothing </em>works for the application tab.</p>
<p>Part of one of the recent changes to the platform was that you could no longer use require_login() from a tab (boxes or application). You <em>can</em> still use it on the application&#8217;s canvas page, but when you try to use require_login() in a tab, you&#8217;ll get an error that tells you you cannot redirect, something like:</p>
<blockquote><p>fb:redirect: redirect forbidden by flavor TabFBMLFlavor</p></blockquote>
<p>A suggestion on the developer forums suggests using:<br />
[source='php']$is_tab = isset($_POST['fb_sig_in_profile_tab']);<br />
if( !$is_tab ) $user = $fb->require_login();[/source]</p>
<p>This basically checks to see if the application is being accessed via a tab (versus the canvas page or profile box). If it is being accessed via a tab, use the $_POST['fb_sig_in_profile_tab'], and if not, go ahead with require_login() as usual. </p>
<p>The problem is, while this works on <em>profile</em> tabs, it does NOT work on fan page tabs. When you use $_POST['fb_sig_in_profile_tab'] in an application on a fan page tab (or any of the other non-require_login() methods of getting a user&#8217;s ID) you end up with the ID of the fan page, NOT the viewing user. </p>
<p>This is a major problem for me, as many of the applications I have to build are not meant for addition to the directory, but are instead meant to be used only on a corporation&#8217;s fan page. The inability to access the user&#8217;s FBID severely limits what that application can do. In fact, it more often than not renders it completely useless.</p>
<p>To work around this, you can use the following to get the FBID of a user when your application is appearing in the Boxes tab:</p>
<p>[source='php']function get_user() {<br />
global $facebook;<br />
global $authorized;<br />
$authorized=true;</p>
<p>// this will fail if user hasn&#8217;t authorized:<br />
try { return $facebook->api_client->users_getLoggedInUser(); }</p>
<p>$authorized=false;<br />
return $facebook->get_canvas_user()<br />
}[/source]</p>
<p>and then setting the $user FBID variable with:</p>
<p>[source='php']$user = get_user();[/source]</p>
<p><strong>However, even this does not work on applications appear in their own tab on a fan page.</strong></p>
<p>I downloaded Facebook&#8217;s sample application, &#8220;Smiley&#8221;, to attempt to see how they did it. I&#8217;m certainly not new to Facebook application development, but I figured using their own code would help me see how they handle this particular issue. </p>
<p>I, of course, made the gross assumption that their own sample application would be updated with the most recent API calls and best practices.  Not only is the Smiley&#8217;s app not up to date with the most recent ApI changes, it is flat-out *broken*. Thanks to several files that are completely *missing*, Smiley&#8217;s doesn&#8217;t even run. The very first line of the index.php makes an include call to a file called constants.php that DOES NOT EXIST. Well done, as usual, Facebook. The new API changes have been out for weeks now &#8211; there is just no excuse foer the ongoing broken samples and stubbed or missing documentation.</p>
<p>I have spoken to Facebook and they insist that this was a policy decision to prevent applications from spamming users &#8211; however there are a few problems with this explanation:</p>
<ol>
<li>The FB user&#8217;s decide what applications can message them, email them, etc &#8211; and by blocking an app, they never hear from them again anyway. Application behavior is irrelevant.</li>
<li>If they were concerned with spamming, why does this behavior only emerge when the app is on its own tab? Its okay to spam from Boxes and canvas then?</li>
<li>If the user has allowed the application, they have voluntarily given the app their information.</li>
<li>Disallowing applications from accessing the FBID of users who have allowed the application renders many applications completely useless. They&#8217;re basically statis HTML pages, and it seems unlikely that Facebook would so detrimentally cripple such an important part of the platform.</li>
</ol>
<p>I suspect that I&#8217;m receiving inaccurate information from Facebook regarding this behavior, and I suspect this may be a bug. If this behavior was actually implemented to prevent applications from getting the FBID of users who have allowed it, the decision would have applied to Boxes as well.</p>
<p>I&#8217;m still going back and forth with Facebook on this, but I wanted to post it here in case other Facebook application developers are having the same trouble. When I discover the fix, I&#8217;ll post a followup here.</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/10/vitaminwater-new-moon-spot.png&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Extending Facebook Static FBML Tabs with Dynamic Content" height="90" width="90" onmouseover="onover('Extending Facebook Static FBML Tabs with Dynamic Content')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/06/fb-fanpages-fbml-box/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/04/facebook_pic.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Static FBML: Not Every Facebook Fan Page Needs An Application" height="90" width="90" onmouseover="onover('Static FBML: Not Every Facebook Fan Page Needs An Application')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/09/planning-a-facebook-application/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/n40212040147_6720.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Planning Your Facebook Application" height="90" width="90" onmouseover="onover('Planning Your Facebook Application')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/04/facebook-application-tabs/feed/</wfw:commentRss>
		<slash:comments>108</slash:comments>
		</item>
		<item>
		<title>Some Notes on Moving to Mosso</title>
		<link>http://www.snipe.net/2009/02/some-notes-on-moving-to-mosso/</link>
		<comments>http://www.snipe.net/2009/02/some-notes-on-moving-to-mosso/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 05:29:33 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[mosso]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=1431</guid>
		<description><![CDATA[It&#8217;s been over a month since I opened my account with Mosso, Rackspace&#8217;s cloud hosting division. Overall, I&#8217;ve been very happy with my decision &#8211; but there are a few things you may want to be aware of if you&#8217;re considering switching. These issues are not deal-breakers, and most restrictions can be easily worked around [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been over a month since <a href="http://fuse.sourceforge.net/sshfs.html">I opened my account with Mosso</a>, Rackspace&#8217;s cloud hosting division. Overall, I&#8217;ve been very happy with my decision &#8211; but there are a few things you may want to be aware of if you&#8217;re considering switching.</p>
<p><span id="more-1431"></span></p>
<p><strong>These issues are not deal-breakers</strong>, and most restrictions can be easily worked around &#8211; but it took me some digging to find the answers, so I figured I&#8217;d post them here in case any of you are running into the same challenges.</p>
<p><strong>These are not criticisms of Mosso </strong>- merely a head&#8217;s up on Mosso-specific configurations that may be confusing for folks in the process of switching. Workarounds for all of the challenges are posted here.</p>
<p>I&#8217;ll keep adding to this list &#8211; and I invite you to add your own in the comments. I&#8217;m still migrating sites, although I have the bulk of the heavy-duty ones moved already. (I was moving around 170 sites, so I took my time moving things so I could adequately troubleshoot and QA.)</p>
<h2>No SSH</h2>
<p>This isn&#8217;t news &#8211; I mentioned it <a href="http://www.snipe.net/2009/01/moving-to-mosso/">my previous article</a>, and they make no secret about not currently offering SSH (although it sounds like they&#8217;re working on possibly making it available.) They do offer <a href="http://fuse.sourceforge.net/sshfs.html" target="_blank">SSHFs</a> right now, and surprisingly, I have not run into any situations where not having ssh has been terribly prohibitive.</p>
<p><strong>If you have large databases to import when migrating a site, the process is very easy.</strong> Export your current database, upload it to Mosso, and jump onto Live Chat from your admin panel. Just give the tech on duty the location of your sql dump, and your database credentials (the chat is SSL-encrypted), and they&#8217;ll import it for you. I&#8217;ve had to do this at least 10 times now, and each time, the tech has taken care of the import immediately with no wait time at all.</p>
<h2>Quota on Mail Accounts</h2>
<p>The default quota on email is 1GB per domain. While this is <em>more</em> than enough for many people, I have some IMAP accounts with tens of thousands of messages. Good news: all you have to do is hop onto support chat and they will increase your mailbox quota to whatever you wish.</p>
<h2>Cron Jobs Require Output Email</h2>
<p>If you don&#8217;t need any cron jobs, this one won&#8217;t affect you in the least &#8211; but if you do, this can be a bit of a pain. When you set up a cron job through the admin, they require an email as the destination for an output message, even if your cron doesn&#8217;t have any output upon success. No big deal if your cron runs daily or weekly, but I have a few that run every 5 minutes &#8211; you can imagine how quickly I&#8217;d fill up my mailbox at that rate.</p>
<p>The solution here is pretty simple &#8211; create a specific email account for cron job output, like <em>&lt;crondump AT yourdomain DOT com&gt;</em>. Then, in your webmail account, set up a filter that automagically deletes them, so you don&#8217;t eat up server space.</p>
<h2>No Email Migration Scripts</h2>
<p>In general, this isn&#8217;t a big deal. If you use IMAP, the easiest &#8211; although not particularly elegant &#8211; solution is to have your old server account and your Mosso account set up in the same email program, and copy the messages from old to new.</p>
<p>I&#8217;m not going to lie &#8211; for someone like me, with hundreds of thousands of messages to move, this is a bit of a pain in the ass &#8211; but you only have to do it when you first set things up, so it&#8217;s really not that bad. Set Thunderbird up to move the messages right before you go to bed, and all will be right with the world when you wake up in the morning.</p>
<p>If you&#8217;re using POP3, the email messages are stored on your computer, so there&#8217;s no need to really do anything special. I recommend having both POP3 accounts (old and new) set up for the 48 hours after you flip DNS, just in case some sender&#8217;s ISPs are a little slow to clear their DNS cache, but after the 48 hours propagation time is up, you should be able to safely delete the old POP3 account.</p>
<h2>30-Second Script Timeout</h2>
<p>This shouldn&#8217;t come up in most situations, but if you have a script that takes longer than 30 seconds to finish executing, the load-balancer will return a &#8220;No suitable notes available&#8221; error. If Mosso is having issues, you&#8217;ll also see this same error, but your own scripts can trigger it if they are taking too long to finish. The solution that Mosso suggests (even in annoyingly inappropriate applications) is to employ a &#8220;loading&#8221; bar that keeps the connection alive with the server, so the load-balancer doesn&#8217;t give up on the request. Obviously, this is not always going to be an adequate solution, but shorter script timeout limits are something to keep in mind when deciding if Mosso will be a good fit.</p>
<p>Generally speaking, your scripts probably shouldn&#8217;t be taking over 30 seconds to execute, unless they are specifically designed to do some seriously heavy-lifting &#8211; in which case they are probably home-grown scripts and could be modified with a loading bar or similar device to work around the limitation.</p>
<h2>Unconfirmed: Issues with Facebook Applications That Use IFRAME</h2>
<p>I don&#8217;t know whether or not this truly is an issue, since all of my Facebook applications are written in FBML, but one user on the Mosso forums has reported an issue retaining the Facebook API session on Mosso&#8217;s servers. I suggested appending the fb_session code to the IFRAME src, which he says he did, but I cannot confirm whether he did, or whether something else is wrong with his app. This is just something to keep in mind, and perhaps something to test during your trial month if this is important to you.</p>
<h2>Tip: Dead-End Bandwidth-Eating Bots</h2>
<p>While Mosso gives you a considerable amount of bandwidth, and their rates if you go over are reasonable, you may wish to consider setting up your .htaccess file to dead-end known bad bots and spiders. From <a href="http://www.javascriptkit.com/howto/htaccess13.shtml" target="_blank">an article on Javascript Kit</a>:</p>
<blockquote><p>The definition of a &#8220;bad bot&#8221; varies depending on who you ask, but most would agree they are the spiders that do a lot more harm than good on your site (ie: an email harvester). A site ripper on the other hand are offline browsing programs that a surfer may unleash on your site to crawl and download every one of its pages for offline viewing. In both cases, both your site&#8217;s bandwidth and resource usage are jacked up as a result, sometimes to the point of crashing your server. Bad bots typically ignore the wishes of your robots.txt file, so you&#8217;ll want to ban them using means such as .htaccess. The trick is to identify a bad bot.</p></blockquote>
<p><a href="http://www.javascriptkit.com/howto/htaccess13.shtml" target="_blank">Their handy article</a> gives you a copy and paste solution to add to your .htaccess file that will return a 500 error to the known bots, spiders and site-rippers in the list.</p>
<h2>Ready to Switch?</h2>
<p>If you’re interested in giving Mosso a shot, they offer a 30 day risk-free trial (money back guarantee) &#8211; and <strong>if you use the promotional code REF-SNIPE, </strong><strong>you’ll get a $25 rebate/refund on your first month&#8217;s bill</strong>.  So basically, you get two months for free to give it a shot. If you’re still not sure or you have more questions, <a href="http://twitter.com/Mosso" target="_blank">follow @mosso on twitter</a>. They’re very responsive, and often quite funny.</p>
<h2>Already Using Mosso?</h2>
<p>Are you using Mosso already? What do you think about it so far? And what quirks have you encountered?</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/03/and-still-more-notes-on-mosso/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/data_center.gif&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="And Still More Notes on Mosso" height="90" width="90" onmouseover="onover('And Still More Notes on Mosso')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/01/moving-to-mosso/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/01/dunecat.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Moving to Mosso" height="90" width="90" onmouseover="onover('Moving to Mosso')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/02/some-notes-on-moving-to-mosso/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Advertising on Facebook &#8211; Part Three</title>
		<link>http://www.snipe.net/2009/02/advertising-on-facebook-part-three/</link>
		<comments>http://www.snipe.net/2009/02/advertising-on-facebook-part-three/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 16:53:38 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[social networks]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=1310</guid>
		<description><![CDATA[Part three of this series will deal specifically with an important issue that had come up in part one: Some users, albeit a tiny percentage of overall users, were encountering a malware warning on pages where SocialCash ads are being served. This is, of course, a BFD. As I mentioned in section one, while I [...]]]></description>
			<content:encoded><![CDATA[<p>Part three of this series will deal specifically with an important issue that had come up in <a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-one/" target="_blank">part one</a>: Some users, albeit a tiny percentage of overall users, were <strong>encountering a malware warning on pages where SocialCash ads are being served</strong>. <span id="more-1310"></span><strong></strong></p>
<p><strong>This is, of course, a BFD.</strong> As I mentioned in <a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-one/" target="_blank">section one</a>, while I was not going to assume that SocialCash was knowingly running any kind of malware, the mere appearance of impropriety can do irreparable damage to the reputation of both an application and the developers associated with it.</p>
<p>The back and forth on this is a little lengthy, but I thought it might be valuable for you to to see how this played out. The short version &#8211; after running some tests, they feel that the malware alerts are false alarms triggered by overly aggressive heuristic detection algorithms. They then went on to suggest that I might want to find a new ad network.</p>
<p>*blink*</p>
<p>So here&#8217;s the long version, starting from the very beginning&#8230;</p>
<blockquote><p><strong>Email from app user: Feb 1, 2009 11:05AM</strong></p>
<p>I like the app or at least a lot of my friends do.</p>
<p>However, in the last two days my anti-virus has been flagging up a malicious link on your start page. It appears to be a script that, if allowed to run, will capture key strokes and other info. I re-checked using Norton anti-virus (I use Avira anti-virus normally) and it also flagged the same script.</p>
<p>Avira warns me that &#8221; functionalities include &#8211; but are not limited to &#8211; downloading trojans, link to other infected pages, spy the user or spoof the content of a banking site. &#8221;</p>
<p>Would you please check the page and remove this?</p></blockquote>
<p>I immediately replied back to the user, asking if they could possibly provide any more information on what antivirus they&#8217;re running, whether it was the top ad or the bottom ad that triggered it (since I use SocialCash on top, SocialMedia on the bottom, and I needed to know whose ass to chew off), etc. They quickly replied:</p>
<blockquote><p><strong>Reply from app user: Feb 1, 2009 &#8211; 12:59PM</strong></p>
<p>It happened in two different apps on FB who have the same ad server as you have at the top of your page &#8211; socialcash I think?</p></blockquote>
<p>Okay, so it looked like SocialCash was potentially the issue. I sent an email to SocialCash at 2:03PM that same day, just moments after receiving the application user&#8217;s reply:</p>
<blockquote><p><strong>Email from me to SocialCash:  Feb 1, 2009 &#8211; </strong><strong>2:03PM</strong></p>
<p>I received this notification from one of our users today. After discussing this with him further, he says it was happening on two other apps that were being served by SocialCash. When I removed the SocialCash ad code and stuck only with SocialMedia, the alert went away.</p>
<p>This is absolutely unacceptable. I don&#8217;t know whether this was a legitimate threat or not, but even if it was erroneously triggering this warning, this type of thing could do serious damage to the reputation of this application and any other applications associated with my name.</p>
<p>I would like an explanation of what happened here.</p></blockquote>
<p>Maybe I came off a little too strong &#8211; I don&#8217;t think so. Malware alerts are, as I mentioned, a BFD, and to find out about this from a user sucks.</p>
<p>SocialCash replied, over 24 hours later &#8211; an admittedly longer response time than I would have hoped for in a situation where users think my application has a virus.</p>
<blockquote><p><strong>Email from SocialCash to me: Feb 2, 2009 &#8211; 4:53PM</strong></p>
<p>We would never serve intentionally serve anything infectious or damaging, so this is definitely news to us.  What ad was it?  I see the users information below, so we will sync up with our tech side to see what we can find out.  I&#8217;m sorry that this has happened.  The more information you&#8217;re able to pass on, the quicker we can identify the issue.</p></blockquote>
<p>I replied back that I was asking for more information from the users:</p>
<blockquote><p><strong>Email from me to SocialCash: Feb 2, 2009 &#8211; 4:57PM</strong></p>
<p>I wish I knew which ad it was &#8211; I&#8217;d have sent a screenshot and explanation. Problem is, I naturally had to yank the SocialCash ads, lest my app get a reputation for distributing malware &#8211; so unless the reporting party happens to remember what the ads is, the only way for me to reproduce it is to turn those ads back on, which I don&#8217;t want to do until the situation is resolved.  I replied to him the day he emailed me [yesterday], asking if he could describe the ad, etc &#8211; but he hasn&#8217;t replied yet.</p></blockquote>
<p>Days passed with no reply from SocialCash. I was hoping the issue was perhaps transient, so I decided to enable SocialCash ads again. Shortly afterwards, I received anotger malware complaint, this time from a totally different user. I sent another email to SocialCash, since I hadn&#8217;t heard from them.</p>
<blockquote><p><strong>Email from me to SocialCash: Feb 5, 2009 &#8211; 4:01PM</strong></p>
<p>Any progress on this? I received another complaint today. We are going to lose users if this situation doesn&#8217;t get resolved quickly.</p>
<p>&#8220;everytime i click on to this add on my antivirus avira throws up a malware issue at least twice per page why is this are you infected???&#8221;</p></blockquote>
<p>At this point, I reached out to some Windows users on Twitter. I created one page with only a SocialCash ad, and one page with only a SocialMedia ad, that way I could be 100% positive that SocialCash was the issue. I had 5 friends using Windows refresh each page upwards of 60 times, and their antivirus never triggered an alert. While I was relieved to know that most windows users were apparently not seeing this alert, it naturally made troubleshooting much harder.</p>
<p>Luckily, both of the reporting users had gotten back to me at this point, and both reported that the alert only popped up on the SocialCash page. SocialMedia was off the hook for sure. After doing a little more digging, I sent SocialCash an update with what I had found:</p>
<blockquote><p><strong>Email from me to SocialCash: Feb 5, 2009 &#8211; 5:33PM</strong></p>
<p>It looks like both people who reported a problem were running Mozilla/5.0 (Windows; Windows NT 6.0;rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 &#8211; one with US-english as default language and one with en-GB as default language. Both reporting the problem with Avira, and one confirmed the same alert with Norton.</p></blockquote>
<p>The next day, one of the Facebook application users was kind enough to email me back with more specifics and a screenshot of the alert they&#8217;re receiving. I forwarded this on to SocialCash:</p>
<blockquote><p><strong>Email from me to SocialCash: Feb 6, 2009 &#8211; 1:38PM</strong></p>
<p>Here is more information &#8211; the best so far. Steven says its occurring on every page load of the SocialCash test page, and sometimes pops up several alerts on a single page load. See the attached screenshot of the virus alert.</p>
<p>Perhaps you should get in touch with Avira?</p></blockquote>
<p>SocialCash replied later that day with their conclusion:</p>
<blockquote><p><strong>Email from SocialCash to me: Feb 6, 4:38PM</strong></p>
<p>We’ve done some testing, and have confirmed that there is no malware inside of our advertisements.  Please know that no other users or publishers have reported positive hits with antivirus software.</p>
<p>The alert is caused by Javascript compression being flagged as potentially malicious by heuristic detection algorithms.  It’s a false positive that happens only when users enable heuristic detection in their anti-virus software.  There are many frequently used script libraries available on the web that cause a similar false alerts to be thrown.  We believe that the benefit of a much smaller download, and hence faster ad rendering and better performance, outweighs the smaller number of tech-savvy users who will surf the web with these controls enabled.  Since we’ve confirmed that our advertisements do not contain malware, and because that this is the first report we’ve received (amongst billions of impressions), we feel that this is the right approach to take to provide maximum value to the largest population of our users.</p>
<p>Given that you have sophisticated users who are raising these concerns to you, the last thing we want is for your use of SocialCash to impact your user base.  We don’t think there is a way to remove this behaviour from the subset of your users who see these errors.  This all being said, it may make sense for you to discontinue the use of our advertisements if you think this will have a negative impact on your overall user population.  We obviously take this type of feedback very seriously, and wanted to thank you for bringing this issue to our attention.</p>
<p>Please let us know if you would like any further information, and let us know your if you intend to continue to use our product.</p></blockquote>
<p><strong>This is the first report they have received, among billions of impressions? It seems statistically impossible that my application has received two reports of this problem</strong>, with only 100k monthly active users. Out of their billions of impresions, my puny 100k monthly active users make up only a tiny fraction of those impressions, so what are the the odds that not one but two of my users brought up a problem that no one else brought up.</p>
<p><strong>The application is not one that appeals to particularly sophisticated people. </strong>It&#8217;s an absurdly simple application that lets people blow kises to each other &#8211; not exactly rocket surgery. The two users who reported it were clearly more savvy than an average user, which is probably why they actually contacted me about it, rather than freaking out and closing their browser window, convinced my application would steal their identity, email their grandmother all of their porn, make their ipod play only Jethro Tull and make their TV record &#8220;Gigli&#8221;. (<a href="http://www.youtube.com/watch?v=k-GaRKDsz-Y" target="_blank">Thanks, Weird Al!</a>)</p>
<h2>Conclusion</h2>
<p>I&#8217;m glad SocialCash claims to take these reports very seriously, but deciding their advertisment loading time is more important than the reputation of my application is not acceptable to me. &#8220;We take this sort of thing very seriously, and we appreciate you reporting it to us so we could completely ignore it and keep doing what we&#8217;re doing.&#8221;</p>
<p>It would be different if something in their ad code was causing a weird display issue for users of certain browsers and operating systems. But this isn&#8217;t some flaky display quirk. This isn&#8217;t something harmless that no one will notice. <strong>People visiting my application think I am trying to do them harm.</strong> Even if the percentage of people experiencing this issue is very small, that message is not one I am willing to live with.</p>
<p>Maybe I&#8217;m being too hard on SocialCash &#8211; but I take my reputation seriously. It&#8217;s a shame they don&#8217;t. The impression I get from my email exchange is that I am a pain in the ass client to them, and not worth the hassle to them for the paltry 100k mau I bring to the table. At this point, they don&#8217;t seem to want my business, and I care more about my reputation than the $15 a day I make them from. So I&#8217;ll be exploring one of the alternate ad networks, replacing SocialCash with whichever seems to be the best. Stay tuned!</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-two/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/facebook-office-glass.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Advertising on Facebook &#8211; Part Two" height="90" width="90" onmouseover="onover('Advertising on Facebook &#8211; Part Two')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-one/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/chipdees.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Advertising on Facebook &#8211; Part One" height="90" width="90" onmouseover="onover('Advertising on Facebook &#8211; Part One')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/12/planning-a-facebook-application-part-two/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/n40212040147_6720.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Planning a Facebook Application: Part Two" height="90" width="90" onmouseover="onover('Planning a Facebook Application: Part Two')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/02/advertising-on-facebook-part-three/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Advertising on Facebook &#8211; Part Two</title>
		<link>http://www.snipe.net/2009/02/advertising-on-facebook-part-two/</link>
		<comments>http://www.snipe.net/2009/02/advertising-on-facebook-part-two/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 08:04:20 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[social networks]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=1206</guid>
		<description><![CDATA[In part one of this series, we talked about your options &#8211; and possible concessions you may have to make if you opt to advertise on Facebook applications. Part two will discuss the returns I have seen so far based on my own applications, and the ad network&#8217;s payout schedule. If you wandered in from [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-one/" target="_blank">part one of this series</a>, we talked about your options &#8211; and possible concessions you may have to make if you opt to advertise on Facebook applications. Part two will discuss the returns I have seen so far based on my own applications, and the ad network&#8217;s payout schedule.</p>
<p><span id="more-1206"></span><strong>If you wandered in from Google and haven&#8217;t yet read <a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-one/" target="_blank">the first article in the series</a>, I strongly recommend it.</strong> There are some significant concerns discussed there that you may want to be aware of before implementing ads on your Facebook application.</p>
<h2>A note on ad-blockers</h2>
<p>For some reason, perhaps the url of the ad network sites themselves, the admin/reporting areas of SocialMedia (and Cubics, although I didn&#8217;t implement their ads) appear broken if you&#8217;re using AdBlock Pro for Firefox. The header images, and even some of your reporting tools, are being interpreted as advertisements, so they won&#8217;t display properly. The easiest way to deal with this is just to disable AdBlock Pro for the network domains giving you trouble.</p>
<div id="attachment_1212" class="wp-caption aligncenter" style="width: 315px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-7.png"><img class="size-full wp-image-1212" title="picture-7" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-7.png" alt="picture-7" width="305" height="210" /></a><p class="wp-caption-text">Disable AdBlock Pro per site</p></div>
<h2>A Note on AdBlockers &amp; Your Reporting Console</h2>
<p>Of SocialCash and SocialMedia, SocialCash definitely has a better reporting console &#8211; at least for my purposes here, since they let you see a daily performance breakdown  at a glance, where SocialMedia only gives you a graph view overview, and you have to select specific dates from a single dropdown menu.</p>
<p>Again, if you&#8217;re using AdBlock Pro, the flash performance graph may not appear for you until you allow ads on the SocialMedia domain.</p>
<p>Day-by-day reporting may not be important to you, and I suspect it will be less important to me as time goes on and I have more overall data.</p>
<h2>The Revenue Model</h2>
<p>Neither SocialCash nor SocialMedia do a stellar job of explaining exactly what your ad revenue is based (per impressions, per click, etc.), however I sent an email to SocialCash, asking about the rather dramatic fluctuation in revenue from day to say. They replied back:</p>
<blockquote><p>Many of our advertisers take several days to report sales. This means that for the first few we days, we don’t know how much your app is earning. The flip side to this lag is that if you stop running ads with us, you will continue to earn money as sales are reported to us.</p>
<p>Reliable data is only reached looking across a minimum number of impressions rather than days. This is typically over 150,000 impressions, but also depends largely on the placement of the ad, how the ads fit in the flow of your application, and your audience’s general engagement patterns. The same ad can yield widely varying click through rates and conversions based on these factors. We’re currently putting together some knowledge documents for developers on this front, so let us know if you’d like any guidance on these areas.</p>
<p>This simply means that it will take a couple of days to see a reliable eCPM reading. You’ll find this to be the case with all other performance networks as well. (This is not true with “brand” networks that pay a fixed amount for every impression.)</p></blockquote>
<p><strong>This leads me to believe that the revenue model is not based on impressions or even click-throughs, but instead based on user buy-in.</strong> The user adds the advertised application, subscribes to the advertiser&#8217;s service, etc &#8211; and you earn money. It&#8217;s been my experience that although you end up with fewer revenue points (since you&#8217;re requiring the user to buy-in, not just click), however the payoff is higher than a simple click-through based model.</p>
<p>Basically, since they&#8217;ve actually made a sale, they&#8217;ll pay higher per buy-in than they would for a simple click-through, which gives them no guarantee of actual revenue for their money spent.</p>
<p>I cannot find the model on the SocialMedia website, however I will confirm how their ad revenue is determined over the next few days and update this section. I suspect it is a similar model to SocialCash, based on the fluctuations in earnings.</p>
<h2>Payouts</h2>
<p>Both SocialCash and SocialMedia offer PayPal and a mailed check as a way to pay you your earnings.</p>
<p><strong>According to an email reply from SocialCash, payouts happen mid-month and end-of-month, give or take a day or two.</strong> Payments are allegedly made automatically, once you have earned over $50. I say allegedly only because I haven&#8217;t been with them long enough to say for sure &#8211; guess I&#8217;ll find out this week.)</p>
<p><strong>For SocialMedia, developers have the option of being paid on a weekly basis though PayPal or by check. </strong>This process can be automated. All payment requests must be made by 10pm Wednesday night to be paid out that coming Friday. All requests made after Weds 10pm will be paid out Friday of the next week. The minimum PayPal payout amount is $25.</p>
<h2>My Results So Far</h2>
<p><strong>I set up ads on my Facebook application on January 5, and as of end of day February 1 &#8211; just over three weeks &#8211; I have made $404.97 &#8211; 206.26 from SocialCash, and </strong><span id="total_earnings_count"><strong>$198.71 from SocialMedia. </strong>While these numbers seem close, there are two details that should be noted: I started with SocialMedia a few days after I started with SocialCash &#8211; and the SocialCash ad has the top banner position, while the SocialMedia ad is a footer banner.</span></p>
<p><span>Three weeks isn&#8217;t long enough to make any decisions written in stone, however the fact that SocialMedia is basically keeping pace with SocialCash, given the fact it had a later start and has an arguably much less prominent position on the page. Given the fact that their ads seem (slightly) less deceptive &#8211; and I haven&#8217;t had anyone reporting them for virus alerts on the application as I have with SocialCash (<a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-one/">see previous article</a>), I am strongly favoring SocialMedia over SocialCash at the moment.</span></p>
<p><span><strong>At the beginning of January, when I first added advertisements, I had approximately 54k monthly active users. As of February 1, I have 103k monthly active users.</strong> I was expecting a sharp drop in engagement once advertisements were implemented, figuring a lot of people would opt to use a similar application that didn&#8217;t have advertisements &#8211; however that is clearly not the case. </span></p>
<p><span>Here are my Facebook Insights report for the application from the beginning of the application launch:<br />
</span></p>
<div id="attachment_1228" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-11.png"><img class="size-large wp-image-1228" title="picture-11" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-11-560x290.png" alt="Monthly Stats Graph for Facebook Application" width="560" height="290" /></a><p class="wp-caption-text">Monthly Stats Graph for Facebook Application from Dec</p></div>
<p>Notice there is no significant drop in user engagement during the week of January 6, just after advertisements were added.</p>
<p>And here are the stats starting when the advertisements were added:</p>
<div id="attachment_1229" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-12.png"><img class="size-large wp-image-1229" title="picture-12" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-12-560x289.png" alt="Facebook Stats starting from January 7" width="560" height="289" /></a><p class="wp-caption-text">Facebook Stats starting from January 7</p></div>
<p><span>One would think that the ad revenue graphs would be at least somewhat similar to the engagement graph, however I have found that this isn&#8217;t the case at all. </span></p>
<p><span>Here are my stats from SocialCash, by week:</span></p>
<div id="attachment_1233" class="wp-caption aligncenter" style="width: 548px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-13.png"><img class="size-large wp-image-1233" title="picture-13" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-13-538x560.png" alt="SocialCash stats by week" width="538" height="560" /></a><p class="wp-caption-text">SocialCash stats by week</p></div>
<p>At the week level, you can&#8217;t see exactly how volatile the ups and downs are, so here are the past two weeks:</p>
<div id="attachment_1234" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-15.png"><img class="size-large wp-image-1234" title="picture-15" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-15-560x322.png" alt="SocialCash by week" width="560" height="322" /></a><p class="wp-caption-text">SocialCash by week</p></div>
<div id="attachment_1236" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-17.png"><img class="size-large wp-image-1236" title="picture-17" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-17-560x320.png" alt="SocialCash by week" width="560" height="320" /></a><p class="wp-caption-text">SocialCash by week</p></div>
<p>Because the reporting options for SocialMedia are not as robust, I can&#8217;t provide the same overviews as easily, but this is my performance over time for SocialMedia.</p>
<div id="attachment_1238" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-18.png"><img class="size-large wp-image-1238" title="picture-18" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-18-560x128.png" alt="SocialMedia stats since inception" width="560" height="128" /></a><p class="wp-caption-text">SocialMedia stats since inception</p></div>
<h2>Conclusion</h2>
<p>This experiment continues &#8211; three weeks is definitely not long enough to speak definitively about advertisements on Facebook, which ad network is the right fit, and which one will give you the most bang for your application buck. So far, I&#8217;m leaning towards SocialMedia, for the reasons detailed in the first article and this one &#8211; and the fact that they seem to be able to hold their own with regard to revenue is a big plus.</p>
<p>I&#8217;ll keep you posted on future progress and statistics &#8211; and SocialCash got back to me regarding the virus alert some users were reporting &#8211; <a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-three/">check out part three in the series</a> to learn more about it, and why I won&#8217;t be using SocialCash anymore.</p>
<p style="text-align: center;">

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-one/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/chipdees.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Advertising on Facebook &#8211; Part One" height="90" width="90" onmouseover="onover('Advertising on Facebook &#8211; Part One')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-three/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/facebooksocialads.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Advertising on Facebook &#8211; Part Three" height="90" width="90" onmouseover="onover('Advertising on Facebook &#8211; Part Three')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/12/planning-a-facebook-application-part-two/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/n40212040147_6720.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Planning a Facebook Application: Part Two" height="90" width="90" onmouseover="onover('Planning a Facebook Application: Part Two')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/02/advertising-on-facebook-part-two/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Advertising on Facebook &#8211; Part One</title>
		<link>http://www.snipe.net/2009/02/advertising-on-facebook-part-one/</link>
		<comments>http://www.snipe.net/2009/02/advertising-on-facebook-part-one/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 06:20:25 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[social networks]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=1186</guid>
		<description><![CDATA[I have a Facebook application that seems to be doing rather well &#8211; over 100k monthly active users after just two months, and gaining by about 1.5k every day. I&#8217;ve been toying with trying to monetize that in some way, and the most obvious way (that requires the least amount of effort) is to add [...]]]></description>
			<content:encoded><![CDATA[<p>I have a Facebook application that seems to be doing rather well &#8211; over 100k monthly active users after just two months, and gaining by about 1.5k every day. I&#8217;ve been toying with trying to monetize that in some way, and the most obvious way (that requires the least amount of effort) is to add banner advertisements.</p>
<p><span id="more-1186"></span></p>
<p><strong>This article series replaces my previous article, <a href="http://www.snipe.net/2009/01/advertising-on-facebook-applications-an-experiment/" target="_blank">Advertising on Facebook &#8211; An Experiment</a>, published in January. The information provided in the previous article will be provided in this series, but in a more organized, informative manner. That article is deprecated.</strong></p>
<h2>Social Media Advertising Networks</h2>
<p>There are a handful of advertising networks that seem to be the top options available:</p>
<ul>
<li><a href="http://www.socialcash.com" target="_blank">SocialCash</a></li>
<li><a href="http://www.socialmedia.com" target="_blank">SocialMedia</a></li>
<li><a href="http://www.rockyouads.com/" target="_blank">RockYou</a></li>
<li><a href="http://www.cubics.com/">Cubics</a></li>
<li><a href="http://www.offerpalmedia.com/" target="_blank">Offerpal</a> (points-based offers)</li>
<li><a href="http://www.adparlor.com/" target="_blank">AdParlor</a></li>
</ul>
<p>As of now, I have only experimented with SocialCash and SocialMedia, although I may expand the experiment to include others soon. SocialCash and SocialMedia seem to be the most popular choices of the above four, and SocialMedia has just raised an additional $6million in venture capital after coming out strong in 2008.</p>
<p>According to <a href="http://venturebeat.com/2009/01/29/social-ad-network-social-media-gets-funding-boost-after-strong-year/" target="_blank">an article in Venture Beat</a>, Social Media says it brought in between $15 and $20 million in revenue last year, mainly due to successful sales in the last six months.</p>
<h2>A note about the ads</h2>
<p>The types of ads offered by both SocialCash and SocialMedia tend to be what I consider a little deceptive. By that I mean many of them are engineered specifically to look like part of the application, and often use the application user&#8217;s name, photo and friend&#8217;s photos in the ad itself. SocialCash seems to be more guilty of this than SocialMedia, but both rely on similar tactics.</p>
<div id="attachment_1193" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-4.png"><img class="size-large wp-image-1193" title="picture-4" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-4-560x79.png" alt="Ad by SocialCash" width="560" height="79" /></a><p class="wp-caption-text">Ad by SocialCash</p></div>
<p><strong>Some of the images in the above ad are profile photos from my friends Facebook profiles.</strong> This ad links to a mysterious Facebook app called <a href="http://www.facebook.com/apps/application.php?id=44491432709" target="_blank">Jamster Mobile Screensaver</a>. I have no idea if this application is legit, and am not willing to sign-up and give it my mobile number to find out, but it feels fishy to me. Sort of reminds me of those &#8220;text L-O-S-E-R to shortcode 666666 for texts from hot girls&#8221; type of thing you see on TV at oh-my-god-o&#8217;clock in the morning.</p>
<div id="attachment_1194" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-5.png"><img class="size-large wp-image-1194" title="picture-5" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-5-560x82.png" alt="Another sample ad by SocialCash" width="560" height="82" /></a><p class="wp-caption-text">Another sample ad by SocialCash</p></div>
<p><strong>And in this ad, also by SocialCash, the ad pulls in my profile photo and my name.</strong> The advertiser site you get to when you click on seems to be some sort of Scrabble-type game, which requires the user to download an Active-X component to play. While I have no justified reason to believe this is suspect, an ad linking to a site that requires a download rubs me the wrong way, big time.</p>
<p>Another ad-type I have seen from SocialCash is a similar-style ad that leads you to a &#8220;quiz&#8221; website. At the end of the &#8220;quiz&#8221;, the website asks for your mobile phone number (without really explaining why), and in small text at the bottom, informs the user that they will be billed $19.95 per month for this service &#8211; when they are not even particularly clear on what the service actually is.</p>
<p>Still another ad style I have seen from them is one that leads you to a website that when you try to leave, a javascript alertbox pops up informing the user that they are going to miss out if they close the window, and sometimes even spawns a new popup window after the user has confirmed they want the window to close. I have a real problem with these kinds of ads. They feel a lot like the malware sites that try to convince (windows) users that their computer is infected, and they have to download this software to clean it. The software is, of course, malware and will subject the installer to a variety of ills from keylogging to unpromoted ads.</p>
<p><strong>I am absolutely not implying that the advertisers with SocialCash are promoting malware </strong>- just making the comparison in how that type of ad feels to me, someone who&#8217;s been around the Internet block for 15 years. That said, I received a troubling message from one of my application users today, which I will address later in this article.</p>
<p><strong>In the SocialMedia ad below, you can see they&#8217;re not pulling in as many user details, but a less savvy application user might not recognize this as an ad, and may actually think that this &#8220;Valentines Cards&#8221; thing is somehow related to the application itself.</strong> On the possible upside, the destination website, MyFunCards.Com, does not seem to be a paid service and seems harmless enough, although I certainly cannot speak to their SPAM policies or what they do with people&#8217;s email addresses when you send or receive a card from them.</p>
<div id="attachment_1192" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.snipe.net/wp-content/uploads/2009/02/picture-6.png"><img class="size-large wp-image-1192" title="picture-6" src="http://www.snipe.net/wp-content/uploads/2009/02/picture-6-560x78.png" alt="Ad by SocialMedia" width="560" height="78" /></a><p class="wp-caption-text">Ad by SocialMedia</p></div>
<h2>The Conundrum</h2>
<p><strong>My own personal feelings are that these types of ads are not entirely ethical. The problem is, they <em>work</em> &#8211; and their somewhat sneaky tactics are exactly <em>why</em> they work. </strong>Facebook users suffer from banner-blindness as much as any other web user, so your standard, run-of-the-mill banner ads just won&#8217;t get as high of a click-through rate. So before you begin, you need to ask yourself whether or not you can deal with your name being associated with advertisements that may not reflect your own ethics.</p>
<p>Ads that trick a user into clicking on them by making it seem like its part of the application functionality (&#8220;you have 1 new message!&#8221;) are deceptive. Offers that throw a javascript window alertbox when a user tries to close the advertisement page, asking if they are really sure they want to leave and miss out on xyz implements the same tactics that malware sites use. It just doesn&#8217;t feel right to me.</p>
<h2>What SocialCash Had to Say</h2>
<p>When I first signed up in January, I emailed SocialCash, expressing some concern over the types of ads being run. They replied with the following via email (in two separate emails, condensed for clarity):</p>
<blockquote><p>Types of ads/offers.  One quick point on terminology:  “Ads” are the banners themselves; “offers” are what the user sees after clicking on an ad.  Your question seems to be on the offers.  We’ve been in the online marketing business since 2000 (on Facebook since early 2007) and advertisers range from large brands vying for app installs to tourism companies advertising discounted trips to Paris.   We display ads over 100+ countries.  In this range of advertisers is also mobile content, which provides users scheduled content on their mobile phone for a monthly fee.   This is a service many users enjoy worldwide[...]</p>
<p>[...]We’re in the process of upgrading our ads and you’ll see a change-over in the near term.  And like we said before, we have a wide mix of both ads and offers.  To fully understand the available options with advertising, we’d encourage you to do what most developers do and try multiple ad networks at once.  This is really the best way to learn the ins and outs of optimizing and monetization.  That experience also enables a great deal of choice for you on the whos, whats, wheres, etc. of advertisements within your applications.   There are tons of great resources out there!</p></blockquote>
<h2>An Additional Concern</h2>
<p><strong>As I mentioned earlier in the article, I received a troubling message from one of my application users today</strong>. I have emailed SocialCash about this, and expect to hear back from them tomorrow, but this situation was drastic enough for me to pull their ads from my application today. This is the message I received:</p>
<blockquote><p>I like the app or at least a lot of my friends do.</p>
<p>However, in the last two days my anti-virus has been flagging up a malicious link on your start page. It appears to be a script that, if allowed to run, will capture key strokes and other info. I re-checked using Norton anti-virus (I use Avira anti-virus normally) and it also flagged the same script.</p>
<p>Avira warns me that &#8221; functionalities include &#8211; but are not limited to &#8211; downloading trojans, link to other infected pages, spy the user or spoof the content of a banking site.</p></blockquote>
<p>I replied back to this user immediately (for obvious reasons), and they replied again:</p>
<blockquote><p>It happened in two different apps on FB who have the same ad server as you have at the top of your page &#8211; socialcash I think?</p></blockquote>
<p><strong>This, my friends, is a deal-breaker.</strong> If they do not have an adequate explanation for what happened, I will no longer be using SocialCash. Even if the advertiser/advertisement is not actually malware and was erroneously labeled as such, it is their responsibility to make sure something like this NEVER happens. With all the actual virus activity on Facebook, sometimes like this can ruin the reputation of an application &#8211; and once you lose the user&#8217;s trust, you WILL NOT GET IT BACK.</p>
<p><strong>UPDATE: For more information on this issue, <a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-three/" target="_self">click here to read Part Three</a>.</strong></p>
<p>In the next article in the series, I show you my performance stats. <a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-two/" target="_self">Click here to go to Part Two</a>!</p>

 <script type="text/javascript">
	<!--
		function onover(what){
	document.getElementById('blurbtext').innerHTML=''+what+'';
	}
	function onout(){
	document.getElementById('blurbtext').innerHTML='&nbsp;';
	}
	-->
	</script>



<h3 style="padding-bottom: 0px; margin-bottom: 0px;">Also check out: <br /><span id="blurbtext"><br /></span></h3>

<div id="relatedposts">




		
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-three/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/facebooksocialads.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Advertising on Facebook &#8211; Part Three" height="90" width="90" onmouseover="onover('Advertising on Facebook &#8211; Part Three')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2009/02/advertising-on-facebook-part-two/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2009/02/facebook-office-glass.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Advertising on Facebook &#8211; Part Two" height="90" width="90" onmouseover="onover('Advertising on Facebook &#8211; Part Two')" onmouseout="onout()" /></a></div>

			
               

        
        
        
		<div class="yarppimg"><a href="http://www.snipe.net/2008/12/planning-a-facebook-application-part-two/" rel="bookmark">
		<img src="http://www.snipe.net/wp-content/themes/snipe/thumb.php?src=http://www.snipe.net/wp-content/uploads/2008/12/n40212040147_6720.jpg&amp;h=90&amp;w=90&amp;zc=1&amp;q=95" alt="Planning a Facebook Application: Part Two" height="90" width="90" onmouseover="onover('Planning a Facebook Application: Part Two')" onmouseout="onout()" /></a></div>

	</div>

]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/02/advertising-on-facebook-part-one/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>

