<?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>Hung Truong: The Blog! &#187; Web</title>
	<atom:link href="http://www.hung-truong.com/blog/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hung-truong.com/blog</link>
	<description>I say potato, you say potato...</description>
	<lastBuildDate>Sun, 22 Jan 2012 18:10:30 +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>Dropbox Referrals with Google Adwords</title>
		<link>http://www.hung-truong.com/blog/2011/11/02/dropbox-referrals-with-google-adwords/</link>
		<comments>http://www.hung-truong.com/blog/2011/11/02/dropbox-referrals-with-google-adwords/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 00:13:54 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[adwords]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=2525</guid>
		<description><![CDATA[I read a tweet from someone a while back about how they used Google Adwords to max out their Dropbox referral disk space. I thought this was a clever hack and decided to try it for myself. I made a new Adwords account and entered a coupon code from Dreamhost for $75 in free Adwords [...]]]></description>
			<content:encoded><![CDATA[<p>I read a tweet from someone a while back about how they used Google Adwords to max out their Dropbox referral disk space. I thought this was a clever hack and decided to try it for myself. I made a new Adwords account and entered a coupon code from Dreamhost for $75 in free Adwords money.</p>
<p>I ran into a few issues with my first ads. They were running okay in the beginning, but were getting shot down in the review process for trademark issues. I couldn&#8217;t figure out why this was the case, since I had seen multiple blog posts describing how to set up the ads with no mention of trademark issues. I tried a few tweaks, and removed &#8220;Mac&#8221; from the copy of my ads, thinking that the word might have triggered the trademark issue.</p>
<p>The first set of ads without &#8220;Mac&#8221; in them ended up getting approved, and I was on the fast track to Dropbox space gluttony. Here&#8217;s a screenshot of what my campaign looked like (until I stopped it because I maxed out on referrals):</p>
<p><a href="http://www.hung-truong.com/blog/wp-content/uploads/2011/11/Dropbox-Adsense.png" rel="lightbox[2525]"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2011/11/Dropbox-Adsense-500x442.png" alt="" title="Dropbox Adsense" width="500" height="442" class="aligncenter size-medium wp-image-2526" /></a></p>
<p>Things looked like smooth sailing and I think I only used something like $20 worth of credit (though I could&#8217;ve easily optimized for spend, I kinda wanted to finish more quickly, so I set my cpcs aggressively). I was gonna change the ads and open it up for friends to get referral space, too.</p>
<p>Then yesterday, with no warning, I got an email that my account had been suspended. There wasn&#8217;t really any good explanation for this. When I look at my account, it says:</p>
<blockquote><p>Your Google AdWords account has been permanently suspended for repeated violation of AdWords or Landing Page and Site policies in this or a related account.</p>
<p>and</p>
<p>Your Google AdWords account has been permanently suspended because your billing information in this or a related account could not be verified.</p></blockquote>
<p>I&#8217;m not sure I could come up with a more vague message. So far, Google Adwords email support has been of no use at all. I first got an email saying they were &#8220;escalating&#8221; the matter, which probably just means they didn&#8217;t get around to it within 24 hours so they had to send something, then I got a generic form email saying that:</p>
<blockquote><p>After reviewing your account, it has come to our attention that your Google AdWords accounts do not comply with our Terms and Conditions. As a result, your account, and any related accounts you may have created, have been suspended, and your ads will no longer run on Google.</p></blockquote>
<p>Well no shit, that really doesn&#8217;t tell me anything new! The best tidbit of the email was that:</p>
<blockquote><p>- For privacy reasons, AdWords Support is unable to provide any additional information regarding this account.</p></blockquote>
<p>You know, in case I find something out about myself that I didn&#8217;t know&#8230; It&#8217;s my account!</p>
<p>If I did something wrong to get banned, I sure would like to know why. Since I don&#8217;t, I feel like I&#8217;m in the customer support limbo that is synonymous with &#8220;Google Support&#8221; which is already an oxymoron of sorts.</p>
<p>Anyway, TL;DR I used Adwords to max out my Dropbox referrals like many have before, got the banhammer from Google and now their customer support is atrocious (as expected).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2011/11/02/dropbox-referrals-with-google-adwords/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Banana Republic (and Gap, etc.) Stores Passwords in Plain Text</title>
		<link>http://www.hung-truong.com/blog/2011/07/14/banana-republic-and-gap-etc-stores-passwords-in-plain-text/</link>
		<comments>http://www.hung-truong.com/blog/2011/07/14/banana-republic-and-gap-etc-stores-passwords-in-plain-text/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 20:58:19 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Banana Republic]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=2473</guid>
		<description><![CDATA[I was sitting on the subway when I got a random email from Banana Republic that contained my password in plain text. Besides the fact that I hadn&#8217;t requested it (lots of Hung Truongs think that they&#8217;re me @ gmail), I was surprised because any company that even slightly values security does not store passwords [...]]]></description>
			<content:encoded><![CDATA[<p>I was sitting on the subway when I got a random email from Banana Republic that contained my password in plain text. Besides the fact that I hadn&#8217;t requested it (lots of Hung Truongs think that they&#8217;re me @ gmail), I was surprised because any company that even slightly values security does not store passwords in plain text. It is quite jarring to see a password show up on my iPhone&#8217;s home screen. Here&#8217;s the email in case anyone needs proof:</p>
<p><a href="http://www.hung-truong.com/blog/wp-content/uploads/2011/07/Password-Email.png" rel="lightbox[2473]"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2011/07/Password-Email-500x291.png" alt="" title="Password-Email" width="500" height="291" class="aligncenter size-medium wp-image-2474" /></a></p>
<p>The fact that BR stores passwords in plain text means that they&#8217;re probably a very nice target for a quick hack (and if they&#8217;ve got bad practices in password storage, they probably have holes elsewhere as well). Unlike the Gawker password leak, which had hashed passwords (though they could still be eventually brute-forced), the BR passwords aren&#8217;t even obfuscated (or if they are, it&#8217;s in an easily reversible way).</p>
<p>If you have a Banana Republic, Gap, Old Navy, Piperlime or Athela account, I highly suggest you change your password to something unique that you don&#8217;t use for any other sites (um, just like all your passwords&#8230; I totally have different passwords and <a href="http://www.duosecurity.com/">two-factor security</a> for everything).</p>
<p>I&#8217;d also suggest you <a href="http://bananarepublic.gap.com/customerService/info.do?cid=7886&#038;mlink=5001,2930364,3&#038;clink=2930364">contact Banana Republic</a> and tell them that their security policies suck. Maybe they&#8217;ll fix it if enough people complain. That&#8217;d be sad if it took a huge hack and user info disclosure to change their ways.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2011/07/14/banana-republic-and-gap-etc-stores-passwords-in-plain-text/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Internet Is For&#8230; Downtime.</title>
		<link>http://www.hung-truong.com/blog/2011/04/25/the-internet-is-for-downtime/</link>
		<comments>http://www.hung-truong.com/blog/2011/04/25/the-internet-is-for-downtime/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 03:07:18 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[MapsKrieg]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Anime Nano]]></category>
		<category><![CDATA[Media Temple]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=2428</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
These last few weeks have been really, really bad for the internet. I mean, in general. What with Media Temple going down due to their nameservers, Amazon EC2 going down, and also the Playstation Network refusing to let me log in&#8230; You&#8217;d think there was a cyberattack going on or something. My websites did not [...]]]></description>
			<content:encoded><![CDATA[<p>These last few weeks have been really, really bad for the internet. I mean, in general. What with Media Temple going down due to their <a href="https://twitter.com/#!/mediatemple/status/60348605478862849">nameservers</a>, <a href="http://newenterprise.allthingsd.com/20110421/amazons-cloud-crashed-overnight-and-brought-several-other-companies-down-too/">Amazon EC2 going down</a>, and also the <a href="http://blog.us.playstation.com/2011/04/23/latest-update-for-psnqriocity-services/">Playstation Network refusing to let me log in</a>&#8230; You&#8217;d think there was a cyberattack going on or something. </p>
<p>My websites did not manage to dodge all of the bullets either. A few sites were down from the Media Temple thing. I also inadvertently broke a few sites here and there. After the Media Temple downtime, I wanted to try updating a few Ruby Gems to get Passenger Phusion working. Unfortunately my rails apps hadn&#8217;t been updated in forever, so updating things broke backwards compatibility. I&#8217;ve been working on getting <a href="http://www.animenano.com">Anime Nano</a> back to full capacity on the newest version of Rails. I think the whole experience was a bit stressful, but probably ended up being good in the long run.</p>
<p>I was also surprised to see <a href="http://www.mapskrieg.com/">Mapskrieg</a> going down late last week. Apparently I hadn&#8217;t verified the domain for Google Apps and Google decided to close my account. The one that was serving Mapskrieg via App Engine. This was really annoying since all of the &#8220;act now or we&#8217;ll delete your account&#8221; emails were classified as spam in gmail and I am pretty sure I had verified the account previously. If Google doesn&#8217;t want my money then screw them. I figure I can actually serve the site for cheaper than App Engine since a few other apps live on the same server. The App Engine thing was a fun experiment but there are still too many limitations in the datastore to base a real app on it. Specifically, datastore writes cost way too much and indexes take way too much overhead in disk space (which you eventually need to pay for).</p>
<p>So now I&#8217;m back to running most sites on Media Temple, though I may diversify in case Media Temple continues to have downtime issues. It was a stressful few days, but at least I got to practice my sysadmin skills a bit and update my server in the process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2011/04/25/the-internet-is-for-downtime/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google, Bing, and SERP Copying: Additional Evidence?</title>
		<link>http://www.hung-truong.com/blog/2011/04/06/google-bing-and-serp-copying-additional-evidence/</link>
		<comments>http://www.hung-truong.com/blog/2011/04/06/google-bing-and-serp-copying-additional-evidence/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 16:10:31 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Bing]]></category>
		<category><![CDATA[Drama]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=2405</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
In the beginning of February this year there was some mild uproar about Google setting up an elaborate sting operation against Bing to prove that Bing was copying search results pages directly from Google using the Bing Toolbar. I personally thought it was a bit childish of Google to do this. All&#8217;s fair in gathering [...]]]></description>
			<content:encoded><![CDATA[<p>In the beginning of February this year there was some mild uproar about Google setting up an elaborate sting operation against Bing to prove that Bing was copying search results pages directly from Google using the Bing Toolbar. I personally thought it was a bit childish of Google to do this. All&#8217;s fair in gathering user-generated data, right?</p>
<p>Fast forward to a few weeks ago. I put some code on <a href="http://www.mapskrieg.com">Mapskrieg</a> that would auto-detect a mobile device using the useragent string and show a mobile friendly site. I thought this was clever, but apparently Google thought it was cloaking. Oops! My bad. I took a hit on my Google search rankings. Once I fixed the issue my hits from Google have been coming back up slowly.</p>
<p>I looked at Google Analytics to see how the organic search referrals had changed, and I noticed something interesting. Not only had the referrals from Google gone down, the ones from Yahoo and Bing did as well. Perhaps Yahoo and Bing noticed the &#8220;cloaking&#8221; behavior, too (Yahoo is just using Bing results in their SERPs now). If so, then Bing was a bit slower than Google. See the charts below:</p>
<p><a href="http://www.hung-truong.com/blog/wp-content/uploads/2011/04/GoogleVsBing1.png" rel="lightbox[2405]"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2011/04/GoogleVsBing1-500x134.png" alt="" title="GoogleVsBing" width="500" height="134" class="aligncenter size-medium wp-image-2408" /></a></p>
<p>I started getting punished by Google around the 15th of March. Bing seems to have taken a few days to lower my rankings (and thus the # of clicks). My website&#8217;s recovery from punishment shows a similar upward trend, even though the site was no longer &#8220;cloaking&#8221; for about a week before that recovery. This suggests (at least, to me) that Bing really is copying Google&#8217;s search results pages. Otherwise they have a very similar method of cloaking detection, a similar policy for punishment, and a similar timeline for reducing the punishment for cloaking&#8230; At this point I feel that there are too many coincidences for this to be mere chance.</p>
<p>I was previously on Bing&#8217;s side because I figured that the Google data was just one data point out of many that they use. This example makes it seem like Google&#8217;s data is THE data point, or at least a major, major part of their &#8220;algorithm.&#8221;</p>
<p>Having stated all of this, my experience is only a sample size of 1, but I&#8217;m sure other webmasters have similar data sitting around. I&#8217;d be interested in seeing if there&#8217;s more evidence for Google&#8217;s stance. If I were Google, I&#8217;d be analyzing data from Google Analytics on other websites to see if they agree (I have a feeling they&#8217;re allowed to use this data anonymously).</p>
<p>Full Disclosure (because why not?): I used to work for Microsoft AdCenter, but I haven&#8217;t been involved with their operations for over a year now. I have a can of Bing soda water on my shelf but I mostly use Google (unless I want to use Bing ironically).</p>
<p>Edit: I&#8217;ve gotten some really great comments from Hacker News. I thought I&#8217;d paraphrase a few and write my comments on them. If you want to see the actual comments, <a href="http://news.ycombinator.com/item?id=2415729">go directly to my submission</a>.</p>
<p><strong>Comment</strong>: How could Bing get SERP info from just the toolbar?<br />
<strong>My response</strong>: 1) My site drops from many SERP listings, Bing Toolbar stops getting click info for my site so the listings drop from Bing as well.</p>
<p><strong>Comment</strong>: It might not be cloaking punishment. It could just be an outside factor, like people generally searching for the site&#8217;s keywords less or a competitor coming in and being better.<br />
<strong>My response</strong>: The traffic to Mapskrieg is pretty darn regular and this was a significant drop for both search engines. Through trial and error the only thing that changed my rankings back was fixing the user agent thing.</p>
<p><strong>Comment</strong>: Google suggested that the changes to SERPs took months to propagate and this data only took about a day.<br />
<strong>My response</strong>: Okay, that&#8217;s a good point!</p>
<p>The response from Hacker News has been great and really made me think more about the issue. I&#8217;m not sure if Bing really is copying from Google, but I thought this was a worthwhile data point to look at. Maybe someone else has some data they&#8217;d like to share as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2011/04/06/google-bing-and-serp-copying-additional-evidence/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Instapaper Friendly &#8211; WordPress Plugin</title>
		<link>http://www.hung-truong.com/blog/2011/02/03/instapaper-friendly-wordpress-plugin/</link>
		<comments>http://www.hung-truong.com/blog/2011/02/03/instapaper-friendly-wordpress-plugin/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 00:11:12 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Instapaper]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/2011/02/03/instapaper-friendly-wordpress-plugin/</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
While I was testing Instascriber , I noticed that the way that Instapaper was grabbing the content of my blog was a little off. The Instapaper for Publishers page describes how you can give Instapaper a hint on what your actual content is. I looked for a WordPress plugin that does this but didn&#8217;t see [...]]]></description>
			<content:encoded><![CDATA[<p>While I was testing <a href="http://www.instascriber.com">Instascriber </a>, I noticed that the way that Instapaper was grabbing the content of my blog was a little off. The <a href="http://www.instapaper.com/publishers">Instapaper for Publishers</a> page describes how you can give Instapaper a hint on what your actual content is. I looked for a WordPress plugin that does this but didn&#8217;t see anything, so I figured I&#8217;d do it myself. </p>
<p>Up to this point I had never made a WordPress plugin, so I had go figure that out first. It&#8217;s relatively simple and there&#8217;s a lot of good documentation out there. I just needed to hook into the &#8220;the_content&#8221; API hook and alter the content so it had a div surrounding it. The scary part is mostly that WordPress seems to give you a hella lot of control. So you could seriously eff things up with a simple plugin. </p>
<p>With this being my first plugin, I&#8217;m not completely sure it&#8217;s been written the right way (kinda like when you make an edit on Wikipedia for the first time). Nevertheless, I&#8217;m making the plugin available. So let me know if there&#8217;s something glaringly wrong with it. It&#8217;s fairly simple, so I&#8217;m not sure exactly what could go wrong. </p>
<p>I made a special page for the plugin to live at, so get it at <a href="http://www.hung-truong.com/blog/instapaper-friendly-wordpress-plugin/">Instascriber Friendly &#8211; WordPress Plugin</a>. You can also download it through the internal WordPress plugin search (look for &#8216;instapaper friendly&#8217;).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2011/02/03/instapaper-friendly-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional GETs in App Engine</title>
		<link>http://www.hung-truong.com/blog/2010/12/01/conditional-gets-in-app-engine/</link>
		<comments>http://www.hung-truong.com/blog/2010/12/01/conditional-gets-in-app-engine/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 20:16:06 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[app engine]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=2143</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
I&#8217;m currently working on an app in Google App Engine that polls feeds periodically and then does stuff with them. I suppose I could use that pubsubhubbub thingy but I have a feeling that most feeds aren&#8217;t using this yet. Anyway, I did a quick naive implementation of polling about every hour or so. Apparently [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on an app in <a href="http://appengine.google.com">Google App Engine</a> that polls feeds periodically and then does stuff with them. I suppose I could use that <a href="http://code.google.com/p/pubsubhubbub/">pubsubhubbub</a> thingy but I have a feeling that most feeds aren&#8217;t using this yet.</p>
<p>Anyway, I did a quick naive implementation of polling about every hour or so. Apparently the feed parser I&#8217;m using is pretty inefficient because it&#8217;s eating up a lot of resources (relatively speaking) on App Engine. I remembered that the http protocol is pretty smart, and there&#8217;s a way to figure out if stuff has changed since the last time you grabbed it.</p>
<p>Google&#8217;s urlfetch doesn&#8217;t seem to support conditional GETs (someone tell me if I am wrong). I looked around and found a <a href="http://stii.co.za/python/http-conditional-get-with-python-urllib2/">few</a> <a href="http://www.artima.com/forums/flat.jsp?forum=122&amp;thread=15024">tutorials</a> on how to accomplish this in Python using urllib2. The tutorials weren&#8217;t exactly what I wanted, so I had to change a few things here or there. Here&#8217;s a snippet of code that I&#8217;m using:</p>
<pre>
import urllib2
feed = Feed.get() #my feed object has a etag, last_modified and url property
req = urllib2.Request(url)
if feed.etag:
    req.add_header("If-None-Match", feed.etag)
if feed.last_modified:
    req.add_header("If-Modified-Since", feed.last_modified)
try:
    url_handle = urllib2.urlopen(req)
    content = url_handle.read()
    headers = url_handle.info()
    feed.etag = headers.getheader("ETag")
    feed.last_modified = headers.getheader("Last-Modified")
    feed.put()
except Exception, e:
    logging.info(e) #just says 304 didn't change
    return
dostuffwith(content)
</pre>
<p>This handles my use case, which is doing work if the feed is new, and ignoring it if it hasn&#8217;t been modified. I could probably wrap this into a function that returned false if it the file hadn&#8217;t changed, and the content if it was new&#8230; Probably will do that next. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2010/12/01/conditional-gets-in-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance vs. Brand Advertising on iAd</title>
		<link>http://www.hung-truong.com/blog/2010/09/14/performance-vs-brand-advertising-on-iad/</link>
		<comments>http://www.hung-truong.com/blog/2010/09/14/performance-vs-brand-advertising-on-iad/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 14:45:38 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iAd]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=2019</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
I&#8217;ve got some more thoughts on iAd after trying iAd out on one of my apps for about a month now. As I noted in an earlier post, Apple responded to a really low fill rate on their iAd program by enabling developer ads. Developer ads are simple banner ads that entice a user to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got some more thoughts on iAd after trying iAd out on one of my apps for about a month now.</p>
<p>As I noted in <a href="http://www.hung-truong.com/blog/2010/08/15/what-happened-to-yahoo-and-what-could-happen-to-iad/">an earlier post</a>, Apple responded to a really low fill rate on their iAd program by enabling developer ads. Developer ads are simple banner ads that entice a user to download an iPhone app. Here&#8217;s what the use case looks like via <a href="http://www.businessinsider.com/heres-what-apples-new-iad-for-developers-ads-look-like-2010-7">Business Insider</a>:</p>
<p><a href="http://www.hung-truong.com/blog/wp-content/uploads/2010/09/iad1.jpg" rel="lightbox[2019]"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/09/iad1-150x150.jpg" alt="" title="iad1" width="150" height="150" class="size-thumbnail wp-image-2020" /></a><a href="http://www.hung-truong.com/blog/wp-content/uploads/2010/09/iad2.jpg" rel="lightbox[2019]"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/09/iad2-150x150.jpg" alt="" title="iad2" width="150" height="150" class="size-thumbnail wp-image-2021" /></a><a href="http://www.hung-truong.com/blog/wp-content/uploads/2010/09/iad3.jpg" rel="lightbox[2019]"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/09/iad3-150x150.jpg" alt="" title="iad3" width="150" height="150" class="size-thumbnail wp-image-2025" /></a></p>
<p>To Apple&#8217;s credit, the workflow is actually pretty good. It doesn&#8217;t require users to leave the app to download another one.</p>
<p>Since developers can&#8217;t really afford the insane $2 cost per click that the big media customers pay, Apple is charging $.25 a click instead, and no cost per impression. Theoretically, this should mean that the fill rate would be very high (as long as developers are not maxing out on their daily spend limit or too aggressively filtering out apps). Yet I&#8217;ve noticed a pretty big fall in fill rate (from about 30% to 20%) in the last month.</p>
<p>I think the main issue is that Apple never really intended iAd to be used for performance advertising. Performance advertising is about getting that direct action (in this case, an app download). Apple&#8217;s been pushing iAd as a great Brand advertising solution (where the user is not expected to go out and buy Dove soap from their phone). That&#8217;s why the premium brands are willing to pay so much per click and impression. By comparison, AdMob ads on the iPhone seem to be more geared toward performance advertising.</p>
<p>By introducing developer ads, I think Apple has tried to appease publishers at the cost of the perceived premium value of iAds. Sure, the developer ads aren&#8217;t as flashy as the premium advertisers&#8217;, but $.25 versus $2 a click for the same piece of real estate is quite a difference. Add the perception that <a href="http://www.crossforward.com/2010/08/25/iad-for-developers/">iAds for developers are not cost-effective</a> and you could come to the conclusion that Apple is doing it wrong. It doesn&#8217;t help that the premium brand advertisers seem to be <a href="http://online.wsj.com/article/SB10001424052748703321004575427892781417642.html">frustrated with the process of dealing with Apple as a gatekeeper</a>.</p>
<p>So what can Apple do to fix this? They should go back to their specialization: doing one or a few things really well. They should focus on iAd as a brand advertising platform. They should work on getting as many large partners onto iAd as quickly as possible. This will alleviate the growing pains that publishers (including me) are feeling with fill rates. Right now it seems like Apple is reacting rather than acting; following rather than leading. They need to show that they&#8217;re serious about carving their own niche in the mobile advertising space.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2010/09/14/performance-vs-brand-advertising-on-iad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Happened to Yahoo (and What Could Happen to iAd)</title>
		<link>http://www.hung-truong.com/blog/2010/08/15/what-happened-to-yahoo-and-what-could-happen-to-iad/</link>
		<comments>http://www.hung-truong.com/blog/2010/08/15/what-happened-to-yahoo-and-what-could-happen-to-iad/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 18:02:58 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iAd]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=1983</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
I recently read an essay by Paul Graham on what happened to Yahoo. In it, he describes how Yahoo acted like a media company when it was really technology company, and how funky management made it into what it is today. One quote struck me as relevant today: By 1998, Yahoo was the beneficiary of [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/08/iAD_marketing.png" alt="" title="iAD_marketing" width="191" height="221" class="aligncenter size-full wp-image-1985" /></p>
<p>I recently read an essay by Paul Graham on <a href="http://www.paulgraham.com/yahoo.html">what happened to Yahoo</a>. In it, he describes how Yahoo acted like a media company when it was really technology company, and how funky management made it into what it is today. One quote struck me as relevant today: </p>
<blockquote><p>
By 1998, Yahoo was the beneficiary of a de facto Ponzi scheme. Investors were excited about the Internet. One reason they were excited was Yahoo&#8217;s revenue growth. So they invested in new Internet startups. The startups then used the money to buy ads on Yahoo to get traffic. Which caused yet more revenue growth for Yahoo, and further convinced investors the Internet was worth investing in. When I realized this one day, sitting in my cubicle, I jumped up like Archimedes in his bathtub, except instead of &#8220;Eureka!&#8221; I was shouting &#8220;Sell!&#8221;
</p></blockquote>
<p>Having <a href="http://www.hung-truong.com/blog/2010/08/11/anime-nano-iphone-app-update/">just integrated iAd</a> into one of my iPhone apps I&#8217;ve noticed that pretty much all of the ads are for other apps. Most of these apps are &#8220;free,&#8221; and I assume that they could potentially be using iAd for revenue as well. This is a result of low fill rates for iAd and Apple wanting to offer developers a way to advertise their apps. It makes sense, but one has to wonder exactly where all the money is eventually going (Apple gets a 40% cut of iAd revenue), and who has the incentive to keep that system running.</p>
<p>A while ago I wrote my <a href="http://www.hung-truong.com/blog/2010/07/02/thoughts-and-predictions-on-apples-iad-platform/">predictions for iAd</a>. I didn&#8217;t foresee Apple opening iAds up to developers who wanted to advertise their apps. That&#8217;ll help the fill rate, but I can&#8217;t see it helping CPMs when developers have something like a $0.25 CPC and it was reported that the larger media campaigns like Dove were closer to $2 CPC. Seems like another race to the bottom, just like paid app prices.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2010/08/15/what-happened-to-yahoo-and-what-could-happen-to-iad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Amazon Ad Targeting Fail: IE8</title>
		<link>http://www.hung-truong.com/blog/2010/04/28/ad-targeting-fail-ie8/</link>
		<comments>http://www.hung-truong.com/blog/2010/04/28/ad-targeting-fail-ie8/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 18:01:54 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=1852</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
I just got this ad while shopping at Amazon. This is an ad targeting failure for a number of reasons. I am using Chrome, which is better than IE8 I am on a MacBook Pro, which isn&#8217;t even supported by IE8 I was not shopping for a new browser, I was shopping for video games [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/04/IE8Ad.png" alt="" title="IE8Ad" width="309" height="267" class="aligncenter size-full wp-image-1853" /></p>
<p>I just got this ad while shopping at Amazon. This is an ad targeting failure for a number of reasons.</p>
<ul>
<li>I am using Chrome, which is better than IE8</li>
<li>I am on a MacBook Pro, which isn&#8217;t even supported by IE8</li>
<li>I was not shopping for a new browser, I was shopping for video games</li>
</ul>
<p>I went ahead and clicked on the link for the lulz. I ended up getting to this strange terms page with a bunch of links to download the software for different (Windows) operating systems. How bad of a user experience is that!?</p>
<p><a href="http://www.hung-truong.com/blog/wp-content/uploads/2010/04/IE8-Terms.png" rel="lightbox[1852]"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/04/IE8-Terms-500x267.png" alt="" title="IE8 Terms" width="500" height="267" class="aligncenter size-medium wp-image-1854" /></a></p>
<p>It appears they are after a quick buck with this &#8220;partnership&#8221; and really don&#8217;t give a crap about going about it properly. Too bad for them. At least they have an ad feedback box for me to mock them with:</p>
<p><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/04/IEAdFeedback.png" alt="" title="IEAdFeedback" width="500" height="327" class="aligncenter size-full wp-image-1856" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2010/04/28/ad-targeting-fail-ie8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Worth At Least 45 Seconds of Your Time&#8230;</title>
		<link>http://www.hung-truong.com/blog/2010/03/28/worth-at-least-45-seconds-of-your-time/</link>
		<comments>http://www.hung-truong.com/blog/2010/03/28/worth-at-least-45-seconds-of-your-time/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 23:40:33 +0000</pubDate>
		<dc:creator>Hung</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Mom]]></category>
		<category><![CDATA[Powerpoint]]></category>

		<guid isPermaLink="false">http://www.hung-truong.com/blog/?p=1782</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>407</b><br />
<br />
<b>Warning</b>:  Division by zero in <b>/home/hungtruong/hung-truong.com/blog/wp-content/plugins/tla_49490.php</b> on line <b>415</b><br />
Let&#8217;s see, how long has it been since I started a new blog? Probably too long ago if I can&#8217;t remember. My mom sends me insane attachments in emails. They&#8217;re usually collections of strange pictures and drug recall warnings. I have a theory that Asian ladies communicate primarily by sending Powerpoint presentations to each other. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.worth45seconds.com/"><img src="http://www.hung-truong.com/blog/wp-content/uploads/2010/03/Worth-45-Seconds-500x371.png" alt="" title="Worth 45 Seconds" width="500" height="371" class="aligncenter size-medium wp-image-1786" /></a></p>
<p>Let&#8217;s see, how long has it been since I started a new blog? Probably too long ago if I can&#8217;t remember.</p>
<p>My mom sends me insane attachments in emails. They&#8217;re usually collections of strange pictures and drug recall warnings. I have a theory that Asian ladies communicate primarily by sending Powerpoint presentations to each other. </p>
<p>These emails are way too awesome to keep to myself, so I started a blog to document them. I called it &#8220;Worth 45 Seconds&#8221; because one it was included in the subject heading of one of my favorite emails. You can see <a href="http://www.worth45seconds.com/2010/03/worth-45-seconds-of-your-time/">that one</a> on <a href="http://www.worth45seconds.com/">Worth 45 Seconds</a>. I&#8217;ll be adding more periodically as I sift through my backlog and as my mom keeps sending me new email forwards.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hung-truong.com/blog/2010/03/28/worth-at-least-45-seconds-of-your-time/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

