[PHP/SimplXML] Google Analytics XML uitlezen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Ik ben bezig om te kijken of het mogelijk is om een de data van google analytics om te vormen tot een aantal simpele arrays met relevante data.

Ik heb echter nogal moeite met de xml die ik krijg van google.
Ik heb een foreach geplaatst in mijn php code waardoor ik 47 keer ongeveer zulke blokjes krijg:

XML:
1
2
3
4
5
SimpleXMLElement Object ( [@attributes] => Array ( [id] => Title ) [CompareStateHelp] => Vergelijk rapportgegevens met algemene prestatie en vermeld rapportgegevens bij het berekenen van de siteprestatie (% van sitetotaal of sitegemiddelde). [ShowDateControl] => true [PrimaryDateRange] => 7 augustus 2008 - 6 september 2008 [Compare] => false [Sampled] => false [CompareStateMsg] => Site [Name] => Dashboard [Detail] => SimpleXMLElement Object ( ) [CompareMsg] => Vergelijken met: [ProfileName] => www.site.be [ShowCompare] => true [DetailSeparator] => | ) 


--------------------------------------------
SimpleXMLElement Object ( [@attributes] => Array ( [id] => Graph ) [ShowHover] => true [Format] => NORMAL [XAxisTitle] => Day [Compare] => false [XAxisLabel] => Array ( [0] => 11 augustus 2008 [1] => 18 augustus 2008 [2] => 25 augustus 2008 [3] => 1 september 2008 ) [HoverType] => primary_compare [SelectedSerie] => Array ( [0] => primary [1] => compare ) [Serie] => SimpleXMLElement Object ( [SelectionStartIndex] => 0 [SelectionEndIndex] => 30 [Style] => SimpleXMLElement Object ( [PointShape] => CIRCLE [PointRadius] => 9 [FillColor] => 30668 [FillAlpha] => 10 [LineThickness] => 4 [ActiveColor] => 30668 [InactiveColor] => 11654895 ) [Label] => Bezoeken [Id] => primary [YLabel] => Array ( [0] => 20 [1] => 40 ) [ValueCategory] => visits [Point] => Array ( [0] => SimpleXMLElement Object ( [Value] => 13 [Label] => 7 augustus 2008 ) [1] => SimpleXMLElement Object ( [Value] => 18 [Label] => 8 augustus 2008 ) [2] => SimpleXMLElement Object ( [Value] => 7 [Label] => 9 augustus 2008 ) [3] => SimpleXMLElement Object ( [Value] => 17 [Label] => 10 augustus 2008 ) [4] => SimpleXMLElement Object ( [Value] => 14 [Label] => 11 augustus 2008 ) [5] => SimpleXMLElement Object ( [Value] => 11


code hiervoor was gewoon:

PHP:
1
2
3
4
5
6
7
8
9
10
11
foreach ($oSimpleXML->Report[0] as $reportData) {
                print_r ( $reportData);
                echo "<br>";
                //Date
                (empty($this->dateRange)) ? $this->dateRange = $reportData -> PrimaryDateRange : '';
                //Profile Name
                (empty($this->profileName)) ? $this->profileName = $reportData -> ProfileName : '';
                
                
                echo "<br/><br/>--------------------------------------------<br/><br/>";
            }


Zoals je ziet probeer ik binnen de foreach wat data uit de xml te smokkelen, het werkt wel maar echt praktisch is het niet. Op 1 of andere manier wil het niet lukken om dit te doen buiten de foreach:

echo $oSimpleXML->Report[0][$i] -> PrimaryDateRange;


Heeft iemand ideeen hoe ik toch snel een mooie array kan krijgen waaruit ik alle data kan halen? Want zoals ik het nu doe in de foreach lijkt me niet echt de manier.


Verder kwam ik nog een project tegen om analytics data te verkrijgen:
klik
Het nadeel is echter dat dit volledig steunt op het cake framework, ik was begonnen met het ontrafelen maar daar is niet echt een beginnen aan door de vele afhankelijkheden van alle classes binnen het framework...

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Misschien handig om een stukje voorbeeld XML te posten? Ik denk dat er maar weinigen bekend zijn met de exacte inhoud van een XML bestand van Google Analytics.

Wellicht is het handiger om de file uit te lezen met Xpath (ook in SimpleXML) maar dat is op deze manier giswerk.

Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Noork schreef op maandag 08 september 2008 @ 10:27:
Misschien handig om een stukje voorbeeld XML te posten? Ik denk dat er maar weinigen bekend zijn met de exacte inhoud van een XML bestand van Google Analytics.

Wellicht is het handiger om de file uit te lezen met Xpath (ook in SimpleXML) maar dat is op deze manier giswerk.
Even een stukje gecopypaste:

XML:
1
<?xml version="1.0" ?><AnalyticsReport><Report name="Dashboard"><Title id="Title"><CompareStateHelp>Vergelijk rapportgegevens met algemene prestatie en vermeld rapportgegevens bij het berekenen van de siteprestatie (% van sitetotaal of sitegemiddelde).</CompareStateHelp><ShowDateControl>true</ShowDateControl><PrimaryDateRange>8 augustus 2008 - 7 september 2008</PrimaryDateRange><Compare>false</Compare><Sampled>false</Sampled><CompareStateMsg>Site</CompareStateMsg><Name>Dashboard</Name><Detail></Detail><CompareMsg>Vergelijken met:</CompareMsg><ProfileName>www.site.be</ProfileName><ShowCompare>true</ShowCompare><DetailSeparator> | </DetailSeparator></Title><Graph id="Graph"><ShowHover>true</ShowHover><Format>NORMAL</Format><XAxisTitle>Day</XAxisTitle><Compare>false</Compare><XAxisLabel>11 augustus 2008</XAxisLabel><XAxisLabel>18 augustus 2008</XAxisLabel><XAxisLabel>25 augustus 2008</XAxisLabel><XAxisLabel>1 september 2008</XAxisLabel><HoverType>primary_compare</HoverType><SelectedSerie>primary</SelectedSerie><SelectedSerie>compare</SelectedSerie><Serie><SelectionStartIndex>0</SelectionStartIndex><SelectionEndIndex>30</SelectionEndIndex><Style><PointShape>CIRCLE</PointShape><PointRadius>9</PointRadius><FillColor>30668</FillColor><FillAlpha>10</FillAlpha><LineThickness>4</LineThickness><ActiveColor>30668</ActiveColor><InactiveColor>11654895</InactiveColor></Style><Label>Bezoeken</Label><Id>primary</Id><YLabel>20</YLabel><YLabel>40</YLabel><ValueCategory>visits</ValueCategory><Point><Value>18</Value><Label>8 augustus 2008</Label></Point><Point><Value>7</Value><Label>9 augustus 2008</Label></Point><Point><Value>17</Value><Label>10 augustus 2008</Label></Point><Point><Value>14</Value><Label>11 augustus 2008</Label></Point><Point><Value>11</Value><Label>12 augustus 2008</Label></Point><Point><Value>15</Value><Label>13 augustus 2008</Label></Point><Point><Value>17</Value><Label>14 augustus 2008</Label></Point><Point><Value>10</Value><Label>15 augustus 2008</Label></Point><Point><Value>9</Value><Label>16 augustus 2008</Label></Point><Point><Value>11</Value><Label>17 augustus 2008</Label></Point><Point><Value>11</Value><Label>18 augustus 2008</Label></Point><Point><Value>19</Value><Label>19 augustus 2008</Label></Point><Point><Value>17</Value><Label>20 augustus 2008</Label></Point><Point><Value>13</Value><Label>21 augustus 2008</Label></Point><Point><Value>12</Value><Label>22 augustus 2008</Label></Point><Point><Value>14</Value><Label>23 augustus 2008</Label></Point><Point><Value>7</Value><Label>24 augustus 2008</Label></Point><Point><Value>20</Value><Label>25 augustus 2008</Label></Point><Point><Value>19</Value><Label>26 augustus 2008</Label></Point><Point><Value>15</Value><Label>27 augustus 2008</Label></Point><Point><Value>12</Value><Label>28 augustus 2008</Label></Point><Point><Value>19</Value><Label>29 augustus 2008</Label></Point><Point><Value>9</Value><Label>30 augustus 2008</Label></Point><Point><Value>12</Value><Label>31 augustus 2008</Label></Point><Point><Value>22</Value><Label>1 september 2008</Label></Point><Point><Value>35</Value><Label>2 september 2008</Label></Point><Point><Value>21</Value><Label>3 september 2008</Label></Point><Point><Value>22</Value><Label>4 september 2008</Label></Point><Point>


excuses voor de layout maar onder elkaar wordt het ook niks...

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Sjoerd schreef op maandag 08 september 2008 @ 10:41:
[...]
excuses voor de layout maar onder elkaar wordt het ook niks...
Het is idd niet handig. Sowieso is deze XML niet valide, dus kan er niks mee.

Welke gegevens wil je precies hebben? Lijkt me dat je van alle data de waarden wilt ophalen, dus
AnalyticsReport->Report->Graph->Serie-> [alle Points]??

[ Voor 22% gewijzigd door Noork op 08-09-2008 10:53 ]


Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Noork schreef op maandag 08 september 2008 @ 10:46:
[...]

Het is idd niet handig. Sowieso is deze XML niet valide, dus kan er niks mee.

Welke gegevens wil je precies hebben? Lijkt me dat je van alle data de waarden wilt ophalen, dus
AnalyticsReport->Report->Graph->Serie-> [alle Points]??
Dat klopt inderdaad, en dan verder nog wat gegevens als site naam, datum, totale aantallen.

(volgens mij doet Google het expres :( )

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Sjoerd schreef op maandag 08 september 2008 @ 10:57:
[...]

Dat klopt inderdaad, en dan verder nog wat gegevens als site naam, datum, totale aantallen.

(volgens mij doet Google het expres :( )
Okay, probleem opgelost dus. Lees eenvoudigweg het bovenstaande pad op de correcte manier uit.

Google doet het niet expres, jij hebt de code niet goed gecopy-pasted ;)
Pagina: 1