ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【Google】GA4(Google Analytics4)のAPIの使い方 - ディメンションとメトリクス

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 ディメンションのフィルタを指定

developers.google.com

実行結果

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