บริการ Tag Manager

บริการ Google Tag Manager ให้สิทธิ์เข้าถึงข้อมูล Tag Manager API สําหรับผู้ใช้ที่ได้รับอนุญาต บริการนี้อนุญาตให้ผู้ใช้ Tag Manager จัดการบัญชี คอนเทนเนอร์ สภาพแวดล้อม เวอร์ชัน พื้นที่ทํางาน โฟลเดอร์ ตัวแปร ทริกเกอร์ แท็ก และสิทธิ์ของผู้ใช้

ข้อมูลอ้างอิง

ดูข้อมูลโดยละเอียดเกี่ยวกับบริการนี้ได้ในเอกสารอ้างอิงสำหรับ Tag Manager API V2

บริการ Tag Manager ใช้ออบเจ็กต์ เมธอด และพารามิเตอร์เดียวกับ API สาธารณะเช่นเดียวกับบริการขั้นสูงทั้งหมดใน Apps Script ดูข้อมูลเพิ่มเติมได้ที่วิธีกำหนดลายเซ็นเมธอด

หากต้องการรายงานปัญหาและค้นหาการสนับสนุนอื่นๆ โปรดไปที่ศูนย์ช่วยเหลือของ Google Tag Manager

โค้ดตัวอย่าง

โค้ดตัวอย่างด้านล่างแสดงวิธีใช้ฟีเจอร์บางอย่างของบริการ Tag Manager

สร้างเวอร์ชันคอนเทนเนอร์ที่มีตัวแปร ทริกเกอร์ และแท็ก

โค้ดตัวอย่างด้านล่างใช้ Tag Manager API V2 เพื่อสร้างคอนเทนเนอร์ที่มีชื่อและมีการประทับเวลาด้วยวันที่ปัจจุบันก่อน เพื่อเพิ่มโอกาสที่ชื่อจะเป็นชื่อที่ไม่ซ้ำกัน จากนั้นตัวอย่างจะสร้างเวิร์กสเปซที่มีตัวแปรค่าแบบสุ่ม และทริกเกอร์ที่ทริกเกอร์เมื่อมีการดูหน้าเว็บ ถัดไป ตัวอย่างจะใช้ทริกเกอร์เพื่อสร้างแท็กพิกเซลที่กําหนดเองซึ่งจะเรียกใช้พิกเซลไปที่ //example.com พร้อมการลบแคชที่ต่อท้าย URL สุดท้าย ตัวอย่างจะสร้างเวอร์ชันคอนเทนเนอร์ที่มีเอนทิตีข้างต้น บันทึกเวอร์ชัน และแสดงผลเพื่อใช้ภายหลัง

advanced/tagManager.gs
/**
 * 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.
 */
