import app from "../../google_tag_manager.app.mjs";
export default {
name: "Create Tag",
version: "0.0.2",
key: "google_tag_manager-create-tag",
description: "Create a tag in a workspace. [See the documentation](https://developers.google.com/tag-platform/tag-manager/api/v2/reference/accounts/containers/workspaces/tags/create)",
type: "action",
props: {
app,
accountId: {
optional: false,
propDefinition: [
app,
"accountId",
],
},
containerId: {
optional: false,
propDefinition: [
app,
"containerId",
(c) => ({
accountId: c.accountId,
}),
],
},
workspaceId: {
optional: false,
propDefinition: [
app,
"workspaceId",
(c) => ({
accountId: c.accountId,
containerId: c.containerId,
}),
],
},
name: {
propDefinition: [
app,
"name",
],
},
type: {
propDefinition: [
app,
"type",
],
},
liveOnly: {
propDefinition: [
app,
"liveOnly",
],
},
notes: {
propDefinition: [
app,
"notes",
],
},
parameter: {
propDefinition: [
app,
"parameter",
],
},
consentSettings: {
propDefinition: [
app,
"consentSettings",
],
},
monitoringMetadata: {
propDefinition: [
app,
"monitoringMetadata",
],
},
},
async run({ $ }) {
const parameter = typeof this.parameter === "string"
? JSON.parse(this.parameter)
: this.parameter;
const consentSettings = typeof this.consentSettings === "string"
? JSON.parse(this.consentSettings)
: this.consentSettings;
const monitoringMetadata = typeof this.monitoringMetadata === "string"
? JSON.parse(this.monitoringMetadata)
: this.monitoringMetadata;
const response = await this.app.createTag({
$,
accountId: this.accountId,
containerId: this.containerId,
workspaceId: this.workspaceId,
data: {
name: this.name,
type: this.type,
liveOnly: this.liveOnly,
notes: this.notes,
parameter,
consentSettings,
monitoringMetadata,
},
});
if (response) {
$.export("$summary", `Successfully created tag with ID ${response.tagId}`);
}
return response;
},
};