下列程式碼範例使用 代碼管理工具 API V2,首先建立容器,並使用以目前日期為時間戳記的名稱,提高名稱不重複的機率。接著,範例會使用隨機值變數建立工作區,並為任何網頁檢視觸發觸發條件。接著,範例會使用觸發事件建立任意像素標記,將像素觸發至 //example.com,並在網址結尾附加快取破壞器。最後,範例會使用上述實體建立容器版本、記錄版本並傳回,以供日後使用。
/** * Creates a container version for a particular account * with the input accountPath. * @param {string} accountPath The account path. * @return {string} The tag manager container version. */functioncreateContainerVersion(accountPath){constdate=newDate();// Creates a container in the account, using the current timestamp to make// sure the container is unique.try{constcontainer=TagManager.Accounts.Containers.create({'name':'appscripttagmanagercontainer'+date.getTime(),'usageContext':['WEB']},accountPath);constcontainerPath=container.path;// Creates a workspace in the container to track entity changes.constworkspace=TagManager.Accounts.Containers.Workspaces.create({'name':'appscriptworkspace','description':'appscriptworkspace'},containerPath);constworkspacePath=workspace.path;// Creates a random value variable.constvariable=TagManager.Accounts.Containers.Workspaces.Variables.create({'name':'appsscriptvariable','type':'r'},workspacePath);// Creates a trigger that fires on any page view.consttrigger=TagManager.Accounts.Containers.Workspaces.Triggers.create({'name':'appsscripttrigger','type':'PAGEVIEW'},workspacePath);// Creates a arbitary pixel that fires the tag on all page views.consttag=TagManager.Accounts.Containers.Workspaces.Tags.create({'name':'appsscripttag','type':'img','liveOnly':false,'parameter':[{'type':'boolean','key':'useCacheBuster','value':'true'},{'type':'template','key':'cacheBusterQueryParam','value':'gtmcb'},{'type':'template','key':'url','value':'//example.com'}],'firingTriggerId':[trigger.triggerId]},workspacePath);// Creates a container version with the variabe, trigger, and tag.constversion=TagManager.Accounts.Containers.Workspaces.create_version({'name':'appsscriptversion'},workspacePath).containerVersion;console.log(version);returnversion;}catch(e){// TODO (Developer) - Handle exceptionconsole.log('Failedwitherror:%s',e.error);}}
發布容器版本,並快速預覽目前的容器草稿。
下列範例程式碼會使用 代碼管理工具 API V2 接受可能在上述範例中建立的容器版本,並從該版本擷取帳戶、容器和版本 ID。本範例會利用這些 ID 向全世界發布容器版本。最後,範例會為新工作區建立快速預覽畫面,並記錄快速預覽畫面。
/** * Retrieves the container path from a container version path. * @param {string} versionPath The version path. * @return {string} The container path. */functiongrabContainerPath(versionPath){constpathParts=versionPath.split('/');returnpathParts.slice(0,4).join('/');}/** * Publishes a container version publically to the world and creates a quick * preview of the current container draft. * @param {object} version The container version. */functionpublishVersionAndQuickPreviewDraft(version){try{constcontainerPath=grabContainerPath(version.path);// Publish the input container version.TagManager.Accounts.Containers.Versions.publish(version.path);constworkspace=TagManager.Accounts.Containers.Workspaces.create({'name':'appscriptworkspace','description':'appscriptworkspace'},containerPath);constworkspaceId=workspace.path;// Quick previews the current container draft.constquickPreview=TagManager.Accounts.Containers.Workspaces.quick_preview(workspace.path);console.log(quickPreview);}catch(e){// TODO (Developer) - Handle exceptionsconsole.log('Failedwitherror:$s',e.error);}}
建立及重新授權使用者環境。
下方的範例程式碼使用 代碼管理工具 API V2 接受容器版本,並擷取帳戶、容器和版本 ID。此範例會利用這些 ID 建立指向輸入容器版本的使用者環境,並記錄使用者環境。這個範例會記錄重新授權的使用者環境,並以此結束。
/** * Retrieves the container path from a container version path. * @param {string} versionPath The version path. * @return {string} The container path. */functiongrabContainerPath(versionPath){constpathParts=versionPath.split('/');returnpathParts.slice(0,4).join('/');}/** * Creates and reauthorizes a user environment in a container that points * to a container version passed in as an argument. * @param {object} version The container version object. */functioncreateAndReauthorizeUserEnvironment(version){try{// Creates a container version.constcontainerPath=grabContainerPath(version.path);// Creates a user environment that points to a container version.constenvironment=TagManager.Accounts.Containers.Environments.create({'name':'test_environment','type':'user','containerVersionId':version.containerVersionId},containerPath);console.log('Originaluserenvironment:'+environment);// Reauthorizes the user environment that points to a container version.TagManager.Accounts.Containers.Environments.reauthorize({},environment.path);console.log('Reauthorizeduserenvironment:'+environment);}catch(e){// TODO (Developer) - Handle exceptionsconsole.log('Failedwitherror:$s',e.error);}}
記錄帳戶中的所有電子郵件和容器存取權限。
下列範例程式碼會使用 代碼管理工具 API V2,找出代碼管理工具帳戶中的所有權限清單。然後,這個範例會記錄使用者的電子郵件地址、容器 ID,以及每個項目的容器存取權限類型。
/** * Logs all emails and container access permission within an account. * @param {string} accountPath The account path. */functionlogAllAccountUserPermissionsWithContainerAccess(accountPath){try{constuserPermissions=TagManager.Accounts.User_permissions.list(accountPath).userPermission;for(leti=0;i < userPermissions.length;i++){constuserPermission=userPermissions[i];if('emailAddress'inuserPermission){constcontainerAccesses=userPermission.containerAccess;for(letj=0;j < containerAccesses.length;j++){constcontainerAccess=containerAccesses[j];console.log('emailAddress:'+userPermission.emailAddress+'containerId:'+containerAccess.containerId+'containerAccess:'+containerAccess.permission);}}}}catch(e){// TODO (Developer) - Handle exceptionsconsole.log('Failedwitherror:$s',e.error);}}
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2024-12-21 (世界標準時間)。"],[[["The Google Tag Manager service allows authorized users to manage various aspects of their Tag Manager accounts programmatically via the Tag Manager API."],["This advanced service enables users to create, update, and manage accounts, containers, workspaces, tags, triggers, variables, and user permissions."],["Developers can use Apps Script to interact with the Tag Manager API, leveraging its objects, methods, and parameters for automating Tag Manager tasks."],["Sample code is provided to demonstrate how to create and publish container versions, manage environments, and control user permissions."],["For detailed information and support, refer to the Tag Manager API V2 reference documentation and the Google Tag Manager help center."]]],[]]