function createContainerVersion(accountPath) {
  const date = new Date();
  // Creates a container in the account, using the current timestamp to make
  // sure the container is unique.
  try {
    const container = TagManager.Accounts.Containers.create(
        {
          'name': 'appscript tagmanager container ' + date.getTime(),
          'usageContext': ['WEB']
        },
        accountPath);
    const containerPath = container.path;
    // Creates a workspace in the container to track entity changes.
    const workspace = TagManager.Accounts.Containers.Workspaces.create(
        {'name': 'appscript workspace', 'description': 'appscript workspace'},
        containerPath);
    const workspacePath = workspace.path;
    // Creates a random value variable.
    const variable = TagManager.Accounts.Containers.Workspaces.Variables.create(
        {'name': 'apps script variable', 'type': 'r'},
        workspacePath);
    // Creates a trigger that fires on any page view.
    const trigger = TagManager.Accounts.Containers.Workspaces.Triggers.create(
        {'name': 'apps script trigger', 'type': 'PAGEVIEW'},
        workspacePath);
    // Creates a arbitary pixel that fires the tag on all page views.
    const tag = TagManager.Accounts.Containers.Workspaces.Tags.create(
        {
          'name': 'apps script tag',
          '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.
    const version = TagManager.Accounts.Containers.Workspaces
        .create_version(
            {'name': 'apps script version'}, workspacePath)
        .containerVersion;
    console.log(version);
    return version;
  } catch (e) {
    // TODO (Developer) - Handle exception
    console.log('Failed with error: %s', e.error);
  }
}

เผยแพร่เวอร์ชันคอนเทนเนอร์และแสดงตัวอย่างร่างคอนเทนเนอร์ปัจจุบันอย่างรวดเร็ว

โค้ดตัวอย่างด้านล่างใช้ Tag Manager API V2 เพื่อยอมรับเวอร์ชันคอนเทนเนอร์ที่อาจสร้างขึ้นในตัวอย่างด้านบน และดึงรหัสบัญชี คอนเทนเนอร์ และเวอร์ชันจากเวอร์ชันนั้น ตัวอย่างนี้ใช้รหัสเหล่านี้เพื่อเผยแพร่เวอร์ชันคอนเทนเนอร์แบบเรียลไทม์ไปทั่วโลก สุดท้าย ตัวอย่างจะสร้างตัวอย่างคร่าวๆ ของพื้นที่ทํางานใหม่และบันทึกตัวอย่างคร่าวๆ นั้น

advanced/tagManager.gs
/**
 * Retrieves the container path from a container version path.
 * @param  {string} versionPath The version path.
 * @return {string}             The container path.
 */
function grabContainerPath(versionPath) {
  const pathParts = versionPath.split('/');
  return pathParts.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.
 */
function publishVersionAndQuickPreviewDraft(version) {
  try {
    const containerPath = grabContainerPath(version.path);
    // Publish the input container version.
    TagManager.Accounts.Containers.Versions.publish(version.path);
    const workspace = TagManager.Accounts.Containers.Workspaces.create(
        {'name': 'appscript workspace', 'description': 'appscript workspace'},
        containerPath);
    const workspaceId = workspace.path;
    // Quick previews the current container draft.
    const quickPreview = TagManager.Accounts.Containers.Workspaces
        .quick_preview(workspace.path);
    console.log(quickPreview);
  } catch (e) {
    // TODO (Developer) - Handle exceptions
    console.log('Failed with error: $s', e.error);
  }
}

สร้างและให้สิทธิ์สภาพแวดล้อมของผู้ใช้อีกครั้ง

ตัวอย่างโค้ดด้านล่างใช้ Tag Manager API V2 เพื่อยอมรับเวอร์ชันคอนเทนเนอร์และดึงรหัสบัญชี คอนเทนเนอร์ และเวอร์ชัน ตัวอย่างนี้ใช้รหัสเหล่านี้เพื่อสร้างสภาพแวดล้อมของผู้ใช้ซึ่งชี้ไปยังเวอร์ชันคอนเทนเนอร์อินพุตและบันทึกสภาพแวดล้อมของผู้ใช้ ตัวอย่างจะจบลงด้วยการบันทึกสภาพแวดล้อมของผู้ใช้ที่ได้รับสิทธิ์ใหม่

advanced/tagManager.gs
/**
 * Retrieves the container path from a container version path.
 * @param  {string} versionPath The version path.
 * @return {string}             The container path.
 */
function grabContainerPath(versionPath) {
  const pathParts = versionPath.split('/');
  return pathParts.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.
 */
function createAndReauthorizeUserEnvironment(version) {
  try {
    // Creates a container version.
    const containerPath = grabContainerPath(version.path);
    // Creates a user environment that points to a container version.
    const environment = TagManager.Accounts.Containers.Environments.create(
        {
          'name': 'test_environment',
          'type': 'user',
          'containerVersionId': version.containerVersionId
        },
        containerPath);
    console.log('Original user environment: ' + environment);
    // Reauthorizes the user environment that points to a container version.
    TagManager.Accounts.Containers.Environments.reauthorize(
        {}, environment.path);
    console.log('Reauthorized user environment: ' + environment);
  } catch (e) {
    // TODO (Developer) - Handle exceptions
    console.log('Failed with error: $s', e.error);
  }
}

บันทึกอีเมลและสิทธิ์เข้าถึงคอนเทนเนอร์ทั้งหมดภายในบัญชี

โค้ดตัวอย่างด้านล่างใช้ Tag Manager API V2 เพื่อค้นหารายการสิทธิ์ทั้งหมดภายในบัญชี Tag Manager จากนั้นตัวอย่างจะบันทึกอีเมลของผู้ใช้ รหัสคอนเทนเนอร์ และประเภทสิทธิ์เข้าถึงคอนเทนเนอร์สําหรับแต่ละรายการ

advanced/tagManager.gs
/**
 * Logs all emails and container access permission within an account.
 * @param {string} accountPath The account path.
 */
function logAllAccountUserPermissionsWithContainerAccess(accountPath) {
  try {
    const userPermissions =
      TagManager.Accounts.User_permissions.list(accountPath).userPermission;
    for (let i = 0; i < userPermissions.length; i++) {
      const userPermission = userPermissions[i];
      if ('emailAddress' in userPermission) {
        const containerAccesses = userPermission.containerAccess;
        for (let j = 0; j < containerAccesses.length; j++) {
          const containerAccess = containerAccesses[j];
          console.log(
              'emailAddress:' + userPermission.emailAddress +
            ' containerId:' + containerAccess.containerId +
            ' containerAccess:' + containerAccess.permission);
        }
      }
    }
  } catch (e) {
    // TODO (Developer) - Handle exceptions
    console.log('Failed with error: $s', e.error);
  }
}