前回「GA4で複数プロパティを自動作成」にて、GA4のプロパティを一括作成する方法を紹介しました。今回はその続きで、各プロパティにカスタムディメンションを一括作成する方法を紹介します。
手順は以下になります。
- カスタムディメンションのリストを作成
- 対象のGA4プロパティ一覧を読み込む(今回は省略)
- カスタムディメンションのリストを読み込み一括作成
カスタムディメンションのリストを作成
作成するカスタムディメンションの一覧をGoogle Sheetに作成します。
- シート名:customdimensions
- A列:カスタムディメンション名
- B列:スコープ(EVENT、USER)
Google Apps Scriptの作成
今回もGoogle Analytics Admin APIをを使用しますが、この設定方法は前回の記事を参照願います。
対象のGA4プロパティ一覧を読み込む
こちらはGoogle SheetにGA4プロパティの一覧を作成し、そのシートを読み込むだけなので、今回は省略して、Google Apps Script内の配列変数に直接入れます。
カスタムディメンションの一覧を読み込む
先ほどGoogle Sheetに作成したカスタムディメンションの一覧を読み込みます。
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つのカスタムディメンションを作成する関数を作成します。
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プロパティ個数×カスタムディメンション個数分繰り返します。
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プロパティにカスタムディメンションが作成されました。
コメント