Voici un tutoriel Looker Studio dĂ©crivant, Ă©tape par Ă©tape, comment sĂ©parer des valeurs dĂ©limitĂ©es par un caractère spĂ©cifique, comme des virgules par exemple, au sein d’une dimension ; et ainsi retrouver les mĂ©triques associĂ©es, ventilĂ©es par de rĂ©elles valeurs uniques.

Comment séparer des valeurs délimitées par des virgules en valeurs simples avec Looker Studio

Si votre logiciel de collecte de donnĂ©es n’offre pas de fonctionnalitĂ© pour gĂ©rer des listes et que vous ne souhaitez pas multiplier vos hits de tracking lorsqu’une dimension est multivaluĂ©e, cette astuce offre un solution pour le faire directement dans Data Studio sans prĂ©paration de donnĂ©es.

Attention, cette solution n’est pas parfaite, juste un quick win pour un jeu de donnĂ©es de taille faible.

Quelques exemples de cas d’usage pour ce sĂ©parateur de valeur, quelle que soit la nature de la source de donnĂ©es :

  • Blog : Tags d’articles
  • SEO : Liste de mots-clĂ©s ciblĂ©s et optimisĂ©s
  • E-commerce : Liste de moyens de paiement personnalisĂ©s dans un tunnel d’achat
  • Attribution : Succession de canaux de source de trafic pour une attribution linĂ©aire des conversions

Table des matières

Ingrédients

Pour cet article, j’ai appliquĂ© la mĂ©thode sur une dimension personnalisĂ©e collectant les tags d’articles sur Google Analytics, mais comme d’habitude, vous pouvez faire exactement la mĂŞme chose pour n’importe quel contexte collectant des donnĂ©es sous forme de valeurs dĂ©limitĂ©es par un sĂ©parateur.

Pour créer un example de graphique en barre, utilisons les éléments suivants :

  • Un fichier Google Sheets servant de source de donnĂ©es pour couper les listes de valeurs
  • Une combinaison de donnĂ©es pour mixer les donnĂ©es et mĂ©triques issues de Google Analytics (pages vues par tag d’articles), avec les source de donnĂ©es Google Sheets
  • Un graphique de type tableau avec barres pour visualiser nos donnĂ©es
  • Un champ calculĂ© pour notre dimension dĂ©coupant les chaĂ®nes en valeurs uniques
  • Un champ calculĂ© pour la mĂ©trique pour conserver les valeurs des lignes de donnĂ©es concernĂ©es


Nombre maximum de valeurs au sein de la dimension de liste

Pour commencer, nous avons besoin d’identifier le nombre maximum de valeurs enregistrĂ©es dans notre dimension d’origine.

La formule de champ calculé ci-dessous permet de renvoyer ce nombre. Vous pouvez la tester sur une période longue de vos données. Dans mon cas, le séparateur utilisé est la virgule. Vous pouvez adapter la formule selon votre séparateur spécifique.


Max number of tags
MAX(
     LENGTH(
         REGEXP_REPLACE(Article tags,"([^,])","")
     )
 )+1

Explication de la formule de champ calculé ci-dessus :
On retire tous les caractères qui ne correspondent pas à des virgules et on compte ce qui reste, en ajoutant 1 pour connaître le nombre maximum de valeurs.


Dans le cadre de mon jeu de donnĂ©es, la formule retourne 4. Je prends de la marge en considĂ©rant qu’il ne peut pas y avoir plus de 10 valeurs Ă  sĂ©parer dans les listes.


Source de données Google Sheets

Nous allons crĂ©er un simple fichier Google Sheets avec un seul onglet contenant une seule colonne « index » de 10 valeurs, de 1 Ă  10. Cela nous permettra de dĂ©couper nos valeurs : Au sein de Looker Studio, il n’est pas possible de crĂ©er une liste sinon grâce une source de donnĂ©es.

Puis, nous ajoutons l’onglet Google Sheets en tant que source de donnĂ©es du rapport Looker Studio.


Source de données Google sheets pour séparer les valeurs de la liste

Combinaison de données (Blended data)

