<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Colin Temple</title>
	
	<link>http://colintemple.com/writing</link>
	<description>Business analyst, philosophy student</description>
	<lastBuildDate>Thu, 12 Jan 2012 01:26:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Wonderment" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="wonderment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Wonderment</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Infants are ‘reprehensible’, says Augustine</title>
		<link>http://colintemple.com/writing/2012/01/infants-reprehensible-augustine/</link>
		<comments>http://colintemple.com/writing/2012/01/infants-reprehensible-augustine/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 01:26:48 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Ethics]]></category>
		<category><![CDATA[augustine]]></category>
		<category><![CDATA[infants]]></category>

		<guid isPermaLink="false">http://colintemple.com/writing/?p=285</guid>
		<description><![CDATA[In Book I, Chapter VII of his Confessions[1], Augustine makes some comments on the innocence of infants. I&#8217;m not a huge fan of religious philosophy, but I found this passage kind of amusing. Augustine says that the actions of infants are &#8220;reprehensible&#8221; (8), the way they cry loudly for nourishment, constantly demanding the attention of [...]]]></description>
			<content:encoded><![CDATA[<p>In Book I, Chapter VII of his <em>Confessions</em><a title="" href="#_ftn1">[1]</a><a id="ftnref1" name="ftnref1"></a>, Augustine makes some comments on the innocence of infants. I&#8217;m not a huge fan of religious philosophy, but I found this passage kind of amusing.</p>
<p>Augustine says that the actions of infants are &#8220;reprehensible&#8221; (8), the way they cry loudly for nourishment, constantly demanding the attention of their mother. Infants become intolerant of others, their parents and strangers, who do not obey them, often lashing out &#8220;with sheer will to hurt&#8221; (9). They also complain and demand things that aren&#8217;t even in their best interests. Augustine remarks that such actions would not be tolerated of an adult; in fact, an adult behaving in such an infantile manner would rightfully be the subject of scorn and ridicule. One cannot blame infants for the way they cry, of course, since they do not know what is wrong with their behaviour. However, Augustine says that such behaviour is clearly wrong, for as the child grows up there is an attempt to put an end to such behaviour, creating a more calm and polite child. Were it correct, it would be allowed to continue as the child matures.</p>
<p>Because of this clear wrongdoing on the part of infants, Augustine wonders why it is that infants are thought to have innocence. He concludes that it must not be anything having to do with the mind of an infant, since as has been shown, infants are not in possession of finer human qualities like humility and patience. Quite to the contrary, infants are selfish, impatient and impolite, and thus can rightfully be labelled as sinners. Instead, Augustine says, they must be innocent only in the sense that they are helpless.</p>
<p>He goes on to provide further evidence that the state of the infant&#8217;s mind is sinful, by means of demonstrating infant jealousy. He says that he has seen a case of a baby who was watching another feeding at a breast. The child who was watching was &#8220;livid with anger&#8221; (9), despite being too young to even speak. This jealousy shows an unwillingness to share readily-available milk with a child that will not survive without it, though the child likely doesn&#8217;t understand this. Still, this shows that infants can be guilty of jealousy and of gluttony. For Augustine, referring to infants as innocence seems to refer to &#8220;an odd kind of innocence&#8221; (9).</p>
<p>On this account, infants get away with their behaviour and allowed to act in the manner they do not because their behaviour is correct or sinless, but because it &#8220;will pass with the years&#8221; (9). Adults only allow infants their sins because they are short-lived.</p>
<p>So how about that? Normally we think that infants are innocent because of their ignorance &#8212; though ignorance doesn&#8217;t count as a defense later in life.</p>
<p>It turns out, they&#8217;re just awful.</p>
<div>
<p>&nbsp;</p>
<hr align="left" size="1" width="33%" />
<div>
<p><a title="" href="#_ftnref1">[1]</a><a id="ftn1" name="ftn1"></a> Augustine. <em>Confessions</em>. Second Edition. Trans. F. J. Sheed. Ed. Michael P. Foley. Indianapolis: Hackett, 2006. pp. 8-9. Print.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://colintemple.com/writing/2012/01/infants-reprehensible-augustine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Naturalism Proper versus McDowell</title>
		<link>http://colintemple.com/writing/2012/01/naturalism-proper-vs-mcdowell/</link>
		<comments>http://colintemple.com/writing/2012/01/naturalism-proper-vs-mcdowell/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 04:45:44 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Epistemology]]></category>
		<category><![CDATA[Metaphysics]]></category>
		<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[John McDowell]]></category>
		<category><![CDATA[mind-body problem]]></category>
		<category><![CDATA[naturalism]]></category>
		<category><![CDATA[platonism]]></category>
		<category><![CDATA[qualia]]></category>
		<category><![CDATA[substance]]></category>

		<guid isPermaLink="false">http://colintemple.com/writing/?p=273</guid>
		<description><![CDATA[In his Mind and World, McDowell contrasts three positions in his concerns with spontaneity and intentional states in general. These are what he calls bald naturalism, rampant platonism and naturalized platonism, the last of which he defends. What McDowell calls &#8216;bald naturalism&#8217; I will argue for, but I will refer to it more favourably, as [...]]]></description>
			<content:encoded><![CDATA[<p>In his <em>Mind and World</em>, McDowell contrasts three positions in his concerns with spontaneity and intentional states in general. These are what he calls bald naturalism, rampant platonism and naturalized platonism, the last of which he defends. What McDowell calls &#8216;bald naturalism&#8217; I will argue for, but I will refer to it more favourably, as &#8216;naturalism proper&#8217;.</p>
<p>The proper naturalist position counts the mind as part of the world, as McDowell wants to do. What a naturalist proper cannot coherently talk about is the Kantian subject. Instead, there are only objects. For those who would say that things are only objects in the sense that they are the object of some subject, then we may use the word &#8216;substance&#8217;, in the earlier Greek sense, to talk about physical things. Thus, the naturalist position is that everything is a substance; in Heidegger&#8217;s terminology, everything is essentially present-at-hand<a title="" href="#_ftn1">[1]</a> and though further supposed properties or features of substances (readiness-to-hand, the existence of Dasein, the mind, intentionality, subjectivity) are reducible to that raw substance. In contemporary physics, that substance is identified with particles, though the details may be somewhat more complex than that<a title="" href="#_ftn2">[2]</a>. The manifest image of the world<a title="" href="#_ftn3">[3]</a>, the normative space in which intentionality and morality are thought to lie, is composed of that same physical substance that makes up the brains of those who experience and project outwards.</p>
<p>So, for the naturalist proper, the space of reasons is not a realm outside of the natural or physical world, as it is in rampant platonism, nor is it an autonomous space within the world as it is in McDowell&#8217;s naturalized platonism. Rather, all rationality, normativity and intentionality is identical with brain states. There is no one space of reasons with which human beings have a connection; rather, each human being can be thought to have their own space of reasons. This space is not especially private, though. It can be seen physically by examination of the neurological states of the brain, and with the proper technology, those states may even be translatable into intelligible images. In another sense, it is not fully private, since glimpses into its content can be seen through behaviour.</p>
<p>&#8216;Content&#8217; needs qualification in that last remark. Intentional mental states are mental states that are about something else in the world. But they are neither a metaphysical link through some imaginary (or real) space to other substances which they are about, nor are they really representations of the substances they seem to be about. They are not the former because such space doesn&#8217;t exist in any important way. They are not the latter because, of course, the neurological features of our brain do not form a structure that mimics the outside world. Rather, they form a structure that allows us to have a mental state (which is identical with that brain state) such that we think we have a representation of the substance we are thinking about. So, when I close my eyes and picture the CN Tower, I do not obtain or summon some representation of that object. That object may be gone, moved, or different than I remember. Instead, my brain generates a certain arrangement such that it looks like the CN Tower <em>to itself</em>.<a title="" href="#_ftn4">[4]</a> All of the qualia, &#8216;what it&#8217;s like to be&#8217;<a title="" href="#_ftn5">[5]</a> and private world phenomena that philosophers expect to find in a separate mental world are  merely what the brain&#8217;s activity looks like from the point of view of that very brain.</p>
<p><em></em>Against the rampant platonist, the naturalist&#8217;s response is brief. Whatever attitudes one has towards the empirical observations with which one is presented, one does not survive without indulging in them. With a proper account of naturalism, any reason to favour a platonic account dissolves. Naturalism proper offers an explanation of intentionality, removes the &#8220;spookiness&#8221; (McDowell 92) of a separate space of reasons that McDowell complains of. We don&#8217;t need to add anything ontologically, and we have a hope to answer the how questions about mental states and intentionality through study of the brain. Spontaneity doesn&#8217;t need any explanation here, either, because it is not <em>sui generis</em>, if it&#8217;s counted as existing at all. We&#8217;re better off with the naturalist account.</p>
<p>Against McDowell&#8217;s naturalized platonism, the proper naturalist has to say that McDowell is wrong about naturalism. He argues against his &#8216;bald naturalist&#8217;, saying that &#8220;knowing one&#8217;s way around the space of reasons, the idea of responsiveness to rational relationships, cannot be reconstructed out of materials that are naturalistic&#8221; (McDowell 77). But the naturalist proper doesn&#8217;t want to reconstruct a space of reasons, really. The naturalist proper holds that all reasoning, all intentionality, all communication—the entire manifest image—takes place between physical substances across physical substances. The naturalist isn&#8217;t committed to reconstructing any intentional state beyond this because she doesn&#8217;t hold it to exist. What counts as intentionality for a naturalist proper is evidenced through behaviour, and it consists of a brain processing incoming information. The space of reasons, the finer points of language, art, morality, knowledge and so forth can be talked about as abstractions. They are useful in the processing that the brain must do; they result in digestible inputs. But the naturalist proper is ever-mindful that these are not things in themselves, but that they are always identical with and reducible to the states of the brain. The same holds of spontaneity. The naturalist counts human judgments to be determined (in a deterministic or indeterministic sense<a title="" href="#_ftn6">[6]</a>) by the physical processes that cause them. Thus, spontaneity can be said either to not really exist, or at least to be denied status as <em>sui generis</em>, as is the case with the other ideas McDowell wants to preserve. Where McDowell wants to say that human beings are free to choose their beliefs, to take their experiences and spontaneously form judgments about them, the proper naturalist denies this. For the naturalist proper, sometimes brain states will have the disposition to respond to the stimulus of a red bench and form the belief that there is a red bench. Sometimes, because of other beliefs, brain states will not have such a disposition and will not form such a belief. Whether or not this happens is not an act of spontaneity, but a function of the states of the brain, including the stimulus received and the beliefs already held.</p>
<p>By positing an autonomous space of reasons, and a second nature with which humans can access it, the naturalized platonist gains little in the way of explanation and much in the way of recalcitrant philosophical questions. McDowell thinks that he gets out of the &#8220;threat of supernaturalism&#8221; (78) by saying that scientific advancements don&#8217;t clarify nature as a whole, but only the realm of law. This step does not work; it only redefines &#8220;nature&#8221; to include what the naturalist counts as supernatural. McDowell renames nature as the realm of law, says that the platonic heaven, the space of reasons, also exist, and says that there&#8217;s this new thing, now called nature, previously called existence, which encompasses all of them. The connection between the realms of laws and reasons is as sketchy as ever, and it is only through proper naturalism of intentionality and spontaneity that the confusion is finally dissolved.</p>
<div>
<p>&nbsp;</p>
<hr align="left" size="1" width="33%" />
<div>
<p><a id="_ftn1" title="" name="_ftn1" href="#_ftnref1"></a>[1] See: Heidegger, Martin. <em>Being and Time</em>. Trans. John MacQuarrie and Edward Robinson. New York: Harper &amp; Row, 1962. p. 98; p. 69 in the original German.</p>
</div>
<div>
<p><a id="_ftn2" title="" name="_ftn2" href="#_ftnref2"></a>[2] String theories and wave-particle duality in physics play a role here, but they are beside the point. Scientific skepticism about what substances are physically is important. Equally important is the fact that extra-physical phenomena haven&#8217;t turned up at all. That is, the naturalist account is the best lead we have.</p>
</div>
<div>
<p><a id="_ftn3" title="" name="_ftn3" href="#_ftnref3"></a>[3] From Sellars.</p>
</div>
<div>
<p><a id="_ftn4" title="" name="_ftn4" href="#_ftnref4"></a>[4] &#8230;because we are always our physical selves and are never apart from our brains.</p>
</div>
<div>
<p><a id="_ftn5" title="" name="_ftn5" href="#_ftnref5"></a>[5] From Nagel.</p>
</div>
<div>
<p><a id="_ftn6" title="" name="_ftn6" href="#_ftnref6"></a>[6] Indeterminism as is afforded by quantum mechanics offers a sort of natural spontaneity, but it is not immediately clear how, or even if, this would impact judgments.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://colintemple.com/writing/2012/01/naturalism-proper-vs-mcdowell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’ll die if I’m immortal, or I’ll live if I die: the material conditional and English</title>
		<link>http://colintemple.com/writing/2011/10/material-conditional-english-example/</link>
		<comments>http://colintemple.com/writing/2011/10/material-conditional-english-example/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 02:17:41 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Logic]]></category>
		<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[implication]]></category>
		<category><![CDATA[logic]]></category>
		<category><![CDATA[material conditional]]></category>
		<category><![CDATA[propositional logic]]></category>
		<category><![CDATA[tautology]]></category>
		<category><![CDATA[translation]]></category>

		<guid isPermaLink="false">http://wonderment.ca/?p=230</guid>
		<description><![CDATA[Here&#8217;s a tautology in propositional logic: ⊨(P → Q) ∨ (Q → R) Try throwing that into English. Here&#8217;s a reading using some propositions I just came up with: &#8220;I&#8217;ll die if I&#8217;m immortal, or I&#8217;ll live if I die.&#8221; Obviously, neither of those are the case. But this formula, (P → Q) ∨ (Q [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a tautology in propositional logic:</p>
<p>⊨(P → Q) ∨ (Q → R)</p>
<p>Try throwing that into English. Here&#8217;s a reading using some propositions I just came up with:</p>
<p>&#8220;I&#8217;ll die if I&#8217;m immortal, or I&#8217;ll live if I die.&#8221;</p>
<p>Obviously, neither of those are the case. But this formula, (P → Q) ∨ (Q → R), is both provable and self-implied in classical propositional logic.</p>
<p>Here&#8217;s a syntactic proof by means of natural deduction using some basic rules of inference:</p>
<p><span id="more-230"></span>
<div class="proof">
<div class="subproof">
<div class="line"><span class="ln">1</span> <span class="data underscore">&not;[(P &rarr; Q) &or; (Q &rarr; R)]</span> <span class="just"><abbr title="Assumption for indirect proof">Assumption</abbr></span></div>
<div class="line"><span class="data"><span class="rtp"><abbr title="Required To Prove">RTP</abbr> Contradiction</span></span></div>
<div class="subproof">
<div class="line"><span class="ln">2</span> <span class="data underscore">P &rarr; Q</span> <span class="just"><abbr title="Assumption for indirect proof">Assumption</abbr></span></div>
<div class="line"><span class="data"><span class="rtp"><abbr title="Required To Prove">RTP</abbr> Contradiction</span></span></div>
<div class="line"><span class="ln">3</span> <span class="data">(P &rarr; Q) &or; (Q &rarr; R)</span> <span class="just"><a href="http://www.philosophy-index.com/logic/forms/addition.php">Weakening</a>, 2</span></div>
<div class="line"><span class="ln">4</span> <span class="data">&not;[(P &rarr; Q) &or; (Q &rarr; R)]</span> <span class="just">Repetition, 1</span></div>
</p></div>
<div class="line"><span class="ln">5</span> <span class="data">&not;(P &rarr; Q)</span> <span class="just"><abbr title="Negation Introduction"><a href="http://www.philosophy-index.com/logic/forms/contradiction.php">&not;I</a></abbr>, 2&#8211;4</span></div>
<div class="subproof">
<div class="line"><span class="ln">6</span> <span class="data underscore">Q &rarr; R</span> <span class="just"><abbr title="Assumption for indirect proof">Assumption</abbr></span></div>
<div class="line"><span class="data"><span class="rtp"><abbr title="Required To Prove">RTP</abbr> Contradiction</span></span></div>
<div class="line"><span class="ln">7</span> <span class="data">(P &rarr; Q) &or; (Q &rarr; R)</span> <span class="just">Weakening, 6</span></div>
<div class="line"><span class="ln">8</span> <span class="data">&not;[(P &rarr; Q) &or; (Q &rarr; R)]</span> <span class="just">Repetition, 1</span></div>
</p></div>
<div class="line"><span class="ln">9</span> <span class="data">&not;(Q &rarr; R)</span> <span class="just"><abbr title="Negation Introduction"><a href="http://www.philosophy-index.com/logic/forms/contradiction.php">&not;I</a></abbr>, 6&#8211;8</span></div>
<div class="subproof">
<div class="line"><span class="ln">10</span> <span class="data underscore">&not;Q</span> <span class="just"><abbr title="Assumption for indirect proof">Assumption</abbr></span></div>
<div class="line"><span class="data"><span class="rtp"><abbr title="Required To Prove">RTP</abbr> Contradiction</span></span></div>
<div class="subproof">
<div class="line"><span class="ln">11</span> <span class="data underscore">Q</span> <span class="just"><abbr title="Assumption for conditional proof">Assumption</abbr></span></div>
<div class="line"><span class="data"><span class="rtp"><abbr title="Required To Prove">RTP</abbr> Q</span></span></div>
<div class="line"><span class="ln">12</span> <span class="data">Q &or; R</span> <span class="just">Weakening, 11</span></div>
<div class="line"><span class="ln">13</span> <span class="data">&not;Q</span> <span class="just">Repetition, 10</span></div>
<div class="line"><span class="ln">14</span> <span class="data">R</span> <span class="just"><abbr title="Disjunction Elimination"><a href="http://www.philosophy-index.com/logic/forms/separation-cases.php">&or;E</a></abbr>, 12, 13</span></div>
</p></div>
<div class="line"><span class="ln">15</span> <span class="data">Q &rarr; R</span> <span class="just"><abbr title="Conditional Introduction"><a href="http://www.philosophy-index.com/logic/forms/deduction-theorem.php">&rarr;I</a></abbr>, 11&#8211;14</span></div>
<div class="line"><span class="ln">16</span> <span class="data">&not;(Q &rarr; R)</span> <span class="just">Repetition, 9</span></div>
</p></div>
<div class="line"><span class="ln">17</span> <span class="data">Q</span> <span class="just"><abbr title="Negation Elimination">&not;E</abbr>, </span></div>
<div class="subproof">
<div class="line"><span class="ln">18</span> <span class="data underscore">P</span> <span class="just"><abbr title="Assumption for conditional proof">Assumption</abbr></span></div>
<div class="line"><span class="data"><span class="rtp"><abbr title="Required To Prove">RTP</abbr> Q</span></span></div>
<div class="line"><span class="ln">19</span> <span class="data">Q</span> <span class="just">Repetition, 17</span></div>
</p></div>
<div class="line"><span class="ln">20</span> <span class="data">P &rarr; Q</span> <span class="just"><abbr title="Conditional Introduction">&rarr;I</abbr>, 18&#8211;19</span></div>
<div class="line"><span class="ln">22</span> <span class="data">&not;(P &rarr; Q)</span> <span class="just">Repetition, 5</span></div>
</p></div>
<div class="line conclusion"><span class="ln">23</span> <span class="data">(P &rarr; Q) &or; (Q &rarr; R)</span> <span class="just"><abbr title="Negation Elimination"><a href="http://www.philosophy-index.com/logic/forms/contradiction.php">&not;E</a></abbr>, </span></div>
</div>
<p>Ok, there are definitely shorter proofs, especially if you let other equivalencies into your rules of inference, but this spells out quite a bit and gets the job done.</p>
<p>So, ⊢ (P → Q) ∨ (Q → R)</p>
<p>The reason this is provable, despite being formally contingent in English, is that the material conditional, →, does not represent the English &#8220;if/then&#8221;. If you&#8217;ve taken a course in logic, you&#8217;ve probably heard this. The reason is that the truth conditions for the material conditional are a little different. Specifically, a formula of the form (α → β) is true on every valuation except those that make α true and β false.</p>
<p>Look at our formula again. It states, semantically, that either (P → Q) is true, <em>or </em>(Q → R) is. If (P → Q) happens to be true, then the whole formula is true, so that case is covered right off the bat.</p>
<p>If (P → Q) is false? Well, there&#8217;s only one valuation that makes (P → Q) false &#8212; the valuation where P is true, and Q is false. So, if (P → Q) is false, then Q is false as well. But, if Q is false, then (Q → R) is true, because (Q → R) can only be false when Q is true and R is false. If Q is false, then (Q → R) is true.</p>
<p>Going the other way, if (Q → R) is false, then Q is true and (P → Q) can&#8217;t be false, because it can only be false if Q is false.</p>
<p>As a result, whenever (P → Q) is false, (Q → R) is guaranteed to be true, and <em>vice versa</em>. So, (P → Q) ∨ (Q → R) is a tautology.</p>
<p>My point here is just a friendly reminder: be careful with translation. Expressing the English &#8220;if/then&#8221; with the material conditional (→) may sometimes get you into trouble.</p>
]]></content:encoded>
			<wfw:commentRss>http://colintemple.com/writing/2011/10/material-conditional-english-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logic breakdown in Sellars v. The Sense-Datum Theorist</title>
		<link>http://colintemple.com/writing/2011/09/sellars-logic-breakdown/</link>
		<comments>http://colintemple.com/writing/2011/09/sellars-logic-breakdown/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 02:08:54 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Epistemology]]></category>
		<category><![CDATA[Logic]]></category>
		<category><![CDATA[empricism]]></category>
		<category><![CDATA[myth of the given]]></category>
		<category><![CDATA[sense data]]></category>
		<category><![CDATA[wilfrid sellars]]></category>

		<guid isPermaLink="false">http://wonderment.ca/?p=222</guid>
		<description><![CDATA[In his essay &#8220;Empiricism and the Philosophy of Mind&#8221; (1955-56), Wilfrid Sellars launches an attack against sense-datum theorists. I don&#8217;t want to defend sense-data because I think that&#8217;s a flawed concept, but I do want to point out a misstep that Sellars makes in this paper. This objection has probably been made before, but for [...]]]></description>
			<content:encoded><![CDATA[<p>In his essay &#8220;Empiricism and the Philosophy of Mind&#8221; (1955-56), Wilfrid Sellars launches an attack against sense-datum theorists. I don&#8217;t want to defend sense-data because I think that&#8217;s a flawed concept, but I do want to point out a misstep that Sellars makes in this paper.</p>
<p>This objection has probably been made before, but for the sake of my notes I&#8217;m spelling it out as I read it.</p>
<p>In the paper, Sellars runs through a set of three propositions that he believes that sense-datum theorists must hold, but that Sellars believes is inconsistent.<br />
<span id="more-222"></span></p>
<blockquote><p>A. <em>X senses red sense content s</em> entails <em>x non-inferentially knows that s is red</em>.</p>
<p>B. The ability to sense sense contents is unacquired.</p>
<p>C. The ability to know facts of the form <em>x is Φ </em>is acquired.</p></blockquote>
<p>Sellars then states that &#8220;A and B together entail not-C; B and C entail not-A; A and C entail not-B&#8221; (132).</p>
<p>However, I think he makes a crucial misstep in his formulation here. Namely, in C Sellars refers to a fact, that knowledge &#8220;of the form <em></em><em>x is Φ </em>is acquired&#8221;, but I do not believe that what is stated in <em>A</em> truly takes this form.</p>
<p>On my reading of A, when we say that <em>x non-inferentially knows that s is red</em>, we are not saying that <em>x</em> knows the fact &#8220;<em>s is red</em>&#8220;. It may entirely be the case that <em>x</em> is unable to form the sentence <em>&#8220;s</em> is red&#8221;. Suppose that <em>x</em> has been living in <a href="http://www.philosophy-index.com/jackson/marys-room/">Mary&#8217;s Room</a> and is experiencing red for the first time &#8212; <em>x </em>would not be able to know that what <em>x</em> sees is red. Hence, <em>x</em> does not have knowledge of the form <em>x is Φ</em>  in the sense that <em>x</em> can categorize his or her sense perception. But <em>x</em> still has some knowledge from this experience, and for the sense-datum theorist this is a recollection of that given sense data.</p>
<p>The difference here is a logical distinction between a <em>de re</em> and a <em>de dicto</em> formation. These two Latin phrases basically mean &#8220;of the thing&#8221; and &#8220;of what is said&#8221;. Symbolically, we can represent &#8220;<em>x knows that</em>&#8221; as<em> K<sub>x</sub></em>. We can also symbolize &#8220;α is red&#8221; as R(α).</p>
<p>Now, in the case of A, we have the claim that <em>X senses red sense content s</em> entails <em>K<sub>x</sub></em>R(<em>s</em>). This is a <em>de re</em> claim &#8212; what <em>x</em> knows is that, of <em>s</em>, that object is of a certain colour, which we call red. The claim is that <em>x </em>knows that <em>s</em> has some property. We can argue a bit over whether this must be knowledge by acquaintance in the sense that Sellars talks about in this paper, but the idea here is that this is not knowledge of a fact, but rather the knowledge you would acquire whether or not you knew of the category &#8220;red&#8221; to begin with.</p>
<p>However, in C, we have the claim that knowing facts of the form <em>K<sub>x</sub></em>[<em>Φ</em>(α)]. This form translates in our example to <em>K<sub>x</sub></em>[<em>R</em>(<em>s</em>)]. This is the <em>de dicto</em> claim &#8212; what <em>x</em> knows here isn&#8217;t that <em>s is red</em>, but the sentence &#8220;s is red&#8221;.</p>
<p>So, the sense-datum theorist can simply agree that knowledge of <em>de dicto</em> facts in this form are acquired, but deny that A includes such a fact, since what is known can be expressed as a <em>de re </em>claim. Hence, the triad of propositions that Sellars attributes to the sense-data theorist is not inconsistent.</p>
<p style="font-size: 0.9em; color: #666;">Cited:<br />
Sellars, Wilfrid. <em></em>&#8220;Empiricism and the Philosophy of Mind&#8221;. <a href="http://www.amazon.com/gp/product/0924922001/ref=as_li_ss_tl?ie=UTF8&amp;tag=philosophyindex-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399369&amp;creativeASIN=0924922001" rel="nofollow"><em>Science, Perception and Reality</em></a>. London: Routledge &amp; Kegan Paul, 1963. pp. 127-164.</p>
]]></content:encoded>
			<wfw:commentRss>http://colintemple.com/writing/2011/09/sellars-logic-breakdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vandalism with Google Analytics exploits</title>
		<link>http://www.napkyn.com/blog/2011/08/05/google-analytics-vandalism/</link>
		<comments>http://www.napkyn.com/blog/2011/08/05/google-analytics-vandalism/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 14:20:18 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Web Analytics]]></category>
		<category><![CDATA[Web Tracking]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://www.napkyn.com/?p=612</guid>
		<description><![CDATA[Google Analytics has a design approach to web analytics software that differs from many of its competitors. Whereas some tools require you to pre-define anything you want to track  (such as events, page names and campaign data), Google Analytics allows you to define these in the code or URL of a page, and simply accepts [...]]]></description>
			<content:encoded><![CDATA[<p>Google Analytics has a design approach to web analytics software that differs from many of its competitors. Whereas some tools require you to pre-define anything you want to track  (such as events, page names and campaign data), Google Analytics allows you to define these in the code or URL of a page, and simply accepts whatever data is thrown at it. This greatly cuts down on the cost, in both time and money, of implementing and maintaining a Google Analytics account. The ease of implementation has been a huge win for Google Analytics.</p>
<div style="width: 250px; font-size: 0.9em; float: right; margin: 0 0 1em 1em;"><img class="alignnone size-full wp-image-613" title="Keep your Trash out of my Google Analytics" src="http://www.napkyn.com/n/wp-content/uploads/2011/08/trash-into-ga.png" alt="" width="250" height="209" /></div>
<p>However, this philosophy comes at a price. Because it indiscriminately accepts any data it&#8217;s given, <em>it accepts any data it&#8217;s given</em>. The result is that, if someone with the right skills is feeling particularly malicious, they can vandalize and seriously distort your business&#8217; data. There are two ways this can be done.</p>
<p>We&#8217;ve been aware of these potential issues for some time now, but we wrestled a bit with the decision of whether or not to post this. On one hand, we like to share our knowledge and, since this is a very real fact about Google Analytics, it&#8217;s good for GA users to be aware of it. On the other hand, we&#8217;re potentially teaching people <em>how </em>to mess with someone&#8217;s GA deployment. Ultimately we decided on transparency and honesty &#8212; after all, we&#8217;re also going to tell you what you can do to protect yourself from these. But we must begin with a caveat: we do not endorse doing anything like this. We offer this information so you can be aware of potential security risks with your own data, and take the necessary steps to protect your data integrity.  We are strong supporters of the <a href="http://www.webanalyticsassociation.org/?page=codeofethics">Web Analyst&#8217;s Code of Ethics</a>, and though that code doesn&#8217;t say much about messing with others&#8217; data, the idea is generally to be open and honest with data.</p>
<p><strong>(Update: </strong>I should also point out that Google Analytics is not alone in being vulnerable to some of this. The approach to campaigns and ease of copying other data makes it easier than with some tools, I think, but those stem from Google&#8217;s strengths rather than weakness. I offer Google Analytics up because they don&#8217;t have a service level agreement for everyone, and hence it&#8217;s up to you to protect some of your data. Despite any vulnerability, I do want to be clear that Google Analytics is a fine tool and this alone is not cause for alarm, just something to be aware of when implementing this tool, and by extension, others like it.)</p>
<p>With that out of the way, here are the potential exploits we&#8217;ve seen:</p>
<p><span id="more-612"></span></p>
<h2><strong>Campaign Vandalism<br />
</strong></h2>
<p>Google Analytics makes campaigns tracking easy. Unlike tools like Adobe SiteCatalyst which store campaign tracking codes and convert them into useful data, Google Analytics sets campaign names directly in the URL query parameters, accepting any campaign name that it receives. This saves you time managing all your campaigns and channels, and makes setting up Google Analytics significantly faster. But with GA merely accepting any campaign names it gets, what&#8217;s to stop me from visiting your site using a bogus campaign name?</p>
<p><strong>What&#8217;s the problem?</strong></p>
<p>Campaigns in Google Analytics work by adding the names of campaigns, media and sources to URLs. For instance, if you want to track a summer email campaign that links to www.example.com, you may enter a URL like this:</p>
<div style="padding: 1em; border: 1px dotted #444444; background: none repeat scroll 0% 0% #ffffff;"><code>http://www.example.com/?utm_source=<span style="color: #008000;"><strong>newsletter</strong></span>&amp;utm_medium=<span style="color: #008000;"><strong>email</strong></span>&amp;utm_campaign=<span style="color: #008000;"><strong>SummerBlast</strong></span></code></div>
<p>In this example, you&#8217;re pushing though three pieces of information: the source of your list (newsletter), the medium over which you&#8217;re marketing (email) and the name of the individual campaign (SummerBlast). This data will be recorded in Google Analytics, no questions asked. You don&#8217;t even have to tell Google about the campaign ahead of time.</p>
<p>But what&#8217;s to stop me from visiting your site on this URL?</p>
<div style="padding: 1em; border: 1px dotted #444444; background: none repeat scroll 0% 0% #ffffff;"><code>http://www.example.com/?utm_source=<span style="color: #008000;"><strong>magic</strong></span>&amp;utm_medium=<strong><span style="color: #008000;">spaceship</span></strong>&amp;utm_campaign=<span style="color: #008000;"><strong>Stupidhead</strong></span></code></div>
<p>The answer is nothing. If I were to visit a GA-tracked website with those query parameters attached, their Google Analytics implementation would show that someone came to their site magically, by means of a spaceship, through a campaign called Stupidhead. I did this to one of my own sites, and here&#8217;s what I got.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-619" style="border: 1px solid #444;" title="Campaign Vandalism in Google Analytics" src="http://www.napkyn.com/n/wp-content/uploads/2011/08/magic-spaceship-campaign.png" alt="" width="570" height="84" /></p>
<p><strong>How dangerous is it?</strong></p>
<p>The most someone can do is create a bunch of meaningless data. The effect of a single vandal acting alone would be minimal, though an extremely determined vandal could set up a sort of vandalism bot &#8212; an automated software that repeatedly visits your website using falsified campaign data.</p>
<p>If you&#8217;re smart about your reporting, you&#8217;re probably more concerned about your <em>converting</em> campaigns. In order for vandals to mess with those reports, they&#8217;d have to become converting visitors. They may not have a problem with filling out a lead generation form, but if you are running an ecommerce site, these reports have a built-in protection: vandals will have to <em>pay</em> for the opportunity to seriously mess up your reports. (However, you&#8217;ll still need to account for the second scenario below.)</p>
<p><strong>How do you fix it?</strong></p>
<p>The first step is to identify vandalism. Chances are, it will be obvious &#8212; if someone has decided to vandalize your site, it&#8217;s probably because they want you to see it. So a bogus campaign name that shows up in your reports will be clear. If you&#8217;ve been smart about maintaining a convention for your campaign naming, you should have an easier time detecting falsified campaign information, though a determined vandal could spoof your own conventions.</p>
<p>Getting rid of the campaign data isn&#8217;t as easy. In fact, it&#8217;s impossible. What you can do instead is segment it out, so that you see only data from non-vandals. To do this, you need to create an advanced segment. Creating a new custom segment (using the &#8216;Advanced Segments&#8217; area at the top of a report in the new Google Analytics interface), you can choose to exclude campaigns, media or sources that contain the offending terms.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-620" style="border: 1px solid #444;" title="Exclude vandalized campaigns" src="http://www.napkyn.com/n/wp-content/uploads/2011/08/exclude-stupidhead.png" alt="" width="570" height="101" /></p>
<p>The problem here is that if you&#8217;re the victim of serious vandalism, such as from the bot scenario given above, you have to use this segment every time you look at a report in Google Analytics. That&#8217;s a pain.</p>
<p>If you&#8217;re a large organization and you&#8217;re afraid of receiving an attack to your Google Analytics account, you may consider running more than one analytics solution, or copying the relevant data to your own datamart. The larger you are financially, the more likely such an attack is, but the more resources you&#8217;ll have to back-up your data.</p>
<p><strong>What should Google do?</strong></p>
<p><strong></strong>Probably nothing. I think that the fact that you don&#8217;t have to do campaign management within Google Analytics is a plus. It cuts down the overhead &#8212; every organization should have some method to the madness of creating campaigns and campaign names, but the extra work of punching data into your web analytics tool isn&#8217;t always worth the benefit, especially for smaller organizations.</p>
<p>Given the fact that traffic has to convert, and actually spend money if you&#8217;re an ecommerce site, in order to mess with valuable reports. If someone really wanted to hit your site hard with this, the most they could do is become a nuisance. It won&#8217;t destroy your reporting, but it will make it harder to pull clean data.</p>
<p>However, since Google is gradually approaching the enterprise market with its Analytics product,  its product team may consider providing two options for campaign management: both the current consume-everything version, and an internally-managed campaign list in the style of SiteCatalyst. The benefit would be for large customers, who have the resources to properly manage their campaigns, to be able to do so risk-free.</p>
<h2><strong>Fake Data Injection<br />
</strong></h2>
<p><strong></strong>Ok, so, if I want to, I can mess up the campaign data a bit. And if I want to mess up your revenue sources, then at least I have to pay you for the opportunity to do so, and it may not be so bad.  But what if I want to mess up the rest of your data? Surely, I wouldn&#8217;t be able to do that, right?</p>
<p>Wrong. Unless you&#8217;ve set up filters to prevent this, Google Analytics will accept data for your Google Analytics tracking account from any server, as long as it sends the web property ID for your website.</p>
<p><strong>What&#8217;s the problem?</strong></p>
<p>Because Google Analytics accepts this data from anywhere, anyone can create a web page using your Google Analytics tracking code, view it, and have traffic, events or ecommerce data show up in your Google Analytics report.</p>
<p>For example, what happens to your reports if I create a fake transaction, using your Google Analytics tracking code, with a transaction of -$90 million? Here&#8217;s what happens:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-622" style="border: 1px solid #444;" title="Huge Negative Transaction" src="http://www.napkyn.com/n/wp-content/uploads/2011/08/huge-negative-transaction.png" alt="" width="385" height="155" /></p>
<p style="text-align: left;">The other days in that report aren&#8217;t at zero dollars. They range from $50,000 &#8211; $100,000, but you can&#8217;t see the trends because the fake transaction has skewed everything.</p>
<p><strong>How dangerous is it?</strong></p>
<p>The damage here is greater, in that it will severely distort any reports. Someone could take an obvious step, like the above examples, of pushing huge transactions into your Google Analytics account. However, the vandalism could be more subtle: one could push several smaller transactions with false source data to try and misguide you, or push events that you can&#8217;t reconcile with your order management system.</p>
<p>The effect of this and the campaign vandalism method I mentioned above can be compounded. Recall that you&#8217;d have to buy something to mess with revenue source data with the method above? It turns out that, if you fake realistic-looking transactions <em>while using</em> spoofed campaigns, you can make an even bigger mess of things.</p>
<p>One limiting factor here is that the visits have to be run from a server that&#8217;s connected to the Internet and can host web pages. As a result, you can use the Hostnames report in Google Analytics to identify where the fake data came from. This does mean that if someone wishes to vandalize your data in this way, they will have to do so carefully, otherwise they may be identifiable. Potential vandals would have to go to greater lengths to ensure their anonymity.</p>
<p><strong>How do you fix it?</strong></p>
<p>Finding the fake data could be tricky. In the case of revenue and transaction data, you probably have an order management system with which you can compare the data. However, when you&#8217;re strictly looking at Google Analytics, the fake data may not be obvious if the vandal has chosen to be sneaky about it. The first step is to check your Hostnames report. Hostnames are the domain names or IP addresses from which your website is viewed. In the new Google Analytics, you can find the list of hostnames that have been used to view your site from the <strong>Visitors &gt; Technology &gt; Network</strong> report.</p>
<p>If Google Analytics code executes on hostnames that you don&#8217;t own, you&#8217;ll want to investigate the problem. In some cases, those hostnames will simply be search engine caches or translation services that are copying your analytics code. However, if you notice transactions or strange events and campaign data from suspicious hostnames, then you may want to look into the matter.</p>
<p>There are a couple of ways to actually fix the problem. The first is an <em>ad hoc </em>approach &#8212; if someone drops a fake transaction into your system, <a href="http://www.google.com/support/analytics/bin/answer.py?hl=en-US&amp;answer=72290">simply remove it</a> by executing some JavaScript. This requires you to write a custom JavaScript that basically makes an inverted version of the transaction, with negated quantity, revenue, shipping and tax values. This is annoying, but quick enough to get rid of a single transaction.  You can also handle it the way I suggested handling vandalized campaigns above, using custom segmentation.</p>
<p>However, if you want to prevent yourself from these attacks entirely, then you&#8217;ll need to add some filters to your Google Analytics profiles (or create new filtered versions of your main profiles). The goal here would be to create a list of hostnames &#8212; the domain names and subdomains that you use for your website &#8212; and ONLY accept data from those hosts. Now, you&#8217;ll probably want to set up your filters on a <em>new profile</em>, which is a filtered version of your original. That way, you have 100% of the data collected by your site, but also a clean/safe copy to work with.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-621" style="border: 1px solid #444;" title="Include Only Domain" src="http://www.napkyn.com/n/wp-content/uploads/2011/08/include-only-domain.png" alt="" width="522" height="305" /></p>
<p>The example filter I&#8217;ve given here will only count traffic, events and transactions from the domain name &#8216;example.com&#8217;. A better way might be to only include traffic from specific IP addresses, if you know the IP addresses of your website(s)&#8211;this could prevent attempts to spoof your hostname and push vandalism that appears to be legitimate. In either case, <strong>be sure to keep this up-to-date!</strong> If you change your domains, subdomains or IP addresses, it may affect your filtered profile and cut out some legitimate, valuable data.</p>
<p>One quick note: Sometimes you&#8217;ll see additional domains in your list that are from hostnames that have a legitimate purpose. For instance, Google will serve up your site when it shows either a cached version or a translated version &#8212; in both cases, the hostname includes &#8216;googleusercontent.com&#8217;. Bing also shows page caching on cc.bingj.com. You may want to exclude data from caches or translated versions of your pages, but if you&#8217;d prefer to see all of it, include data from those domains as well.</p>
<p><strong>What should Google do?</strong></p>
<p>Google should provide these filters as standard options. You should be able, when creating a profile in Google Analytics, to specifiy what host names and/or IP addresses you&#8217;re willing to accept data from, and be able to provide an on/off switch for accepting data from other sources. Making this option more prominent may help businesses be aware of the issue and protect themselves from day one.</p>
<p>The are more technically complex, and secure, methods of limiting these kinds of problem that Google could consider. One option is to make use of server-side code in conjunction with the JavaScript to authenticate an API key before data is accepted.</p>
<p>At any rate, rumblings of a paid, enterprise-focused Google Analytics can be heard from the horizon. If a service level agreement becomes available to some Google Analytics customers, data integrity and security will be chief concerns.</p>
<p>Until next time,</p>
<p>Colin</p>
<p><strong>UPDATE: </strong>Just a quick note of clarification. Although I focused this post on Google Analytics, I should clarify that GA is not the only tool vulnerable to this &#8212; especially the second method of vandalism. The first method is the easiest thing, and that&#8217;s more specific to GA. This post came out of an internal discussion about the campaign vandalism. To be clear, this kind of thing isn&#8217;t particularly common, and as Emer mentions in a comment below, it tends to be a result of negligence when people copy code or designs, rather than a malicious attempt. So, there&#8217;s no need for immediate concern for most people, but I think it&#8217;s worth being aware of what you can do to protect yourself from this inherent vulnerability in most analytics tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.napkyn.com/blog/2011/08/05/google-analytics-vandalism/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Track LinkedIn Share Buttons in Google Analytics</title>
		<link>http://www.napkyn.com/blog/2011/08/02/linkedin-share-buttons-google-analytics/</link>
		<comments>http://www.napkyn.com/blog/2011/08/02/linkedin-share-buttons-google-analytics/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 15:03:53 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Analytics]]></category>
		<category><![CDATA[Web Tracking]]></category>
		<category><![CDATA[event tracking]]></category>

		<guid isPermaLink="false">http://www.napkyn.com/?p=593</guid>
		<description><![CDATA[I&#8217;ve been building up a technical post series on tracking social media hook-ups in Google Analytics. I wrote about tracking Google +1 Votes before Google automated it. After they unveiled new Social reports in GA, I followed up with an update on tracking Facebook Like buttons. Next on the docket: LinkedIn Sharing  &#8230; because as [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-595" style="float: right; margin: 0 0 1em 1em;" title="LinkedIn tracking in Google Analytics" src="http://www.napkyn.com/n/wp-content/uploads/2011/07/linkedin-share-GA.png" alt="" width="148" height="155" />I&#8217;ve been building up a technical post series on tracking social media hook-ups in Google Analytics. I wrote about <a href="http://www.napkyn.com/blog/2011/06/02/track-google-plus-one-buttons-google-analytics/">tracking Google +1 Votes</a> before Google automated it. After they unveiled new Social reports in GA, I followed up with an update on <a href="http://www.napkyn.com/blog/2011/07/06/track-facebook-like-google-analytics/">tracking Facebook Like buttons</a>. Next on the docket: LinkedIn Sharing  &#8230; because as analysts, to be ready to answer the tough questions, you really should be <a href="http://www.napkyn.com/blog/2011/06/23/events-track-everything/">tracking everything</a>.</p>
<p>The method of tracking for LinkedIn buttons differs a little bit from the others I&#8217;ve posted so far. Currently, LinkedIn does not provide a callback function that executes when an action is completed &#8212; there&#8217;s no flag in the code that says &#8220;visitor shared something, now what?&#8221;. Instead, we have to build our own JavaScript function that we can bind to an action. In order to do so, this example uses <a href="http://jquery.com/">jQuery</a>, a popular JavaScript library.<span id="more-593"></span></p>
<p>The first step is to get your button code snippet from LinkedIn. LinkedIn calls this service <a href="http://www.linkedin.com/publishers">LinkedIn for Publishers</a>. When you generate the code, it will look something like this:</p>
<div style="padding: 1em; border: 1px dotted #444444; background: none repeat scroll 0% 0% #ffffff;"><code><span style="color: #0000ff;">&lt;script</span> <span style="color: #800000;">type</span>=<span style="color: #008000;">"text/javascript"</span> <span style="color: #800000;">src</span>=<span style="color: #008000;">"http://platform.linkedin.com/in.js"</span><span style="color: #0000ff;">&gt;&lt;/script&gt;&lt;script</span> <span style="color: #800000;">type</span>=<span style="color: #008000;">"in/share"</span> <span style="color: #800000;">data-url</span>=<span style="color: #008000;">"http://example.com/article/"</span> <span style="color: #800000;">data-counter</span>=<span style="color: #008000;">"top"</span><span style="color: #0000ff;">&gt;&lt;/script&gt;</span></code></div>
<p>This script from LinkedIn above generates new HTML which is inserted into the page in order to create the &#8216;Share&#8217; button and its functionality. The code generated includes a new <code><span style="color: #0000ff;">&lt;div&gt;</span></code> element, which has the class name <code>IN-widget</code>.</p>
<p>This gives us the chance to reference the generated button with a little code of our own. Using the jQuery <code><span style="color: #0000ff;">.ready</span></code> event handler &#8212; to ensure that the code does not execute until LinkedIn is finished building the button &#8212; we construct a new function that binds to the &#8220;click&#8221; event for all objects with the class name &#8216;<code>IN-widget</code>&#8216;. In this function, we include the Google Analytics social tracking code, to create a new social event.</p>
<div style="padding: 1em; border: 1px dotted #444444; background: none repeat scroll 0% 0% #ffffff;"><code><span style="color: #0000ff;">$</span>(<span style="color: #800000;">window</span>).<span style="color: #0000ff;">ready</span>(<span style="color: #0000ff;">function</span>() <span style="color: #800000;">{</span><br />
<span style="color: #0000ff;">$</span>(<span style="color: #008000;">'.IN-widget'</span>).<span style="color: #0000ff;">click</span>(<span style="color: #0000ff;">function</span>() {<br />
<span style="color: #0000ff;">_gaq</span>.<span style="color: #0000ff;">push</span>(<span style="color: #800000;">[</span><span style="color: #008000;">'_trackSocial'</span>, <span style="color: #008000;">'LinkedIn'</span>, <span style="color: #008000;">'Share'</span>, <span style="color: #800000;">window.location.href</span><span style="color: #800000;">]</span>);<br />
<span style="color: #800000;">}</span>);<br />
<span style="color: #800000;">}</span>);</code></div>
<p>This new code can be added pretty much anywhere on your page &#8212; you may want to include it right after the code LinkedIn gives you to keep them together, or put it in your header if that&#8217;s how you prefer to organize your site.</p>
<p>Note that in this example, the last parameter, <span style="color: #800000;"><code>window.location.href</code></span>, will send the current URL along as the resource shared. In different systems, you may prefer to output the URL directly, rather than through JavaScript. For instance, in <a href="http://wordpress.org/">WordPress</a>, you may replace the last parameter with the permalink for a post:</p>
<div style="padding: 1em; border: 1px dotted #444444; background: none repeat scroll 0% 0% #ffffff;"><code><span style="color: #0000ff;">_gaq</span>.<span style="color: #0000ff;">push</span>(<span style="color: #800000;">[</span><span style="color: #008000;">'_trackSocial'</span>, <span style="color: #008000;">'LinkedIn'</span>, <span style="color: #008000;">'Share'</span>, <span style="color: #008000;">'<span style="color: #000080;">&lt;?php the_permalink<span style="color: #000000;">();</span> ?&gt;</span>'</span><span style="color: #800000;">]</span>);</code></div>
<p>Now, there is one issue which must be kept in mind. In the case of the Facebook and Google +1 buttons I&#8217;ve previously shared, the social event code only fires after something has been shared. That&#8217;s the benefit of the callback function provided by those services. In the case of LinkedIn, however, what we&#8217;re really tracking are clicks to the share button &#8212; it&#8217;s possible for someone to cancel sharing after clicking the button, so you may get an inflated total.</p>
<p>With that caveat in mind, you&#8217;re all set! Once you&#8217;ve added this JavaScript, your LinkedIn shares will appear in the new social reports in Google Analytics. You can find these reports under &#8220;<strong>Visitors &gt; Social&#8221; </strong>in the new version of GA. With this, your web analyst can help you determine what impact these buttons have on your site and your business. For instance, whether frequently-shared articles get much more <em>converting </em>traffic from LinkedIn, and whether the people who share things are also the people who convert themselves.</p>
<p>Until next time,</p>
<p>Colin</p>
]]></content:encoded>
			<wfw:commentRss>http://www.napkyn.com/blog/2011/08/02/linkedin-share-buttons-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Track Facebook Like Buttons in Google Analytics</title>
		<link>http://www.napkyn.com/blog/2011/07/06/track-facebook-like-google-analytics/</link>
		<comments>http://www.napkyn.com/blog/2011/07/06/track-facebook-like-google-analytics/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 17:42:16 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Tracking]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://www.napkyn.com/?p=491</guid>
		<description><![CDATA[I posted recently about event tracking, arguing that everything on your site should be worthy of tracking because everything on your site should be valuable. When people wonder about the value of website elements, what often comes to mind is social media. Social media is difficult to track, and as a result, it&#8217;s notoriously difficult [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-492" style="float: right; margin: 0 0 1em 1em;" title="Facebook Like Tracking" src="http://www.napkyn.com/n/wp-content/uploads/2011/05/facebook-like.png" alt="" width="200" height="199" />I posted recently about event tracking, arguing that <a href="http://www.napkyn.com/blog/2011/06/23/events-track-everything/">everything on your site should be worthy of tracking</a> because everything on your site should be valuable. When people wonder about the value of website elements, what often comes to mind is social media.</p>
<p>Social media is difficult to track, and as a result, it&#8217;s notoriously difficult to assign value to it. So, adding tracking to the few places you can is important. One of those places that we frequently encounter is the <strong>Facebook Like button</strong>.</p>
<p>Last week, Google introduced Social Interaction Tracking in Google Analytics. Essentially, this allows you to put events from social media interactions into a special category that groups all social engagements together.  We&#8217;ve been tracking social media interactions on our clients&#8217; sites for quite a while, but until now this was done with event tracking. The new format, using the Social Interaction reports, lets you view the data through reports that are specifically tailored for this kind of activity. It also lets you more easily group any kind of social interaction together, and provides some automatic segmentation of socially engaged visitors.</p>
<p>So, using this new code, here&#8217;s my update on how to track Facebook &#8220;Like&#8221; buttons in Google Analytics. In this example I use the latest code from Facebook, so you&#8217;ll want to update any existing Like buttons you have. I also used the latest, asynchronous version of the Google Analytics tracking code.<br />
<span id="more-491"></span></p>
<p><strong>Getting your Facebook Like Button code</strong></p>
<p>The first thing you&#8217;ll need is the code that actually creates the Like button, which can be <a href="http://developers.facebook.com/docs/reference/plugins/like/">obtained from Facebook</a>. Facebook requires you to be a registered Facebook developer in order to make your buttons, which means  confirming that you&#8217;re a real person either by a text to your mobile  phone, or by entering credit card information.</p>
<p>In the post I mentioned above, I said that everything that happens on your site can  be tracked &#8212; but that some things, including iframes and  entirely-external JavaScript cannot easily fit into the mix. Facebook Like buttons can fit into either category. There&#8217;s an iframes version, which simply loads in a tiny window into Facebook that&#8217;s outside of the reach of JavaScript. The consequence: you can&#8217;t track the iframes Like button.</p>
<p>The other method uses Facebook&#8217;s XFBML. This version is mainly JavaScript-driven, but includes one very cool feature: Facebook provides a function to handle a Like event. That is, Facebook gives you an opportunity to add extra code to be executed whenever a &#8220;Like&#8221; happens. This is the perfect spot for Google Analytics event tracking, so <strong>make sure to choose the XFBML version</strong> of the Like button.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-493" style="border: 1px solid #444;" title="Facebook: Get Like Button" src="http://www.napkyn.com/n/wp-content/uploads/2011/05/facebook-get-like-button.jpg" alt="" width="537" height="176" /></p>
<p>Facebook will give you some code that looks something like the following. Of course, APP_ID_HERE and PAGE_URL will both be replaced by your App ID from Facebook, as well as the URL of the page to Like &#8212; both of these parameters are set automatically when you generate the button. The settings you choose when you generate the button will change the second line.</p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff;"><code>&lt;div id="fb-root"&gt;&lt;/div&gt;&lt;script src="http://connect.facebook.net/en_US/all.js#appId=<strong>APP_ID_HERE</strong>&amp;amp;xfbml=1"      type="text/javascript"&gt;&lt;/script&gt;<br />
&lt;fb:like href="<strong>PAGE_URL</strong>" send="false"     width="100" show_faces="false"     font=""&gt;&lt;/fb:like&gt;</code></div>
<p><strong>Adding the Google Analytics social tracking<br />
</strong></p>
<p>What you need to add is a simple line of code that adds a new JavaScript function. This function&#8217;s purpose is to execute whenever the Like button is clicked, and fire a Google Analytics tracking code when that happens.</p>
<p>The asynchronous (async) version of the code looks like this:</p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff;"><span style="color: #0000ff;"><code>&lt;script <span style="color: #993300;"> type</span>=<span style="color: #008000;">"text/javascript"</span>&gt;<br />
FB.Event.subscribe(<span style="color: #008000;">'edge.create'</span>,      function(<span style="color: #993300;">href</span>, <span style="color: #993300;">widget</span>) <span style="color: #993300;">{</span> _gaq.push(<span style="color: #993300;">[</span><span style="color: #008000;">'_trackSocial'</span>, <span style="color: #008000;">'Facebook'</span>,      <span style="color: #008000;">'Like'</span>, href<span style="color: #993300;">]</span>); <span style="color: #993300;">}</span>);<br />
&lt;/script&gt;</code></span></div>
<p>You may also want to track &#8220;Unlikes&#8221;, cases where a visitor clicks the Like button again to remove the page from their Liked content. Using the async method, add this to the JavaScript:</p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff;"><span style="color: #0000ff;"><code>FB.Event.subscribe(<span style="color: #008000;">'edge.remove'</span>,       function(<span style="color: #993300;">href</span>, <span style="color: #993300;">widget</span>) <span style="color: #993300;">{</span> _gaq.push(<span style="color: #993300;">[</span><span style="color: #008000;">'_trackSocial'</span>, <span style="color: #008000;">'Facebook'</span>,      <span style="color: #008000;">'Unlike'</span>, href<span style="color: #993300;">]</span>); <span style="color: #993300;">}</span>);</code></span></div>
<p>Here&#8217;s what the final code looks like when you&#8217;ve added the new tracking snippet.  Again, APP_ID_HERE and PAGE_URL, in red, need to be replaced. The new tracking code is highlighted in color:</p>
<p><code> </code></p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff;"><code>&lt;div id="fb-root"&gt;&lt;/div&gt;&lt;script src="http://connect.facebook.net/en_US/all.js#appId=<span style="color: #ff0000;"><strong>APP_ID_HERE</strong></span>&amp;amp;xfbml=1"      type="text/javascript"&gt;&lt;/script&gt;<br />
&lt;fb:like href="<span style="color: #ff0000;"><strong>PAGE_URL</strong></span>" send="false"     width="100" show_faces="false"     font=""&gt;&lt;/fb:like&gt;<br />
<span style="color: #0000ff;">&lt;script <span style="color: #800000;"> type</span>=<span style="color: #008000;">"text/javascript"</span>&gt;<br />
FB.Event.subscribe(<span style="color: #008000;">'edge.create'</span>,     function(<span style="color: #800000;">href, widget</span>) <span style="color: #800000;">{</span> _gaq.push<span style="color: #800000;"><span style="color: #0000ff;">(</span>[</span><span style="color: #008000;">'_trackSocial'</span>, <span style="color: #008000;">'Facebook'</span>,     <span style="color: #008000;">'Like'</span>, href<span style="color: #800000;">]<span style="color: #0000ff;">)</span></span>; <span style="color: #800000;">}<span style="color: #0000ff;">)</span></span>;<br />
<span style="color: #0000ff;">FB.Event.subscribe(<span style="color: #008000;">'edge.remove'</span>,       function(<span style="color: #993300;">href</span>, <span style="color: #993300;">widget</span>) <span style="color: #993300;">{</span> _gaq.push(<span style="color: #993300;">[</span><span style="color: #008000;">'_trackSocial'</span>, <span style="color: #008000;">'Facebook'</span>,      <span style="color: #008000;">'Unlike'</span>, href<span style="color: #993300;">]</span>); <span style="color: #993300;">}</span>);</span><br />
&lt;/script&gt;</span></code></div>
<p>So that&#8217;s it! Google Analytics tracking for Facebook &#8220;Like&#8221; buttons on your website. Once people start to &#8216;Like&#8217; your pages, you&#8217;ll see the data show up in the <strong>Visitors &gt; Social </strong>area of your Google Analytics account (in the new version).</p>
<p><strong>Using the Data</strong></p>
<p>Once you have your tracking in place, your <a href="http://www.napkyn.com/blog/2011/07/analyst-program/">web analyst</a> can make use of Google Analytics segmentation and a little bit of smarts to answer some really cool questions.  Are the same visitors who &#8220;Like&#8221; products the same ones who actually  buy them? Do posts, pages and articles with more Likes serve as the  landing pages for more converting visitors? Is there a best position for  social media buttons to get the most shares, Tweets and Likes without  distracting from conversions?</p>
<p>All of these questions can be answered with this data. Together with the referral data from incoming Facebook visitors, these insights can give you a sense of how valuable Facebook Like buttons are on your site and how you can best make use of them.</p>
<p>Until next time,</p>
<p>Colin</p>
]]></content:encoded>
			<wfw:commentRss>http://www.napkyn.com/blog/2011/07/06/track-facebook-like-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Events in Web Analytics: A Case for Tracking Everything</title>
		<link>http://www.napkyn.com/blog/2011/06/23/events-track-everything/</link>
		<comments>http://www.napkyn.com/blog/2011/06/23/events-track-everything/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 19:45:00 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Web Analytics]]></category>
		<category><![CDATA[Web Tracking]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[event tracking]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://www.napkyn.com/?p=499</guid>
		<description><![CDATA[Image Credit: jared via Flickr Everything that happens on a website is an event. We&#8217;re in a strange place with this &#8216;events&#8217; business in web analytics right now. Event tracking is still relatively new and many are only now really discovering them. The events paradigm allows you to track activities that were previously outside the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center; font-size: 0.8em;"><img class="alignnone size-full wp-image-527" style="border: 1px solid #444;" title="Events" src="http://www.napkyn.com/n/wp-content/uploads/2011/06/events.jpg" alt="" width="580" height="130" /><br />
Image Credit: <a href="http://www.flickr.com/photos/generated/2084287794/">jared via Flickr</a></p>
<p><strong>Everything that happens on a website is an event.</strong></p>
<p>We&#8217;re in a strange place with this &#8216;events&#8217; business in web analytics right now. Event tracking is still relatively new and many are only now really discovering them. The events paradigm allows you to track activities that were previously outside the realm of measurement by firing off a JavaScript codes that say, &#8220;hey, something happened!&#8221;.</p>
<p>This leads us into a bit of misunderstanding. Traditionally, web analytics involved looking at page views. Some page views were boring. Other page views were conversions. Some other page views were somewhere in between, part of a conversion funnel. Web analytics tools became much more relevant when they started tracking ecommerce conversions, so you could see how much money was being made. So far, so good.<br />
<span id="more-499"></span></p>
<p>Events showed up, in part, to respond to the technological development of the web. Suddenly, important stages of that funnel were no longer page views. With methods like <abbr title="asynchronous JavaScript and XML">AJAX</abbr>, some sites suddenly had their entire shopping cart process happen on one page, with each step loading within the page. Page views don&#8217;t tell you what happened there, so event tracking came to the rescue in order to track these new &#8220;events&#8221; alongside your traffic and transactions.</p>
<p>What event tracking highlights is not that there <em>was </em>good tracking and then new technologies broke it. What it shows instead is that the older way of doing things was broken. It tracked only one kind of event: page views. Sometimes, it tracked two: page views and transactions. Good. Not good enough.</p>
<p>Page views are events. Transactions are events. Clicks are events. Chat interactions are events. Searches are events. Customer reviews are events. You get the idea: <strong>everything that happens on a website is an event</strong>. It&#8217;s not that these new event things are an addition to what&#8217;s there, it&#8217;s that the old way of tracking interaction on a website is incomplete. It forced you into one or two types of event, and ignored the rest.</p>
<p>What Google Analytics, Yahoo! Web Analytics, Adobe SiteCatalyst and other tools are now doing, which needs to be done, is allowing you to determine, as an organization, what kinds of events are happening on your website and which ones are relevant to a conversion.</p>
<p><strong>Everything that happens on a website can be tracked.</strong></p>
<p><img class="alignnone size-full wp-image-528" style="float: right; margin: 0 0 1em 1em; border: 1px solid #777;" title="Events in Google Analytics" src="http://www.napkyn.com/n/wp-content/uploads/2011/06/events-ga.png" alt="" width="370" height="152" />At <a href="http://www.napkyn.com/">Napkyn</a>, we don&#8217;t really do implementations, almost as a rule. Our focus is on helping our clients expand the value of their sites. If we sold developer time, we&#8217;d be focused too much on building implementation frameworks and running up project hours, which isn&#8217;t valuable. But we do review our clients&#8217; implementations and make our recommendations about what else should be tracked &#8212; what data we need to tell them how to grow their online business.</p>
<p>When we make these recommendations to clients, more often than not, the answer is something like, &#8220;wow, you can really track that?&#8221; Sometimes that sparks a further list of, &#8220;what about this, and this, and this?! Can you track these?&#8221; The answer to those questions, 95% of the time, is &#8220;yes, we can track that.&#8221;</p>
<p>Strictly speaking, <em>any </em>user interaction on a website can be tracked. This includes anything that&#8217;s clicked on, moused over, spoken with. I say, &#8220;strictly speaking&#8221;, because the things we can&#8217;t track are the little bits that aren&#8217;t on the website itself. Obviously, things like whether the planes are on schedule at O&#8217;Hare and whether or not it&#8217;s raining in Fiji are off-limits for a web analytics tool, unless you happen to be the O&#8217;Hare airport or a news outlet in Fiji. Less obviously, things that are contained within iframes (small windows within a site that load in content from another site) as well as some externally-hosted JavaScript applications can&#8217;t be tracked by the page they&#8217;re on.   This includes some versions of Facebook Like buttons and other social media sharing icons.</p>
<p><strong>Everything that happens on a website <em>should</em> be tracked.</strong></p>
<p>That claim goes beyond my analyst&#8217;s desire to have the whole picture, to sift through every bit of data I can to get killer insights. This isn&#8217;t a quest to know everything about everyone who browses a website. This is about knowing how valuable each ingredient is. You don&#8217;t want useless clutter, but you don&#8217;t want to throw out anything good. So, we need data to determine the value of every interactive piece of a website.</p>
<p>So, everything on your site should be worth tracking. The reasoning is simple: <strong>If there&#8217;s something on your site that&#8217;s not worth tracking, it&#8217;s not worth having on your site.</strong></p>
<p><img class="alignnone size-full wp-image-529" style="float: right; margin: 0 0 1em 1em; border: 1px solid #777;" title="Omniture Custom Events" src="http://www.napkyn.com/n/wp-content/uploads/2011/06/custom-events-omniture.png" alt="" width="236" height="136" />Of course, you have to prioritize what tracking you&#8217;ll add first. If you&#8217;re missing it, the first things you should track are your<strong> macro conversions </strong>&#8211; the ultimate goals of your website: Sales. Lead forms. Donations. This will depend on what your site is about, but you get the idea. This is crucial, and web analytics is next to useless without it.</p>
<p>Next up, track your<strong> micro conversions</strong> &#8212; conversion-related events that drive towards a conversion. An add-to-cart button is a micro conversion. We can argue about semantics, but I count things like newsletter sign-ups as micro conversions. They&#8217;re not the goal of the site, but they get you something valuable: permission to market to someone later.</p>
<p><strong>Engagement events</strong> are third on my list. Some others, like <a href="http://www.kaushik.net/">Avinash Kaushik</a>, count these as micro conversions. This is all semantics, of course, but I like to, at a higher level, differentiate between events that are and are not driving someone towards being a customer. Signing up for marketing emails does that. Adding a product to a cart does that. Clicking a Facebook &#8220;Like&#8221; button does not. These events may still be valuable and certainly show that the visitor is engaged in your website, but they don&#8217;t directly help that visitor become a customer. Other examples include filling out a feedback form or commenting on your blog.</p>
<p>Anything outside of that is <strong>noise</strong>. External links on your blog? Noise. Social media links that take people <em>away </em>from a product page and towards Facebook, Twitter, etc.? Noise. (Yes: That someone &#8220;liked&#8221; a product page without leaving it is valuable. That someone left your conversion-focused site to <em>look at</em> your Facebook page is noise.) Should you track noise? Sure! After all, if you can prove that a feature is useless or even hurting conversions, then you have a case to rid yourself of it. On the other hand, you may be surprised by what the data tells you &#8212; after all, if intuition were perfect, we analysts wouldn&#8217;t have jobs.</p>
<p>You won&#8217;t look at all of this at once, and this isn&#8217;t data for executives. Executives are already drowning in metrics &#8212; this is data that should be at the ready for analysts when hard questions come up. And when the time comes around to make iterative changes or a full redesign, it&#8217;s extremely valuable to be able to see what role each component of your website plays in the overall visitor experience, and most importantly, converting traffic into business.</p>
<p>When such a time comes, you&#8217;ll be thankful that your <a href="http://www.napkyn.com/analyst-program/">web analyst</a> has the data at hand to answer those questions. And if you can get your head out of the traditional page-views&#8211;centric approach, you&#8217;ll stop worrying about what you can track and start thinking about where your next revenue lift should come from.</p>
<p>Until next time,</p>
<p>Colin</p>
]]></content:encoded>
			<wfw:commentRss>http://www.napkyn.com/blog/2011/06/23/events-track-everything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Track Google +1 Buttons with Google Analytics</title>
		<link>http://www.napkyn.com/blog/2011/06/02/track-google-plus-one-buttons-google-analytics/</link>
		<comments>http://www.napkyn.com/blog/2011/06/02/track-google-plus-one-buttons-google-analytics/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 18:25:52 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Google +1]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Tracking]]></category>
		<category><![CDATA[event tracking]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://www.napkyn.com/?p=505</guid>
		<description><![CDATA[In a move reminiscent of Facebook&#8217;s option to put Like buttons out on the web, Google yesterday opened up its +1 website voting to web pages. This social feature, which already allowed you to share results on search engine pages, lets your website users directly &#8220;+1&#8243; content from your site&#8217;s pages. It&#8217;s Google&#8217;s answer to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-513" style="float: right; margin: 0 0 1em 1em;" title="Google +1" src="http://www.napkyn.com/n/wp-content/uploads/2011/06/google-plus-one1.png" alt="" width="142" height="96" />In a move reminiscent of Facebook&#8217;s option to put Like buttons out on the web, Google yesterday <a href="http://googleblog.blogspot.com/2011/06/1-button-for-websites-recommend-content.html">opened up its +1 website voting</a> to web pages. This social feature, which already allowed you to share results on search engine pages, lets your website users directly &#8220;+1&#8243; content from your site&#8217;s pages. It&#8217;s Google&#8217;s answer to the Facebook Like, Tweet This other social sharing buttons.</p>
<p>As analysts, we naturally want all of the data, so my first thought was, &#8220;OK, how do we track this thing?&#8221; As it turns out, Google thought of that as well. When you&#8217;re creating your +1 button, there&#8217;s an Advanced Options area which lets you customize the button. One of those options is to reference a callback function &#8212; JavaScript code that will execute when a +1 event happens. This is the perfect place for a little Google Analytics event tracking.<br />
<span id="more-505"></span></p>
<p>The code you get from Google will look something like this:</p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff; color: #222;"><code><span style="color: #008000;">&lt;!-- Place this tag in your head or just before your close body tag --&gt;</span><br />
<span style="color: #000080;">&lt;script type=<span style="color: #008000;">"text/javascript"</span> src=<span style="color: #008000;">"http://apis.google.com/js/plusone.js"</span>&gt;&lt;/script&gt; </span></code>&nbsp;</p>
<p><code><span style="color: #008000;">&lt;!-- Place this tag where you want the +1 button to render --&gt;</span><br />
<span style="color: #000080;">&lt;g:plusone&gt;&lt;/g:plusone&gt;</span></code></p>
</div>
<p>The first part, the <code>&lt;script&gt;</code> tag, doesn&#8217;t need to change and will need to be put in your header no matter what. What will change is the second part, the <code>&lt;g:plusone&gt;</code> tags. If you choose to add a callback function, it&#8217;ll look something like this:</p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff; color: #222;"><span style="color: #000080;"><code>&lt;g:plusone callback=<span style="color: #008000;">"track_plusone"</span>&gt;&lt;/g:plusone&gt;</code></span></div>
<p>In this example, I added a callback named <strong>track_plusone</strong>. This is a reference to a JavaScript function called &#8220;track_plusone&#8221; that will need to be defined on the page as well.  Here&#8217;s the code for my initial function:</p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff; color: #222;"><code><span style="color: #000080;">&lt;script type=<span style="color: #008000;">"text/javascript"</span>&gt;</span><br />
<span style="color: #000080;">function </span>track_plusone<span style="color: #000080;">(</span>gpovote<span style="color: #000080;">)</span> <span style="color: #800000;">{</span><br />
<span style="color: #000080;">_gaq.push(</span><span style="color: #800000;">[</span><span style="color: #008000;">'_trackEvent'</span>, <span style="color: #008000;">'Social Shares'</span>, <span style="color: #008000;">'Google +1 Vote'</span>, gpovote.href<span style="color: #800000;">]</span><span style="color: #000080;">)</span>;<br />
<span style="color: #800000;">}</span><br />
<span style="color: #000080;">&lt;/script&gt;</span></code></div>
<p>What this function does is fires a Google Analytics event tracking code. It sets the category of that event to &#8220;Social Shares&#8221;, the action to &#8220;Google +1 Vote&#8221; and the label to the URL of the page the button was clicked on. You can change the category and action to suit your own conventions, of course. The page is technically available in the new GA interface, where you can view events by page as well.   The result is an event that shows up in Google Analytics whenever an item is voted for. Events take anywhere from one to 24 hours to show up, and appear within the <strong>Content &gt; Events</strong> area of the Google Analytics user interface.</p>
<p>There&#8217;s one other feature we need to account for. Not only can visitors click the button to +1 vote for a page, but they can click it again to undo their vote &#8212; effectively giving you a -1 vote. We&#8217;ll need to be able to distinguish between initial +1 votes and -1 vote &#8220;undo&#8221; events. So, here&#8217;s a revised version of the function, which gives you two kinds of event actions: &#8220;Google +1 Vote&#8221; and &#8220;Google -1 Vote (Undo +1)&#8221;. Again, you change those details to match your conventions.</p>
<div style="padding: 1em; border: 1px dotted #444; background: #fff; color: #222;"><code><span style="color: #000080;">&lt;script type=<span style="color: #008000;">"text/javascript"</span>&gt;</span><br />
<span style="color: #000080;">function </span>track_plusone<span style="color: #000080;">(</span>gpovote<span style="color: #000080;">)</span> <span style="color: #800000;">{</span><br />
<span style="color: #000080;">var </span>gpoaction = <span style="color: #008000;">'Google +1 Vote'</span>;<br />
<span style="color: #000080;">if (</span>gpovote.state==<span style="color: #008000;">'off'</span><span style="color: #000080;">)</span> <span style="color: #800000;">{</span> gpoaction = <span style="color: #008000;">'Google -1 Vote (Undo +1)'</span>; <span style="color: #800000;">}</span><br />
<span style="color: #000080;">_gaq.push(</span><span style="color: #800000;">[</span><span style="color: #008000;">'_trackEvent'</span>, <span style="color: #008000;">'Social Shares'</span>, gpoaction, gpovote.href<span style="color: #800000;">]</span><span style="color: #000080;">)</span>;<br />
<span style="color: #800000;">}</span><br />
<span style="color: #000080;">&lt;/script&gt;</span></code></div>
<p>[ <strong>Update: </strong>Google has also indicated that they will be adding some +1 reports of their own into Google Analytics, so these features will be integrated. You may prefer to do it that way, but one of the reasons we're using this code is that it allows our "social shares" events to be grouped and roll up into one category. At a glance, we can see how many shares happened on the site, and then drill down to see which services they came from. It's all about getting the right structure you want for the way you look at your site's features. ]</p>
<p>[ <strong>Update 2: </strong>Google has now unveiled its new reports for tracking social media interactions. The integrated +1 tracking is now combined with a new version of the event tracking code that's specific to social media. I added a post on tracking <a href="http://www.napkyn.com/blog/2011/07/06/track-facebook-like-google-analytics/">Facebook Like buttons using Google Analytics social tracking</a> to showcase the new code, but the +1 buttons have this feature automatically, so strictly speaking, you don't need to add this yourself anymore. We still use this code to show these alongside our existing events for social tracking, at least until we get more data from the new method and phase the event tracking version out. ]</p>
<p>This kind of tracking lets your <a href="http://www.napkyn.com/analyst-program/">web analyst</a> answer questions about the value of these Google +1 buttons, and the voters who use them. Are people who +1 vote for products the same people who purchase them? Do those people tend to come from social media themselves?</p>
<p>Social media is notoriously tough to track, so answering questions like this can be very useful to understanding what exactly you gain by adding these buttons to your site. Are they worth it? Let the data tell you.</p>
<p>Until next time,</p>
<p>Colin</p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.napkyn.com/blog/2011/06/02/track-google-plus-one-buttons-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The website re-launch checklist</title>
		<link>http://www.napkyn.com/blog/2011/03/15/website-relaunch-checklist/</link>
		<comments>http://www.napkyn.com/blog/2011/03/15/website-relaunch-checklist/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 16:15:37 +0000</pubDate>
		<dc:creator>Colin Temple</dc:creator>
				<category><![CDATA[Search Engine Optimization]]></category>
		<category><![CDATA[Web Analytics]]></category>
		<category><![CDATA[ecommerce]]></category>

		<guid isPermaLink="false">http://www.napkyn.com/?p=385</guid>
		<description><![CDATA[First, a quick introduction: I&#8217;m Colin, an analyst here at Napkyn. I&#8217;ve been working at Napkyn for several months now, mainly with some of our Omniture-powered enterprise clients, but this is my first time contributing to the blog. We&#8217;re well into 2011 and coming up to the end of the fiscal year for many businesses. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-428" src="http://www.napkyn.com/n/wp-content/uploads/2011/03/checklist.jpg" alt="" width="140" height="200" />First, a quick introduction: I&#8217;m Colin, an analyst here at <a href="http://www.napkyn.com/">Napkyn</a>. I&#8217;ve been working at Napkyn for several months now, mainly with some of our Omniture-powered enterprise clients, but this is my first time contributing to the blog.</p>
<p>We&#8217;re well into 2011 and coming up to the end of the fiscal year for many businesses. With pressure to plan out the next 12 months in order to continually grow, many of our clients are looking to refresh or relaunch their websites. (We&#8217;re looking at doing the same ourselves&#8211;we&#8217;re doing some cool new things that we&#8217;d like to brag about!)</p>
<p>As <a href="http://www.napkyn.com/analyst-program/">web analysts</a>, we&#8217;ll be the first to tell you that updating a site&#8217;s design won&#8217;t immediately equal performance improvement. Without planning, it can easily go either way: a relaunch can offer major improvement to your revenue performance, but it can also kill your traffic, and even with an amazing conversion rate, fewer visitors means fewer visitors to convert.</p>
<p>So, here&#8217;s the checklist:</p>
<p><span id="more-385"></span></p>
<p><strong>1. Look at the data</strong></p>
<p>Obviously, as web analysts, this is near and dear to us at Napkyn. But it&#8217;s something every business should do when making changes to their marketing efforts. You essentially have two options when deciding what sorts of changes you make to your website. You can:</p>
<ol>
<li>guess, or</li>
<li>know.</li>
</ol>
<p>If you guess, you could throw out the best-converting pieces of your website. Worst case scenario: your business fails entirely. Looking at your current data will let you know which parts of your site are working, and which aren&#8217;t. Worst case scenario: You do as well as you did before.</p>
<p>Everybody wants a sexy brand and that&#8217;s not a bad thing, but good design is not success. I&#8217;ve seen beautiful sites fail and ugly sites make millions. At the end of the day, you probably want changes that make you more money. Look at your data to get insights on what works well for your business and compare it to others&#8217; data and best practices to get a sense for what has worked before.</p>
<p>Of course, not everyone has a head for this stuff, so if you&#8217;re not sure about how to move from guess to know, <a href="http://www.napkyn.com/analyst-program/">we can help with that</a>.</p>
<p><strong>2. Manage your URLs</strong></p>
<p>Next up, a tactical tip. If at all possible, try to minimize the changes to your URL structure. Keep in mind that search engines don&#8217;t index<em> websites</em>, but rather <em>web pages</em> &#8212; and they do this by the URL. Every URL that you remove from your site is a page lost from Google&#8217;s index. Chances are good that you remember from when you first set up your website, getting good rankings can take a while. You don&#8217;t want to risk having to start over. The number one cause of lost traffic after a site relaunch is almost always a drop in search traffic.</p>
<p>There are some cases where keeping your URL structure is not possible. This can happen because you change content management systems or ecommerce software vendors, and the old structure simply isn&#8217;t possible in the new software. Many good systems allow you to set the rules for how URLs are generated, but sometimes this isn&#8217;t available. Fair enough.</p>
<div style="width: 188px; font-size: 0.9em; float: right; margin: 0 0 1em 1em;"><img class="size-full wp-image-429" title="redirecting" src="http://www.napkyn.com/n/wp-content/uploads/2011/03/redirecting.jpg" alt="" width="188" height="200" /><br />
If your redirects look like this, you&#8217;re doing it wrong. Go for a seamless HTTP 301 redirect.</div>
<p>What you&#8217;ll need to do is make sure that every URL on your site still goes somewhere. The best way to do this is with an HTTP redirect &#8212; specifically, using the <strong>HTTP 301 &#8220;Moved Permanently&#8221;</strong> code. This is a message that is sent by your server to a browser, search engine or any other device that visits your site, and tells them that a page moved, and where it went. Other methods, such as meta refreshes and other HTTP redirects are not as effective in keeping search engine listings, so be sure to use this one whenever possible.</p>
<p>If at all possible, configure your server with a listing of all of your old URLs and their new locations. That way, specific product listings, articles or other pages aren&#8217;t lost. If you&#8217;re raking well in Google for selling blue widgets, don&#8217;t redirect your old blue widgets page to your homepage &#8212; point it to your <em>new</em> blue widgets page. This will make sure that your search rankings, incoming links, shopping feed listings and bookmarks are all preserved, and will help potential customers find what they&#8217;re looking for.</p>
<p>A new website almost always means a change in search traffic. This will help you minimize the risk of a natural search free-fall.</p>
<p><strong>3. Keep your customers in the loop</strong></p>
<p>If your business has tends to bring customers back for more, or you have prominent customer login or customer service  areas of your site, you want to be sure that you don&#8217;t alienate them with your new changes.</p>
<p>In customer service areas, inform customers early that the site will be re-launching soon. If you rely on customer involvement with your site, pull a Twitter and let them test the new interface with an option to switch back for now. If that&#8217;s not a viable option, provide linked messages to customers like this: &#8220;Looking for your order history? Our new site files orders right in your <span style="text-decoration: underline;">user profile</span>.&#8221;</p>
<p>This is relevant to my next point, preparing to measure the results. An increase in page views (relative to visits) isn&#8217;t always a good thing when you relaunch a site. Often it&#8217;s a sign of existing customers or visitors familiar with your site who get lost in your site. Visitors who are already familiar with your site may be looking for something in particular, and if it&#8217;s moved, they can become frustrated.</p>
<p><strong>4. Get ready to measure the switch</strong></p>
<p>If you followed item #1, then you&#8217;re making these changes for a reason. Don&#8217;t forget to close the loop, either &#8212; you need to define the metrics that will determine whether or not this change was a good one. <strong>How will you know that you&#8217;ve won? </strong>Make sure that you&#8217;re prepared to handle, and try to make predictions about how the flow of traffic.</p>
<p>Then, once your new site has been online for a while, you&#8217;ll be able to compare the data against the plan, and learn whether or not the changes you made had the intended impact.</p>
<p>The technical side to this involves making sure that you actually can measure the change with some confidence. If you&#8217;re making significant changes to the deployment of your web analytcs tool, you&#8217;ll want to be sure that you&#8217;re not comparing apples to oranges with this change. If you&#8217;re switching tools, try running them concurrently for a time to be sure that they&#8217;re on the same page.</p>
<p><strong>5. Develop a testing plan</strong></p>
<p>Even the brightest marketing minds don&#8217;t get everything right the first time. Your new website may be miles ahead of your old one, but without data on its performance it&#8217;s tough to be certain how it will fare. So, once your new site is launched, you&#8217;re not done.</p>
<p>When measuring the switch (item 4 on our checklist), you&#8217;ll probably notice a few areas that don&#8217;t do quite as well as they did before, or didn&#8217;t improve as much as the rest of the site. These may be individual products or product categories that perform differently, or specific traffic sources that react differently to your site.</p>
<p>Identifying the less-successful areas of your redesign early gives you an opportunity to ensure that you continue to make the proper revisions. Start testing areas of your redesign by using A/B or multivariate testing tools. If you had two competing layouts for a new page on your site, test both! Sometimes the results will confirm your intuition, other times they will surprise you.</p>
<p><strong>6. T</strong><strong>hink of everything </strong></p>
<p>Easier said than done to be sure, so that&#8217;s a joke. But if you&#8217;re tracking your business through high-level metrics, you&#8217;re better equipped to understand where major changes fit in and how to avoid missteps. As <a href="http://www.napkyn.com/analyst-program/">web analysts</a>, our job is to make the big numbers bigger, so when you&#8217;re clear about high-level business performance, the tactical stuff falls into place.</p>
<p>This list isn&#8217;t exhaustive, but following these guidelines can help you make informed decisions around your relaunch, and prevent you from throwing out the things that work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.napkyn.com/blog/2011/03/15/website-relaunch-checklist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

