Générer des reporting analytics avec R – Partie 2


Maintenant que nous avons créé notre fichier « API » dans la première partie, nous allons procéder au développement du script de génération de reporting.

Pour que tout fonctionne correctement, exécutez le code de l’API afin de procéder à une connexion oAuth avec R. Pour l’exécuter, cochez la checkbox « Source on Save » puis faites CTRL+S.

Execution d'un code R

Première étape :

Installez grâce à la commande, les librairies ci-dessous : install.packages(« nom_du_package »), puis appelez-les.
require(xlsx)
require(dplyr)
require(XML)

Installez le package « rJava »

Créez-vous un fichier (du nom que vous voulez). Ce fichier doit appeler le fichier « API » que vous venez d’écrire ci-dessus.  Pour cela rien de plus simple, c’est comme dans les fichiers .NET, PHP ou autre :

source(« ./chemin_de_votre_fichier/api-analytics.R »)

Comme vous le constatez dans la fonction R que je vous ai donné, on nous réclame une date de début et une date de fin. Injectez donc les données dans deux variables bien distinctes comme ci-dessous :

startDate <- "2014-01-01"
endDate <- "2014-12-31"

##fichier de destination
fileName <- "reporting"

Ensuite, il vous faut votre « id » analytics. Pour cela, rendez-vous sur Google Analytics, sur la page concernant votre site. L’id de votre site qui sera utilisé ici correspond au « XXXXXXX » ci-dessous. Copiez collez-le dans une variable dans votre fichier R.

Url pour le reporing analytics en R
Url pour le reporing analytics en R

idGA <- « XXXXXXX »

J’ai ensuite créé une fonction qui permet de convertir le chiffre du mois en lettres.

findMonth <- function(numberOfMonth)
{
if(numberOfMonth == "01"){ return ("janv") }
else if (numberOfMonth == "02") { return ("fev") }
else if (numberOfMonth == "03") { return ("mars") }
else if (numberOfMonth == "04") { return ("avr") }
else if (numberOfMonth == "05") { return ("mai") }
else if (numberOfMonth == "06") { return ("juin") }
else if (numberOfMonth == "07") { return ("juil") }
else if (numberOfMonth == "08") { return ("aout") }
else if (numberOfMonth == "09") { return ("sept") }
else if (numberOfMonth == "10") { return ("oct") }
else if (numberOfMonth == "11") { return ("nov") }
else if (numberOfMonth == "12") { return ("dec") }
}

Deuxième étape :

Appelez votre fonction R créée dans le fichier api-analytics.R.

« DF_GA_DesktopTablet » est un dataframe où nous allons assigner le résultat de la fonction présente dans l’API.

DF_GA_DesktopTablet <- analyticsChannelDesktopTabletbyChannel(idGA,startDate,endDate)

On passe ainsi la date de début, la date de fin de traitement et l’id Analytics du site.

Troisième étape :

# Créer un objet appelé Workbook pour stocker les informations. C'est un fichier Excel en R.
outwb <- createWorkbook()

# Définir les cellules de l'objet
csSheetTitle <- CellStyle(outwb) + Font(outwb, heightInPoints=10, isBold=TRUE, color="white") + Fill(foregroundColor="lightblue", backgroundColor="lightblue", pattern="SOLID_FOREGROUND") + Alignment(h="ALIGN_CENTER")

csSheetDate <- CellStyle(outwb) + Font(outwb, color="red") + Alignment(h="ALIGN_CENTER")
# Styles pour les noms de lignes/colonnes
STYLE1 <- CellStyle(outwb) + Font(outwb, isBold=TRUE) + Alignment(wrapText=TRUE, horizontal="ALIGN_CENTER")
STYLE_NUMBER <- CellStyle(outwb, dataFormat=DataFormat("## ### ##0")) # ... for ratio results
STYLE_PERCENT <- CellStyle(outwb, dataFormat=DataFormat("0%")) # ... for percentage results
STYLE_DATE <- CellStyle(outwb, dataFormat=DataFormat("MMM, YYYY")) + Alignment(h="ALIGN_CENTER") + Fill(foregroundColor="lightblue", backgroundColor="lightblue", pattern="SOLID_FOREGROUND")

cs <- CellStyle(outwb) + Font(outwb, heightInPoints=20, isBold=TRUE, isItalic=TRUE,
name="Courier New", color="orange") + Fill(backgroundColor="lavender", foregroundColor="lavender", pattern="SOLID_FOREGROUND") + Alignment(h="ALIGN_RIGHT")

Quatrième étape : 

Créez des filtres pour les différents canaux :

DF_GA_OrganicSearchDesktopTablet <- filter(DF_GA_DesktopTablet,channelGrouping=="Organic Search")
DF_GA_OrganicSearchDesktopTabletSessions <- t(select(DF_GA_OrganicSearchDesktopTablet,sessions))
DF_GA_OrganicSearchDesktopTabletPageViews <- t(select(DF_GA_OrganicSearchDesktopTablet,pageviews))

Ces trois dataframes vont permettre de récupérer les informations relatives au trafic SEO sur le desktop et la tablette. Les deux suivants, récupèrent les sessions et les pages vues pour le trafic SEO.

DF_GA_Date <- select(DF_GA_DesktopTablet,month,year) %>%
group_by(year, month) %>%
mutate(date= paste(findMonth(month),year,sep="-")) %>%
#mutate(date= paste(" ",date," ",sep="")) %>%
distinct(date) %>%
arrange(date)
DF_GA_Date <- t(DF_GA_Date[,3])

# Création d'une feuille pour le document excel
sheet <- createSheet(outwb, sheetName = "Trafic Desktop & Tablette")

rows <- createRow(sheet,rowIndex=1)
sheetTitle <- createCell(rows,colIndex=1)
setCellValue(sheetTitle[[1,1]], "Source GA")

rows <- createRow(sheet,rowIndex=4)
sheetTitle <- createCell(rows,colIndex=1)
setCellValue(sheetTitle[[1,1]], "Organique")

listeDate <- list()

for(i in 1:length(DF_GA_Date)){ listeDate[[as.character(i)]] = csSheetTitle }

addDataFrame(DF_GA_Date, sheet, col.names=FALSE, row.names=FALSE, startRow=2, startColumn=3, colnamesStyle = csSheetDate, colStyle=listeDate )

addDataFrame(DF_GA_OrganicSearchDesktopTabletSessions, sheet, col.names=FALSE, row.names=FALSE, startRow=4, startColumn=3, colStyle = STYLE_NUMBER)

Cinquième étape :

Il ne reste plus qu’à sauvegarder vos données dans un fichier excel.

saveWorkbook(outwb, paste("./path/",fileName,".xlsx",sep=""))

Normalement vous devez avoir un fichier qui s’est créé et qui contient les informations souhaitées.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *