En este artículo, hablaré sobre cómo llevé estadísticas en todo el contexto en un solo lugar usando BigQuery y Data Studio
Tenía la necesidad de visualizar datos en todas las fuentes de tráfico.
Para esta tarea, uso Data Studio. Google Ads se está llevando allí de una manera excelente, pero con Yandex Direct todo es más complicado.
Elegí el método semi-manual de estadísticas estadísticas para mí: recibir y enviar estadísticas desde mi computadora.
Recibo estadísticas diariamente en varias secciones en un DataFrame.

Y esto es genial porque pandas tiene una biblioteca pandas_gbq que puede enviar DataFrames a BigQuery.
Qué estadísticas almacenar en BigQuery
Para empezar, decidamos qué secciones de las estadísticas enviaremos.
Como podemos almacenar mucha información en BigQuery, arrojé estadísticas para mí en términos de días.
También debemos tener en cuenta el hecho de que necesitamos obtener estadísticas durante al menos un mes para la reescritura, ya que los sistemas publicitarios actualizan las estadísticas antiguas debido a un clic.
Por lo tanto, por el momento, no uso estadísticas en términos de claves para mí, ya que a menudo es redundante.
Diré todo sobre el ejemplo de las estadísticas diarias en el contexto de la República de Kazajstán. (columnas: fecha y PK)
A continuación, hablaremos sobre cómo modificar el DataFrame para que funcione.
Marco de datos de modificación
Problema 1
Para algunos RC, obtendremos campos vacíos en factores de comportamiento y conversiones

Para solucionar este problema, debe reemplazar los contras por "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)
Y asigne un tipo de datos numéricos.
f[["Conversions","CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]]=f[["Conversions","CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]].apply(pd.to_numeric)
Problema 2
Agregue una columna indexada por separado. Si enviamos tal DataFrame o miramos el tipo de datos con dtipe, vemos que no hay una columna con fechas.
Para solucionar esto, cree una columna que sea igual a la columna indexada.
f['Date']=f.index
Obtenga el próximo DataFrame
Enviar un DataFrame a BigQuery
pandas_gbq.to_gbq(f,' .',project_id=' ',if_exists='replace')
Indicamos el nombre del DataFrame, el nombre del conjunto de datos, el nombre del archivo (puede que aún no exista), el nombre del proyecto y cómo se grabará el archivo (en nuestro caso, el archivo se reescribirá por completo).
Obtenemos lo siguiente en BigQuery:

Solo queda visualizar los datos en DataStudio. Código final:
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')
Gracias por su atencion!