Servizio TagManager

Il servizio Google Tag Manager fornisce l'accesso ai dati dell'API Tag Manager per un utente autorizzato. Questo servizio consente agli utenti di Tag Manager di gestire account, containers, ambienti, versions, workspace, cartelle, variabili, attivatori, tag e .utente.

Riferimento

Per informazioni dettagliate su questo servizio, consulta la documentazione di riferimento per l'API Tag Manager V2.

Come tutti i servizi avanzati di Apps Script, il servizio Tag Manager utilizza gli stessi oggetti, metodi e parametri dell'API pubblica. Per ulteriori informazioni, vedi Come vengono determinate le firme dei metodi.

Per segnalare problemi e trovare ulteriore supporto, consulta il Centro assistenza Google Tag Manager.

Codice campione

Il codice di esempio riportato di seguito mostra come utilizzare alcune funzionalità del servizio Tag Manager.

Crea una versione del contenitore con una variabile, un attivatore e un tag.

Il codice di esempio riportato di seguito utilizza l'API Tag Manager V2 per prima creare un contenitore con un nome provvisto di timestamp con la data corrente per aumentare le probabilità che sia univoco. L'esempio crea quindi un'area di lavoro con una variabile di valore casuale e un attivatore che si attiva per qualsiasi visualizzazione di pagina. L'esempio utilizza quindi l'attivatore per creare un tag di pixel arbitrario che attiva un pixel per //example.com con il busting della cache aggiunto alla fine dell'URL. Infine, l'esempio crea una versione del container con le entità riportate sopra, registra la versione e la restituisce per un utilizzo futuro.

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);
  }
}

Pubblica una versione del contenitore e visualizza rapidamente in anteprima la bozza del contenitore corrente.

Il codice di esempio riportato di seguito utilizza l'API Tag Manager V2 per accettare una versione del contenitore che potrebbe essere stata creata nell'esempio precedente e recuperare gli ID account, contenitore e versione dalla versione. L'esempio utilizza questi ID per pubblicare online una versione del container. Infine, l'esempio crea un'anteprima rapida di una nuova area di lavoro e registra l'anteprima rapida.

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);
  }
}

Crea e autorizza nuovamente un ambiente utente.

Il codice di esempio riportato di seguito utilizza l'API Tag Manager V2 per accettare una versione del contenitore ed estrarre gli ID account, contenitore e versione. L'esempio utilizza questi ID per creare un ambiente utente che rimandi alla versione del container di input e registra l'ambiente utente. L'esempio si conclude registrando un ambiente utente riautorizzato.

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);
  }
}

Registra tutte le email e le autorizzazioni di accesso ai contenitori all'interno di un account.

Il codice di esempio riportato di seguito utilizza l'API Tag Manager V2 per trovare un elenco di tutte le autorizzazioni in un account Tag Manager. L'esempio registra quindi l'indirizzo email dell'utente, l'ID contenitore e i tipi di autorizzazioni di accesso al contenitore per ciascuna voce.

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);
  }
}