0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

複数のGA4プロパティにカスタムディメンションを一括作成

Last updated at Posted at 2024-12-23

本記事は2022年7月時点での内容になります。最新情報については公式サイトなどを確認願います。

GA4で複数プロパティを自動作成にて、GA4のプロパティを一括作成する方法を紹介しました。今回はその続きで、各プロパティにカスタムディメンションを一括作成する方法を紹介します。

手順は以下になります。

  1. カスタムディメンションのリストを作成
  2. 対象のGA4プロパティ一覧を読み込む(今回は省略)
  3. カスタムディメンションのリストを読み込み一括作成

カスタムディメンションのリストを作成

作成するカスタムディメンションの一覧をGoogle Sheetに作成します。

  • シート名:customdimensions
  • A列:カスタムディメンション名
  • B列:スコープ(EVENT、USER)

image.png

Google Apps Scriptの作成

今回もGoogle Analytics Admin APIをを使用しますが、この設定方法は前回の記事を参照願います。

対象のGA4プロパティ一覧を読み込む

こちらはGoogle SheetにGA4プロパティの一覧を作成し、そのシートを読み込むだけなので、今回は省略して、Google Apps Script内の配列変数に直接入れます。

カスタムディメンションの一覧を読み込む

先ほどGoogle Sheetに作成したカスタムディメンションの一覧を読み込む関数getCustomDimensionsFromSheet()を作成します。

このgetCustomDimensionsFromSheet()関数は下記の属性を含めた変数の配列を返します。

const FILEKEY ="abcdefghijklmno"; // GoogleSheetのキー(URLの一部分) 例:https://docs.google.com/spreadsheets/d/abcdefghijklmno/edit#gid=0

function getCustomDimensionsFromSheet(){
  var sheetName = "customdimensions";
  var spreadsheet = SpreadsheetApp.openById(FILEKEY);
  var sheet = spreadsheet.getSheetByName(sheetName);
  var lastRow = sheet.getLastRow(); 
  var ar = sheet.getRange(2,1,lastRow,2).getValues();
  var ret = [];
  for(var i =0; i < ar.length; i++){
    if(ar[i][0] == null || ar[i][0] ==""){
      break;
    }
    var a = {
    "displayName": ar[i][0], 
    "parameterName": ar[i][0],
    "scope": ar[i][1] //"EVENT"
    }
    ret.push(a);
  }
  return ret;
}

例:

  • displayName: “customer_status”
  • parameterName: “customer_status”
  • scope: “USER”

GA4プロパティにカスタムディメンションを作成

上記で取得した情報をGA4プロパティに1つずつ作成します。ここでは1つのカスタムディメンションを作成する関数createCustomDimension()を作成します。

function createCustomDimension(propertyId, customDimensionData){
/* 
propertyId = 3234568;
customDimensionData= {
  "displayName": "customer_status",
  "parameterName": "customer_status",
  "scope": "USER" //"EVENT"
}
*/
  var ret = AnalyticsAdmin.Properties.CustomDimensions.create(customDimensionData, 'properties/' + property);
  return ret;
}

最後に、上記をGA4プロパティ個数×カスタムディメンション個数分繰り返すmain()関数を作成します。

function main(){
  var properties = [
    3234568,
    3234555,
    3234542,
    3234609,
    3234553,
    3234563,
    3234584
  ]; // 今回はGAプロパティIDの読み込み箇所のスクリプトは省略して配列に直接入れています
  for(const property of properties){
    var cds = getCustomDimensionsFromSheet(property);
    for(const cd of cds) {
      try{
        console.log(createCustomDimension(property, cd));
      }catch(e){
        console.log(e);
      }
    }
  }
}

上記の関数を実行すると、各GA4プロパティにカスタムディメンションが作成されました。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?