I have a script to insert Google Analytics custom dimensions. This is useful for new GA properties i want to copy custom dimensions over to. It will append if there are existing custom dimensions in the destination properties.
Therefore, i want to use
Analytics.Management.CustomDimensions.update()
function updateCustomDims() {
var sourceProperty = 'UA-XXXXXXXX-1'
var sourceAccount = 'XXXXXXXX'
var sourceDimensions = Analytics.Management.CustomDimensions.list(sourceAccount, sourceProperty)
var sourceItems = sourceDimensions['items']
var destinationProperty = 'UA-XXXXXXXX-1'
var destinationAccount = 'XXXXXXXX'
var destinationDimensions = Analytics.Management.CustomDimensions.list(destinationAccount, destinationProperty)
var destinationItems = destinationDimensions['items']
for (var i = 0; i < sourceItems.length; i++) {
var sourceContent = {
'name': sourceItems[i]['name'],
'scope': sourceItems[i]['scope'],
'active': sourceItems[i]['active']
}
for (var i = 0; i < destinationItems.length; i++) {
var destinationContent = {
'name': destinationItems[i]['name'],
'scope': destinationItems[i]['scope'],
'active': destinationItems[i]['active']
}
var cdId = {'id': destinationItems[i]['id']}
if (destinationContent[i] != undefined) {
Analytics.Management.CustomDimensions.update(sourceContent, destinationAccount, destinationProperty, cdId)
} else {
Analytics.Management.CustomDimensions.insert(sourceContent, destinationAccount, destinationProperty)
}
Utilities.sleep(1000)
}
}
}
It will only append even though there are existing custom dimensions. It should update the existing dimension.