GA4(Google Analytics4)のAPIの使い方を調査したのでここにメモします。
今回は、ディメンションとメトリクス情報をまとめてみました。
Google Analytics Data API のディメンションとメトリクス
Dimensions
Dimensions 情報の一部は以下の通りです。
API名 | UI名 | 説明 |
achievementId | Achievement ID | イベントのゲーム内の実績 ID / イベントパラメータ「achievement_id」によって設定 |
adFormat | Ad format | 広告の見た目と配置場所について説明 / 一般的な形式は「インタースティシャル」「バナー」「リワード」「ネイティブ アドバンス」など |
adSourceName | Ad source | 広告を配信したソース ネットワーク / 一般的なソースには「AdMob Network」「Liftoff」「Facebook Audience Network」「Mediated house ads」など |
adUnitName | Ad unit | この広告ユニットを説明するために選択した名前 / 広告ユニットは、ユーザーに広告を表示するためにアプリ内に配置するコンテナ |
appVersion | App version | アプリの versionName (Android) または短いバンドル バージョン (iOS) |
audienceId | Audience ID | オーディエンスの数値識別子 / ユーザーはレポートの日付範囲中にそのユーザーが属していた対象ユーザー別にレポートされる。 / 現在のユーザーの行動は、レポート内の過去の視聴者メンバーシップには影響しない。 |
audienceName | Audience name | 視聴者の名前 / ユーザーは、レポートの日付範囲中にそのユーザーが属していた対象ユーザー別にレポートされます。現在のユーザーの行動は、レポート内の過去の視聴者メンバーシップには影響しない。 |
brandingInterest | Interests | ショッピング ファネルの上位にあるユーザーが示す関心 / ユーザーは複数のインタレスト カテゴリでカウント |
browser | Browser | Web サイトの表示に使用されるブラウザ |
campaignId | Campaign ID | マーケティング キャンペーンの識別子 / コンバージョン イベントの場合にのみ存在します。Google 広告キャンペーン、手動キャンペーン、その他のキャンペーンが含まれる |
campaignName | Campaign | マーケティング キャンペーンの名前 / コンバージョン イベントの場合にのみ存在 / Google 広告キャンペーン、手動キャンペーン、その他のキャンペーンが含まれる。 |
character | Character | イベント用のゲームのプレイヤー キャラクター / イベントパラメータ「character」によって設定 |
city | City | ユーザーアクティビティが発生した都市 |
cityId | City ID | IP アドレスから派生した、ユーザー アクティビティの発信元の都市の地理 ID |
cohort | Cohort | リクエスト内のコホートの名前 / コホートとは、連続した数日間に Web サイトまたはアプリの使用を開始したユーザーのセットです。リクエストでコホート名が指定されていない場合、コホートにはゼロから始まるインデックス (cohort_0、cohort_1 など) が付けられる。 |
cohortNthDay | Daily cohort | コホート内のユーザーの firstSessionDate を基準とした日のオフセット / たとえば、開始日と終了日が 2020-03-01 のコホートが選択された場合、日付が 2020-03-02 の場合、cohortNthDay は 0001 になる。 |
cohortNthMonth | Monthly cohort | コホート内のユーザーの firstSessionDate を基準とした月のオフセット / 月の境界はカレンダーの月の境界と一致します。たとえば、開始日と終了日が 2020 年 3 月のコホートが選択された場合、2020 年 4 月の任意の日付では、cohortNthMonth は 0001 になる。 |
cohortNthWeek | Weekly cohort | コホート内のユーザーの firstSessionDate を基準とした週のオフセット。週は日曜日に始まり土曜日に終わります。 |
contentGroup | Content group | 公開されたコンテンツのアイテムに適用されるカテゴリ / イベントパラメータ「content_group」によって設定。 |
contentId | Content ID | 選択したコンテンツの識別子 / イベントパラメータ「content_id」によって設定される。 |
contentType | Content type | 選択したコンテンツのカテゴリ / イベントパラメータ「content_type」によって設定される。 |
continent | Continent | ユーザーアクティビティが発生した大陸 / たとえば、「アメリカ」や「アジア」など |
continentId | Continent ID | IP アドレスから得られる、ユーザー アクティビティの発信元の大陸の地理 ID |
country | Country | ユーザーアクティビティが発生した国 |
countryId | Country ID | IP アドレスから得られる、ユーザー アクティビティの発信元の国の地理 ID / ISO 3166-1 alpha-2 標準に従ってフォーマットされている。 |
date | Date | YYYYMMDD 形式のイベントの日付 |
dateHour | Date + hour(YYYYMMDDHH) | YYYYMMDDHH 形式でフォーマットされた日付と時間を組み合わせた値 |
dateHourMinute | Date hour and minute | YYYYMMDDHHMM 形式でフォーマットされた日付、時間、分の値を組み合わせたもの |
day | Day | 日付。01 から 31 までの 2 桁の数字 |
dayOfWeek | Day of week | 整数の曜日 / 日曜日を週の最初の日として、[0,6] の範囲の値を返します。 |
dayOfWeekName | Day of week name | 英語での曜日 / このディメンションには日曜日、月曜日などの値があります。 |
defaultChannelGroup | Default channel group | コンバージョンのデフォルトのチャンネル グループは、主にソースとメディアに基づきます。「直接」、「オーガニック検索」、「有料ソーシャル」、「オーガニックソーシャル」、「メール」、「アフィリエイト」、「紹介」、「有料検索」、「ビデオ」、「ディスプレイ」を含む列挙。 |
deviceCategory | Device category | デバイスのタイプ: デスクトップ、タブレット、またはモバイル |
deviceModel | Device model | モバイルデバイスのモデル (例: iPhone 10、6) |
eventName | Event name | イベントの名前 |
fileExtension | File extension | ダウンロードされたファイルの拡張子 (「pdf」または「txt」など) / 拡張測定が有効な場合は、自動的に入力されます。イベントパラメータ「file_extension」によって設定されます。 |
fileName | File name | ダウンロードされたファイルのページ パス (たとえば、「/menus/dinner-menu.pdf」)。拡張測定が有効な場合は、自動的に入力されます。イベントパラメータ「file_name」によって設定されます。 |
fullPageUrl | Full page URL | 訪問した Web ページのホスト名、ページ パス、およびクエリ文字列 |
googleAdsQuery | Google Ads query | コンバージョン イベントを引き起こした検索クエリ |
groupId | Group ID | イベントのゲーム内のプレイヤー グループ ID / イベントパラメータ「group_id」によって設定されます。 |
hostName | Hostname | URL のサブドメイン名とドメイン名が含まれます。たとえば、www.example.com/contact.html のホスト名は www.example.com です。 |
hour | Hour | イベントが記録された日の 2 桁の時間 / このディメンションの範囲は 0 ~ 23 で、宿泊施設のタイムゾーンで報告されます。 |
isConversionEvent | Is conversion event | イベントがコンバージョンの場合は文字列「true」/ イベントは収集時にコンバージョンとしてマークされます。イベントのコンバージョン マーキングへの変更は今後適用されます。Google Analytics では任意のイベントをコンバージョンとしてマークできます。 |
isoWeek | ISO week of the year | ISO の週番号 / 各週は月曜日から始まります。 |
isoYear | ISO year | イベントの ISO 年 |
isoYearIsoWeek | ISO week of ISO year | isoWeek と iso Year を組み合わせた値。 |
itemAffiliation | Item affiliation | 個々のアイテムに関連付けられているアフィリエイト (パートナー/ベンダー、存在する場合) の名前またはコード。 |
itemBrand | Item brand | アイテムのブランド名 |
itemCategory | Item category | アイテムが分類される階層カテゴリ / たとえば、アパレル/メンズ/夏/シャツ/T シャツでは、アパレルがアイテム カテゴリになる。 |
itemId | Item ID | アイテムのID |
itemListId | Item list ID | アイテムリストのID |
itemListName | Item list name | アイテムリストの名前 |
itemListPosition | Item list position | リスト内の項目 (販売する製品など) の位置。このディメンションは、タグ付け時に items 配列の 'index' パラメーターによって設定される。 |
itemLocationID | Item location ID | アイテムに関連付けられた物理的な場所 (物理的な店舗の場所など) |
itemName | Item name | アイテムの名前 |
landingPage | Landing page | セッション内の最初のページビューに関連付けられたページ パス |
language | Language | ユーザーのブラウザまたはデバイスの言語設定 / 例:英語 |
level | Level | ゲームにおけるプレイヤーのレベル / イベントパラメータ「level」によって設定 |
linkClasses | Link classes | 送信リンクの HTML クラス属性 |
medium | Medium | コンバージョン イベントに起因するメディア |
method | Method | イベントをトリガーした方法 / イベントパラメータ「method」によって設定 |
minute | Minute | イベントが記録された時の分を 2 桁で表示 |
month | Month | イベントの月 / 01 ~ 12 の 2 桁の整数 |
newVsReturning | New / returning | 新規ユーザーには以前のセッションが 0 件あり、復帰ユーザーには以前のセッションが 1 つ以上あります。このディメンションは、「new」または「returning」の 2 つの値を返す |
videoTitle | Video title | ビデオのタイトル / 拡張測定が有効な場合、埋め込みビデオに自動的に入力 |
videoUrl | Video URL | ビデオの URL / 拡張測定が有効な場合、埋め込みビデオに自動的に入力 |
visible | Visible | コンテンツが表示される場合は「true」を返す |
week | Week | イベントの週 / 01 から 53 までの 2 桁の数字 |
year | Year | イベントの 4 桁の年 |
yearMonth | Year month | 年と月を組み合わせた値 |
yearWeek | Year week | 年と週を組み合わせた値 |
Metrics
Metrics 情報の一部は以下の通りです。
API Name | UI Name | 説明 |
active1DayUsers | 1-day active users | 1 日間のサイトやアプリ内のアクティブ ユーザー数 |
activeUsers | Active users | サイトまたはアプリにアクセスした個別のユーザーの数 |
adUnitExposure | Ad unit exposure | 広告ユニットがユーザーに表示された時間(ミリ秒単位) |
addToCarts | Add to carts | ユーザーがショッピングカートにアイテムを追加した回数 |
advertiserAdClicks | Ads clicks | ユーザーが広告をクリックした際に、プロパティに到着した回数の合計 / リンクされた検索広告 360 広告など主のリンクされた統合からのクリックが含まれます。データインポートからアップロードしたクリックも含まれます。 |
advertiserAdCost | Ads cost | 広告に支払った総額。リンクされたGoogle広告アカウントなどのリンク統合された費用が含まれます。 |
bounceRate | Bounce rate | 関与のなかったセッションの割合(関与メントのセッション少ない数)をセッション数で割った値。この指標は小さい数として返されます。 ちなみに、0.2761 の場合、セッションの 27.61% は直帰という意味になります。 |
cartToViewRate | Cart-to-view rate | カートに商品を追加したユーザー数を、同じ商品を閲覧したユーザー数で割った値。 この指標は小さい数として返されます。 ちなみに、「0.1132」は、商品を閲覧したユーザーの 11.32% が同じ商品をカートに追加したことを意味します。 |
checkouts | Checkouts | ユーザーが購入手続きを開始した回数 |
cohortActiveUsers | Cohort active users | コホートの n 日/週/月に対応する時間枠内でアクティブなコホート内のユーザーの数 |
cohortTotalUsers | Cohort total users | コホート内のユーザーの総数 / この指標は、各コホートのレポートのすべての行で同じ値です。コホートは共有取得日によって定義されるため、cohortTotalUsers は、コホートの選択日範囲の cohortActiveUsers と同じになります。 |
conversions | Conversions | コンバージョン イベントの数 / イベントは収集時にコンバージョンとしてマークされます。 |
crashAffectedUsers | Crash-affected users | レポートのこの行にクラッシュを記録したユーザーの数 / たとえば、レポートが日付別の時系列である場合、このメトリクスは、この日付に少なくとも 1 回のクラッシュが発生したユーザーの合計をレポートします。 |
crashFreeUsersRate | Crash-free users rate | クラッシュ イベントが発生していないユーザーの数 (レポートのこの行内) をユーザーの総数で割った値。このメトリックは分数として返されます。たとえば、0.9243 は、92.43% のユーザーがクラッシュしなかったことを意味します。 |
dauPerMau | DAU / MAU | 1 日アクティブ ユーザーでもある 30 日間アクティブ ユーザーのローリング パーセント / このメトリックは分数として返されます。たとえば、0.113 は、30 日間アクティブ ユーザーの 11.3% が 1 日間アクティブ ユーザーでもあったことを意味します。 |
dauPerWau | DAU / WAU | 1 日アクティブ ユーザーでもある 7 日間アクティブ ユーザーのローリング パーセント。このメトリックは分数として返されます。たとえば、0.082 は、7 日間アクティブ ユーザーの 8.2% が 1 日間アクティブ ユーザーでもあったことを意味します。 |
ecommercePurchases | Ecommerce purchases | ユーザーが購入を完了した回数 / このメトリクスは「購入」イベントをカウントします。このメトリクスには、「in_app_purchase」イベントとサブスクリプション イベントはカウントされません。 |
engagedSessions | Engaged sessions | 10 秒以上続いたセッション、コンバージョン イベントが発生したセッション、または 2 つ以上の画面ビューがあったセッションの数 |
engagementRate | Engagement rate | 関与したセッションの割合 (関与したセッションをセッション数で割ったもの) / このメトリックは分数として返されます。たとえば、0.7239 は、セッションの 72.39% がエンゲージメントセッションであったことを意味します。 |
eventCount | Event count | イベントの数 |
eventCountPerUser | Event count per user | ユーザーあたりの平均イベント数 (イベント数をアクティブ ユーザーで割ったもの) |
eventValue | Event value | 「value」という名前のイベント パラメータの合計 |
eventsPerSession | Events per session | セッションあたりの平均イベント数 (イベント数をセッションで割ったもの) |
grossItemRevenue | Gross item revenue | アイテムのみからの総収益。総商品収入は、その価格と数量の積です。アイテムの収益には税金と配送料は含まれません。税金と配送料の値は商品レベルではなくイベントで指定されます。総商品収益には払い戻しは含まれません。 |
itemListClickEvents | Item-list click events | アイテムがリストに表示されたときにユーザーがクリックした回数。このメトリックは、「select_item」イベントの発生をカウントします。 |
newUsers | New users | サイトを操作したユーザー、または初めてアプリを起動したユーザーの数 (トリガーされたイベント: first_open または first_visit) |
promotionClicks | Promotion clicks | アイテムのプロモーションがクリックされた回数。このメトリクスは、「select_promotion」イベントの発生をカウントします。 |
promotionViews | Promotion views | アイテムプロモーションが閲覧された回数。このメトリクスは、「view_promotion」イベントの発生をカウントします。 |
scrolledUsers | Scrolled users | ページの少なくとも 90% を下にスクロールしたユニーク ユーザーの数 |
sessions | Sessions | サイトまたはアプリで開始されたセッションの数 (トリガーされたイベント: session_start) |
sessionsPerUser | Sessions per user | ユーザーあたりの平均セッション数 (セッションをアクティブ ユーザーで割ったもの) |
shippingAmount | Shipping amount | 取引に関連付けられた配送料。「shipping」イベントパラメータによって設定されます。 |
taxAmount | Tax amount | 取引に関連付けられた税額。「tax」イベントパラメータによって設定されます。 |
totalAdRevenue | Total ad revenue | Admob とサードパーティの両方のソースからの広告収入の合計 |
totalPurchasers | Total purchasers | 選択した期間中に購入イベントを記録したユーザーの数 |
totalRevenue | Total revenue | 購入、サブスクリプション、および広告からの収益の合計 (購入収益 + サブスクリプション収益 + 広告収益) から返金されたトランザクション収益を差し引いたもの |
totalUsers | Total users | イベントが記録されたときにサイトまたはアプリが使用中であったかどうかに関係なく、少なくとも 1 つのイベントを記録した個別のユーザーの数 |
transactions | Transactions | 購入収益を伴うトランザクション イベントの数 |
userConversionRate | User conversion rate | コンバージョン イベントをトリガーしたユーザーの割合 |
wauPerMau | WAU / MAU | 7 日間アクティブ ユーザーでもある 30 日間アクティブ ユーザーのローリング パーセント / このメトリックは分数として返されます。たとえば、0.234 は、30 日間アクティブ ユーザーの 23.4% が 7 日間アクティブ ユーザーでもあったことを意味します。 |
API 実行
コード
RunReportRequest で、ディメンションとメトリクス情報を取得してみました。
from google.analytics.data_v1beta import BetaAnalyticsDataClient from google.analytics.data_v1beta.types import DateRange from google.analytics.data_v1beta.types import Dimension from google.analytics.data_v1beta.types import Metric from google.analytics.data_v1beta.types import RunReportRequest import os # アカウント設定 os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './credential.json' GA_PROPERTY_ID = "{{GA_PROPERTY_ID}}" def sample_run_report(property_id=GA_PROPERTY_ID): client = BetaAnalyticsDataClient() request = RunReportRequest( property=f"properties/{GA_PROPERTY_ID}", dimensions=[ # Dimension(name="date"), # Dimension(name="hostName"), # Dimension(name="AudienceName"), Dimension(name="appVersion"), Dimension(name="browser"), ##Dimension(name="city"), # Dimension(name="pageTitle"), ], metrics=[ Metric( name="activeUsers", expression="eventCount" ), Metric(name="newUsers"), Metric(name="screenPageViews"), Metric(name="averageSessionDuration"), Metric(name="bounceRate"), Metric(name="conversions"), ], date_ranges=[DateRange(start_date="28daysAgo", end_date="yesterday")], ) response = client.run_report(request) for row in response.rows: print (row) foo = 0 bar = 0 for i in response.dimension_headers: val = row.dimension_values[foo].value print (f"dimension - {i.name}: {val}") foo += 1 for i in response.metric_headers: val = row.metric_values[bar].value print (f"metric - {i.name}: {val}") bar += 1 if __name__ == '__main__': sample_run_report()
RunReportRequest パラメータ
RunReportRequest のパラメータは以下のとおりです。
パラメータ | 説明 |
property | プロパティ ID。properties/{property ID}の形で指定 |
dimensions | ディメンション(リスト) |
metrics | 指標(リスト) |
dateRanges | データ取得期間 |
dimensionFilter | ディメンションのフィルタを指定 |
実行結果
dimension_values { value: "(not set)" } dimension_values { value: "Chrome" } metric_values { value: "43" } metric_values { value: "6" } metric_values { value: "17" } metric_values { value: "17.403405333333335" } metric_values { value: "0.5" } metric_values { value: "0" } dimension - appVersion: (not set) dimension - browser: Chrome metric - activeUsers: 43 metric - newUsers: 6 metric - screenPageViews: 17 metric - averageSessionDuration: 17.403405333333335 metric - bounceRate: 0.5 metric - conversions: 0 dimension_values { value: "(not set)" } dimension_values { value: "Safari" } metric_values { value: "8" } metric_values { value: "1" } metric_values { value: "3" } metric_values { value: "164.431937" } metric_values { value: "0" } metric_values { value: "0" } dimension - appVersion: (not set) dimension - browser: Safari metric - activeUsers: 8 metric - newUsers: 1 metric - screenPageViews: 3 metric - averageSessionDuration: 164.431937 metric - bounceRate: 0 metric - conversions: 0