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

<channel>
	<title>juust ~ php oddities &#187; namespaces</title>
	<atom:link href="http://www.juust.org/index.php/tag/namespaces/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juust.org</link>
	<description>Unordered list of one element</description>
	<lastBuildDate>Wed, 28 Jul 2010 14:26:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ga api sample : get pageviews</title>
		<link>http://www.juust.org/index.php/google-analytics-api-sample-get-pageviews/2009/05/</link>
		<comments>http://www.juust.org/index.php/google-analytics-api-sample-get-pageviews/2009/05/#comments</comments>
		<pubDate>Wed, 13 May 2009 14:58:01 +0000</pubDate>
		<dc:creator>juust</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[ga]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[simplexml]]></category>

		<guid isPermaLink="false">http://www.juust.org/?p=504</guid>
		<description><![CDATA[I was going to put that online : how to get the pageviews out of the google analytics api, using simplexml and php. Google use three namespaces in the output file which make it less easy accessible, so here&#8217;s a quick sample of how to get your sites pageviews out of it :



//ids &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>I was going to put that online : how to get the pageviews out of the google analytics api, using simplexml and php. Google use three namespaces in the output file which make it less easy accessible, so here&#8217;s a quick sample of how to get your sites pageviews out of it :</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="co1">//ids &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = site identifier (from the site data feed)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//metrics &nbsp; &nbsp; = what i want to see</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//start-date </span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//end-date </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$feedUri</span> <span class="sy0">=</span> <span class="st0">&quot;https://www.google.com/analytics/feeds/data?ids=ga:10516419&amp;metrics=ga:pageviews&amp;start-date=2009-04-01&amp;end-date=2009-05-01&quot;</span><span class="sy0">;</span> &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$curl</span> <span class="sy0">=</span> curl_init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;curl_setopt<span class="br0">&#40;</span><span class="re1">$curl</span><span class="sy0">,</span> CURLOPT_URL<span class="sy0">,</span> <span class="re1">$feedUri</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;curl_setopt<span class="br0">&#40;</span><span class="re1">$curl</span><span class="sy0">,</span> CURLOPT_CONNECTTIMEOUT<span class="sy0">,</span> <span class="nu0">3</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;curl_setopt<span class="br0">&#40;</span><span class="re1">$curl</span><span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="re1">$headers</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;Authorization: GoogleLogin auth=&quot;</span><span class="sy0">.</span><span class="re1">$Authtoken</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//for authtoken : see previous post</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;curl_setopt<span class="br0">&#40;</span><span class="re1">$curl</span><span class="sy0">,</span> CURLOPT_HTTPHEADER<span class="sy0">,</span> <span class="re1">$headers</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;curl_setopt<span class="br0">&#40;</span><span class="re1">$curl</span><span class="sy0">,</span> CURLOPT_SSL_VERIFYHOST<span class="sy0">,</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;curl_setopt<span class="br0">&#40;</span><span class="re1">$curl</span><span class="sy0">,</span> CURLOPT_SSL_VERIFYPEER<span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;curl_setopt<span class="br0">&#40;</span><span class="re1">$curl</span><span class="sy0">,</span> CURLOPT_VERBOSE<span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//get the string containing the xml file</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$gA</span> <span class="sy0">=</span> curl_exec<span class="br0">&#40;</span><span class="re1">$curl</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>the feed has three namespaces (atom, opensearch and dxp/analytics), a simple way is accessing the ENTRY tags (from the Atom namespace), in that tag is one DXP: line and that has the answer to the question.</p>
<p>&lt;dxp:metric confidenceInterval=&#8217;0.0&#8242; name=&#8217;ga:pageviews&#8217; type=&#8217;integer&#8217; value=&#8217;755&#8242;/&gt;</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="co1">//load the string into a simple xml object</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$feed</span> <span class="sy0">=</span> simplexml_load_string<span class="br0">&#40;</span><span class="re1">$gA</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//take the atom namespace</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$children</span> <span class="sy0">=</span> &nbsp;<span class="re1">$feed</span><span class="sy0">-&gt;</span><span class="me1">children</span><span class="br0">&#40;</span><span class="st0">&#39;http://www.w3.org/2005/Atom&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//take the entry tags</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$parts</span> <span class="sy0">=</span> <span class="re1">$children</span><span class="sy0">-&gt;</span><span class="me1">entry</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re1">$parts</span> <span class="kw1">as</span> <span class="re1">$entry</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//from the entry tag,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//access the dxp namespace</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$dxp</span> <span class="sy0">=</span> <span class="br0">&#40;</span>object<span class="br0">&#41;</span> <span class="re1">$entry</span><span class="sy0">-&gt;</span><span class="me1">children</span><span class="br0">&#40;</span><span class="st0">&#39;http://schemas.google.com/analytics/2009&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//METRIC contains the answer to the question</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//grab from the tag METRIC the attribute VALUE</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> &nbsp; <span class="br0">&#40;</span>string<span class="br0">&#41;</span> <span class="re1">$dxp</span><span class="sy0">-&gt;</span><span class="me1">metric</span><span class="sy0">-&gt;</span><span class="me1">attributes</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">value</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Important is using the (string) typecast, normally simplexml returns a simplexml object, when you force a string type, it gives the actual metric ga:pageview <strong>value</strong> attribute as number.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juust.org/index.php/google-analytics-api-sample-get-pageviews/2009/05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
