我必须对不同的 Google 标签管理器帐户进行审核,并且我想从各自的容器中将标签和触发器导出到 Excel 或 Google Sheet 文件中 你知道这是否可能吗?
请问有人可以帮我吗?
我今天需要做类似的事情,所以这是我快速编写的一个脚本,用于将过滤器及其条件提取到 CSV。
只需在控制台中运行它即可:
document.querySelectorAll('tr[gtm-table-row]').forEach(n => {
const triggerName = n.querySelector('td:nth-child(2)').textContent.trim();
const eventType = n.querySelector('td:nth-child(3)').textContent.trim();
const triggerConditions = '"' + Array.from(n.querySelectorAll('td:nth-child(4) .gtm-predicate-summary-row')).map(conditionElement => conditionElement.textContent.trim()).join(',') + '"';
console.log(`"${triggerName}", "${eventType}", "${triggerConditions}"`);
});
还远未完成。我只针对“触发器”视图测试了它,没有分页支持,如果过滤条件中有双引号等,则很容易出错...
但这应该可以帮助最终看到这篇文章的人开始。
您必须使用 Google 跟踪代码管理器 API:https://developers.google.com/tag-manager/api/v2
您可以管理标签和触发器。您可以使用 Apps 脚本和相关跟踪代码管理器服务直接从电子表格获取所需信息:https://developers.google.com/apps-script/advanced/tag-manager
为了添加已接受的内容,我需要类似的东西,并希望从 gtm 中设置的所有标签获取所有数据。
您要做的第一件事是确保向下滚动(在标签管理器上)并确保“显示行”的选定选项为“全部”。您现在应该能够看到所有标签。
接下来,打开控制台并输入以下脚本:
document.querySelectorAll('tr[gtm-table-row]').forEach(n => {
const triggerName = n.querySelector('td:nth-child(2)').textContent.trim();
const eventType = n.querySelector('td:nth-child(3)').textContent.trim();
const firingTriggers = Array.from(n.querySelectorAll('td:nth-child(4) .small-trigger-chip')).map(conditionElement => conditionElement.textContent.trim());
const folder = n.querySelector('td:nth-child(5)').textContent.trim();
const lastEdited = n.querySelector('td:nth-child(6)').textContent.trim();
// To find if Tag is currently paused
const lastEditedClassNames = Array.from(n.querySelectorAll('td:nth-child(6)')[0].childNodes).filter(child => child.clientHeight > 0)
const paused = lastEditedClassNames.length !== 0
const tag = {
name: triggerName,
type: eventType,
Firing_Triggers: firingTriggers,
Folder: folder,
Last_Edited: lastEdited,
Currently_Paused: paused
}
gtmData.push(tag)
})
完成后,您可以在控制台中输入“gtmData”并按 Enter 键。它应该打印出你所有的 gtmData。
右键单击并复制 gtmData 对象。
从这里开始,选择权就在你手中。如果您需要将其设为 csv,那么有些网站会为您更改该数据。希望这有帮助!