自分の手でYandexDirect統計を視覚化。APIからデータスタジオへ

広告の専門家として、私は常にクライアントの世話をする必要があります。DataStudioはこれを支援してくれます。

ただし、広告の専門家が分析予算を割り当てることはめったにないため、自分で行う必要があります。



DataStudioでYandexDirectを視覚化するために必要なこと:



  1. アカウントからトークンを取得します(これについては、Yandex.Directヘルプを参照してください)
  2. PythonでYandexDirectサーバーにリクエストを書き込む
  3. Pandasデータフレームの統計の合計
  4. Google BigQueryにデータを送信する
  5. Google BigQueryのデータに基づいてDataStudioで視覚化を構築する






Yandex Directサーバーにリクエストを書き込み、データをPandasデータフレームに追加します





以前はリクエストをいじってから、データを編集して送信できるようにしていました。微調整が必​​要な場合は試すことができます(これについては以前にhabr.com/ru/post/445734で説明しました



。それ以外の場合は、はるかに簡単な方法があります-私のpythonパッケージyadirstat。(それに関するレビューhabr.com/ru/post/512902)。使用する場合は、トークン、ログイン、日付を入力すると、何も変更する必要のない既製のデータフレームが得られます。



コードは次のようになります。



from yadirstat import yadirstat
x=yadirstat.yadirstat.campaign('FFFFFfffffFFFFggggGGGgg', 'client123123','2020-05-10','2020-07-15')
print(x)




Google BigQueryにデータを送信する



これは、DataStudioでの後続の視覚化のためにデータを収集する最も明白な方法です。これらはペアで完全に機能する



ためです。送信には、パッケージ「pandas_gbq」を使用します

。コードは次のようになります。

import pandas_gbq
pandas_gbq.to_gbq(x, 'YD_Days.test', project_id='red-abstraction-99999999',if_exists='replace', progress_bar=None)




データが上書きされるのはなぜですか?総局の統計は時間の経過とともに調整される可能性があり、単に新しい用語を追加すると、統計に不一致が生じます。



それでは、情報がBigQueryに送信されたかどうかを確認しましょう。すべてがうまくいけば、それらのタイプのフィールドのそのようなセットがあります







Google BigQueryのデータに基づいてDataStudioで視覚化を構築する





これを行うには、Big Queryでクエリをすぐに作成して、すべてのデータを取得できます。

「クエリをテーブルに送信」を押し、SELECTの後に「*」を追加して制限を削除します。クエリは次のようになります:“ SELECT * FROM` red-abstraction-239999.YD_Days.test`”



DataStudioでGoogleBigQueryに接続する









ソース





を変更すると、次のフィールドが表示されます。正しく集計するには、次のフィールドを変更する必要があります。



  • AvgCpc
  • 変換速度
  • CostPerConversion
  • センター




なぜこれが行われるのですか?

次のデータを含む2行がある場合、例としてCPCの使用を検討してみましょう

  • 100クリック-クリックあたりのコスト100ルーブル-コスト10000
  • 2クリック-クリックのコスト-10ルーブル-20ルーブルのコスト


通常の平均では、CPCは2行になっています55

したがって、正しいCPCを取得するには、すべてのコストをすべてのクリックで割ります。この場合、CPCは98.2になります。



これらのフィールドを非表示にして、アナログを追加するだけです。



  • CPC = SUM(コスト)/ SUM(クリック)
  • CTR = SUM(クリック数)/ SUM(インプレッション数)* 100
  • %コンバージョン= SUM(コンバージョン)/ SUM(クリック)* 100
  • 変換コスト= SUM(コスト)/ SUM(変換)




「AvgPageviews」列はまったく使用していません。Yandex



はいくつかの追加データに基づいて異なる統計を使用するため、バウンス率は非常に複雑な列です。

要するに、私は次の式を使用します。これにより、Yandexが示すものからの最小偏差が得られます。

%バウンス率= SUM(Bounce_clicks)/(SUM(クリック)/ 100)。

ここで、Bounce_clicksは、各行でバウンスされたクリックの数です。

ただし、この質問はこの記事の範囲を超えています:)




この段階では、次の一連のフィールドが表示されます。







視覚化



クライアントごとに、一般情報とキーに関する情報の2つのページを作成します。



最初のページから始めましょう-一般的な情報

ここに私は投稿します:



  • 日ごとの費用でスケジュール
  • 日付別の統計を含む表
  • キャンペーン別の統計の表
  • 昨日の統計(クリック数、コスト、クリックあたりのコスト)を含むダッシュボード




まず、ユーザーが自分で日付を選択できるように、隅に日付範囲を配置します。



次に、コストを含むスケジュールを追加します。



次の設定を設定します。



このようなグラフを取得





する日付のあるテーブルの場合は、次の設定を行います。



キャンペーンのあるテーブルの場合は、[日付]パラメーターをキャンペーンの名前に変更します



。ダッシュボードでは、要約を使用します。その結果





、統計を含む次のページが表示されます。





キーワードの統計を取得します。





すべてが同じですが、リクエストは次のようになります。



import pandas_gbq

from yadirstat import yadirstat

x = yadirstat.yadirstat.criteria('AgAAAAI',client-12247235,'2020-05-10','2020-07-15')
print(x)

pandas_gbq.to_gbq(x, 'YD_criteria.test', project_id='red-abstraction-21239254613',if_exists='replace', progress_bar=None)



All Articles