Il est temps à présent de configurer la combinaison de données « BD for list dimension » comme décrit ci-dessous.

  • Première table Ă  gauche
    • Source de donnĂ©es : La source de donnĂ©es Google Sheets avec les index
    • Dimension : Index
  • Seconde table de droite
    • Source de donnĂ©es : Notre source de donnĂ©es principale, pour l’exemple Google Analytics
    • Dimensions : Article tags, Nb tags comme champ calculĂ© avec la formule indiquĂ©e ci-dessous
    • MĂ©trique : Pageviews
  • Jointure :
    • OpĂ©rateur de jointure : CroisĂ©e
    • Aucune clĂ© de jointure

Nb tags
LENGTH(REGEXP_REPLACE(Article tags,"[^,]",""))+1

Explication de la formule de champ calculĂ© : Cette formule retire tous les caractères, Ă  l’exception des virgules pour les compter en ajoutant un pour avoir le nombre de tags.


Combinaison de données (data blending) pour transformer des valeurs séparées avec un caractère par des valeurs uniques


Configuration du graphique

Enfin, on crée le graphique, un tableau :

  • Type de graphique : Tableau
  • Onglet « Configurer »
    • Source de donnĂ©es : Votre combinaison de donnĂ©es « BD for list dimension »
    • Dimension : Un champ calculĂ© au niveau du graphique, nommĂ© « Tag » en utilisant la formule ci-dessous
    • MĂ©trique : Un champ calculĂ© « Page views » avec la formule ci-dessous et une agrĂ©gation par dĂ©faut de somme (SUM)
    • TriĂ© par Page views (donc le nouveau champ calculĂ© de mĂ©trique) dĂ©croissant
  • Onglet « Style »
    • Afficher la mĂ©trique sous forme de barres

Graphique avec la liste des valeurs d'une dimension

Champ calculé à utiliser comme dimension de graphique

Tag
CASE 
 WHEN Nb tags >= Index AND Index = 1 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){1}'),",","")
 WHEN Nb tags >= Index AND Index = 2 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){2}'),",","")
 WHEN Nb tags >= Index AND Index = 3 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){3}'),",","")
 WHEN Nb tags >= Index AND Index = 4 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){4}'),",","")
 WHEN Nb tags >= Index AND Index = 5 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){5}'),",","")
 WHEN Nb tags >= Index AND Index = 6 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){6}'),",","")
 WHEN Nb tags >= Index AND Index = 7 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){7}'),",","")
 WHEN Nb tags >= Index AND Index = 8 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){8}'),",","")
 WHEN Nb tags >= Index AND Index = 9 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){9}'),",","")
 WHEN Nb tags >= Index AND Index = 10 THEN REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){10}'),",","")
 ELSE REPLACE(REGEXP_EXTRACT(Article tags,'(,?[^,]+){1}'),",","")
 END

Explications concernant la formule ci-dessus :
Garder en tête que les lignes de données sont répliquées 10 fois grâce à la jointure croisée de la combinaison de données.
On extrait chaque valeur de la chaĂ®ne avec les sĂ©parateurs, seulement si la liste contient assez de valeurs et uniquement pour l’index spĂ©cifique.

PS: Malheureusement, la fonction REGEXP_EXTRACT n’accepte que les expressions littĂ©rales (pas de possibilitĂ© d’injecter des valeurs dynamiques comme l’index pour simplifier la formule).


Champ calculé en tant que métrique du graphique

Page views
CASE 
 WHEN Nb tags >= Index THEN Pageviews
 ELSE 0
END

Explications de la formule ci-dessus:
Nous comptons le nombre de pages vues seulement si la liste contient suffisamment de valeurs. En croisant cette selection, avec la dimension indiquée plus haut, nous dupliquons la valeur de la métrique (statistique) pour chaque valeur unique séparée.


Petit tour de la configuration complète

Enfin, faisons une petite vérification de toute la configuration nous permettant de produire un graphique, basé sur une dimension multi-valuée, séparée de virgules, transformées grâce à ce tutoriel en une réelle liste de valeurs uniques de dimensions. Voilà.