Dans cet article, je vais parler de la façon dont j'ai amené des statistiques dans l'ensemble du contexte en un seul endroit à l'aide de BigQuery et Data Studio
J'avais besoin de visualiser des données sur toutes les sources de trafic.
Pour cette tâche, j'utilise Data Studio. Google Ads y est tiré de manière excellente, mais avec Yandex Direct, tout est plus compliqué.
J'ai choisi pour moi la méthode semi-manuelle des statistiques statistiques: recevoir et envoyer des statistiques depuis mon ordinateur.
Je reçois quotidiennement de la statique dans différentes sections d'un DataFrame.

Et c'est génial car pandas possède une bibliothèque pandas_gbq qui peut envoyer des DataFrames à BigQuery.
Quelles statistiques stocker dans BigQuery
Pour commencer, décidons quelles sections des statistiques nous enverrons.
Puisque nous pouvons stocker beaucoup d'informations dans BigQuery, j'ai jeté moi-même des statistiques en termes de jours.
Nous devons également prendre en compte le fait que nous devons obtenir des statistiques pendant au moins un mois pour la réécriture, car les systèmes publicitaires mettent à jour les anciennes statistiques en raison d'un clic.
Par conséquent, pour l'instant, je n'utilise pas de statistiques en termes de clés, car elles sont souvent redondantes.
Je vais tout dire sur l'exemple des statistiques quotidiennes dans le contexte de la République du Kazakhstan. (colonnes: date et PK)
Ensuite, nous parlerons de la façon de modifier le DataFrame pour qu'il fonctionne.
Modification DataFrame
Problème 1
Pour certains CR, nous obtiendrons des champs vides dans les facteurs de comportement et les conversions

Pour contourner ce problème, vous devez remplacer les inconvénients par "0".
f['Conversions'].replace(['--'],[0],inplace=True) f['CostPerConversion'].replace(['--'],[0],inplace=True) f['ConversionRate'].replace(['--'],[0],inplace=True) f['AvgPageviews'].replace(['--'],[0],inplace=True) f['BounceRate'].replace(['--'],[0],inplace=True)
Et attribuez un type de données numérique.
f[["Conversions","CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]]=f[["Conversions","CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]].apply(pd.to_numeric)
Problème 2
Ajoutez une colonne indexée séparément. Si nous envoyons un tel DataFrame ou regardons le type de données avec dtipe, nous voyons qu'il n'y a pas de colonne avec des dates.
Pour résoudre ce problème, créez une colonne qui sera égale à la colonne indexée.
f['Date']=f.index
Obtenez le prochain DataFrame
Envoi d'un DataFrame à BigQuery
pandas_gbq.to_gbq(f,' .',project_id=' ',if_exists='replace')
Nous indiquons le nom du DataFrame, le nom de l'ensemble de données, le nom du fichier (il n'existe peut-être pas encore), le nom du projet et comment le fichier sera enregistré (dans notre cas, le fichier sera complètement réécrit).
Nous obtenons ce qui suit dans BigQuery:

Il ne reste plus qu'à visualiser les données dans DataStudio. Code de fin:
f['Date']=f.index f['Conversions'].replace(['--'],[0],inplace=True) f['CostPerConversion'].replace(['--'],[0],inplace=True) f['ConversionRate'].replace(['--'],[0],inplace=True) f['AvgPageviews'].replace(['--'],[0],inplace=True) f['BounceRate'].replace(['--'],[0],inplace=True) f[["Conversions", "CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]] = f[["Conversions", "CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]].apply(pd.to_numeric) pandas_gbq.to_gbq(f, 'YD_Days.my_client_rk', project_id='my_project',if_exists='replace')
Merci de votre attention!