--- title: "About _st (Async module)" slug: "about-st-async-module" description: "Learn how to use the _st object for queuing commands in your data activation base script, enhancing your website's tag management and structure." updated: 2026-04-13T11:32:42Z published: 2026-04-13T11:32:42Z canonical: "docs.supermetrics.com/about-st-async-module" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.supermetrics.com/llms.txt > Use this file to discover all available pages before exploring further. # About _st (Async module) Once the data activation base script has been loaded into a website, you’re able to use the synchronous framework by calling, for example: ```javascript _st.data.getProperty('test'). ``` However, if you want to, for example, add some properties to the framework, while the script hasn't necessarily been loaded yet (due to an asynchronous execution), you can use the `_st` object to queue commands to our framework. ## Example basescript ```javascript (function(a,d,e,b,f,c,s){a[b]=a[b]||function(){a[b].q.push(arguments);}; a[b].q=[];c=d.createElement(e);c.async=1;c.src="//tdn.r42tag.com/lib/"+f+".js"; s=d.getElementsByTagName(e)[0];s.parentNode.insertBefore(c,s);}) (window,document,"script","_st", "9999-v1"); // Add additional settings here (optional) _st('setPageStructure', 'default|structure'); _st('addTagProperty', 'exampleLocal', 'property'); _st('addTagProperties',  {'example': 'property', 'otherExample': property}); _st('addLocalTagProperties',  {'exampleLocal': 'property', 'otherLocalExample': property}); _st("loadTags"); ``` ### Explanation Loading the actual script is the last step op the process. Therefore, the given commands are queued and executed from that queue (`_st()`) after loading the actual script. The `_st()` command queue doesn't provide the user with the entire API, though. The available commands to queue are listed below. ## Available functions | Function | Arguments | Description | | --- | --- | --- | | `setPageStructure` | 1 to N: `structureElement` (string) | Identify the current page; components are used to form a tree structure. | | `setEnvironment` | 1: name (string) | Select the environment to use in tag-loading, defaults to “prod.” | | `addTagProperty` | 1: name (string), 2: value (string) | Add a property to the current tag-set; the property will be forwarded to the remote system. | | `addLocalTagProperty` | 1: name (string), 2: value (any) | Add a property to the current tag-set; the property will be kept locally in the browser. | | `addTagProperties` | 1: `propertyObject` (object) | Add all object fields as properties to the current tag-set; the properties will be forwarded to the remote system. | | `addLocalTagProperties` | 1: `propertyObject` (object) | Add all object fields as properties to the current tag-set; the properties will be kept locally in the browser. | | `loadTags` | N/A | Call the remote servers and load all configured tags. | | `resetTag` | N/A | Reset the page-structure and all previously configured properties. | | `setCookieDomain` | 1: string | Set the default cookie domain for all Relay42 cookies (starting with `_sv`) | | `setDataCookieTtl` | 1: string | Set the default cookie TTL (time to live) for all Relay42 cookies (starting with `_sv`) in days. The default is 730 days. | | `setDebug` | N/A | Function to set a debug message for a tag that’s not executed due to a selection rule or journey rule | | `addInitCallback` | 1: `propertyObject` (object) | Functions to pass settings | ## Additional functions (data tracking) | Function | Arguments | Description | | --- | --- | --- | | `setEngagement` | 1: true/false (boolean) | When an engagement has been set (true), the engagement and all its additional data will be triggered by a 'trackPageView' or 'trackInPageEvent'. | | `setEngagementType` | 1: name (string) | The engagement type is defined in the 'configuration' tab | | `setEngagementContent` | 1: content (any) | Add content to the current engagement. | | `addCustomProperty` | 1: name (string), 2: value (any) | Add a property to the engagement. | | `resetEventSettings` | - | - | | `trackInPageEvent` | - | - | | `setConversion` | 1: true (boolean) | When a conversion has been set (true), the conversion and all its additional data will be triggered by a 'trackPageView' or 'trackInPageEvent'. | | `setTransactionId` | 1: transactionId (string) | To identify unique conversions | | `setConversionValue` | 1: value (double) | Keep track of the value of conversions | | `addConversionProduct` | 1: product identifier (string) | Keep track of number of products | | `setSharedPermissionKey` | 1: key identifier (string) | The key under which shared permission is saved to the server. This can be used while using cross-domain. Please refer to support for further information | ## Examples ### setEnvironment Select the environment to use in tag-loading, defaults to “prod”. ```javascript _st('setEnvironment', 'test'); ``` ### setPageStructure Identify the current page, components are used to form a tree structure. ```javascript _st('setPageStructure', 'default|structure'); ``` You can also use the following format: ```javascript st('setPageStructure', 'default', 'structure'); ``` ### setDefaultPageStructure Identify the fallback structure for the current page, components are used to form a tree structure. ```javascript _st('setDefaultPageStructure', 'default|structure'); ``` ### setStructurePrefix Set a prefix for the pagestructure which prepended to the configured structure. ```javascript _st('setStructurePrefix', 'special'); ``` ### addTagProperty Add a property to the current tag-set, the property will be forwarded to the remote system. ```javascript _st('addTagProperty', 'example', 'property'); ``` ### addLocalTagProperty Add a property to the current tag-set, the property will be kept locally in the browser. ```javascript _st('addTagProperty', 'exampleLocal', 'property'); ``` ### addTagProperties Add all object fields as properties to the current tag-set; the properties will be forwarded to the remote system. ```javascript _st('addTagProperties',  {'example': 'property', 'otherExample': property}); ``` ### addLocalTagProperties Add all object fields as properties to the current tag-set; the properties will be kept locally in the browser. ```javascript _st('addLocalTagProperties',  {'exampleLocal': 'property', 'otherLocalExample': property}); ``` ### resetTags Reset the page-structure and all previously configured properties. ```javascript _st('resetTags'); ``` ### addLocalTagProperties Add all object fields as properties to the current tag-set; the properties will be kept locally in the browser. ```javascript _st('addTagProperty', 'example', 'property'); ``` ### loadTags Activate the loading of the tags based on the settings added at this moment. ```javascript _st('loadTags'); ``` ### loadTags (shorthand 1) The same as the normal `loadTags` but with adding the page structure directly to the call. ```javascript _st('loadTags', 'homepage', 'product'); ``` ### loadTags (shorthand 2) The same as the normal `loadTags` but with adding the page structure and a set of normal `tagProperties` directly to the call. ```javascript _st('loadTags', 'homepage|product|details', {country:'be', language:'nl'}); ```