Requires authorization
Updates a GTM macro. Try it now or see an example.
Request
HTTP request
PUT https://www.googleapis.com/tagmanager/v1/accounts/accountId/containers/containerId/macros/macroId
Parameters
Parameter name | Value | Description |
---|---|---|
Path parameters | ||
accountId |
string |
The GTM Account ID. |
containerId |
string |
The GTM Container ID. |
macroId |
string |
The GTM Macro ID. |
Optional query parameters | ||
fingerprint |
string |
When provided, this fingerprint must match the fingerprint of the macro in storage. |
Authorization
This request requires authorization with the following scope (read more about authentication and authorization).
Scope |
---|
https://www.googleapis.com/auth/tagmanager.edit.containers |
Request body
In the request body, supply a Macros resource with the following properties:
Property name | Value | Description | Notes |
---|---|---|---|
Required Properties | |||
parameter[].type |
string |
The parameter type. Valid values are:
Acceptable values are:
|
writable |
type |
string |
GTM Macro Type. | writable |
Optional Properties | |||
disablingRuleId[] |
list |
For mobile containers only: A list of rule IDs for disabling conditional macros; the macro is enabled if one of the enabling rules is true while all the disabling rules are false. Treated as an unordered set. | writable |
enablingRuleId[] |
list |
For mobile containers only: A list of rule IDs for enabling conditional macros; the macro is enabled if one of the enabling rules is true while all the disabling rules are false. Treated as an unordered set. | writable |
name |
string |
Macro display name. | writable |
notes |
string |
User notes on how to apply this macro in the container. | writable |
parameter[] |
list |
The macro's parameters. | writable |
parameter[].key |
string |
The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values. | writable |
parameter[].list[] |
list |
This list parameter's parameters (keys will be ignored). | writable |
parameter[].map[] |
list |
This map parameter's parameters (must have keys; keys must be unique). | writable |
parameter[].value |
string |
A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type. | writable |
scheduleEndMs |
long |
The end timestamp in milliseconds to schedule a macro. | writable |
scheduleStartMs |
long |
The start timestamp in milliseconds to schedule a macro. | writable |
Response
If successful, this method returns a Macros resource in the response body.
Examples
Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).
Java
Uses the Java client library.
/* * Note: This code assumes you have an authorized tagmanager service object. */ /* * This request updates an existing macro for the authorized user. */ // Construct the macro object. Macro macro = new Macro(); macro.setName("Updated URL Macro"); macro.setType("u"); // Construct the parameters. Parameter arg0 = new Parameter(); arg0.setType("template"); arg0.setKey("component"); arg0.setValue("URL"); Parameter arg1 = new Parameter(); arg1.setType("template"); arg1.setKey("customUrlSource"); arg1.setValue("{{element}}"); // set the parameters on the macro. macro.setParameter(Arrays.asList(arg0, arg1)); try { Macro response = tagmanager.accounts().containers(). macros().update("123456", "54321", "18", macro).execute(); } catch (GoogleJsonResponseException e) { System.err.println("There was a service error: " + e.getDetails().getCode() + " : " + e.getDetails().getMessage()); } /* * The results of the update method are stored in the response object. * The following code shows how to access the updated name and fingerprint. */ System.out.println("Updated Name = " + response.getName()); System.out.println("Updated Fingerprint = " + response.getFingerprint());
Python
Uses the Python client library.
# Note: This code assumes you have an authorized tagmanager service object. # This request updates an existing macro for the authorized user. try: response = tagmanager.accounts().containers().macros().update( accountId='123456', containerId='54321', macroId='19', body={ 'name': 'Sample URL Macro', 'type': 'u', 'parameter': [ { 'type': 'template', 'key': 'component', 'value': 'URL' }, { 'type': 'template', 'key': 'customUrlSource', 'value': '{{element}}' } ] } ).execute() except TypeError, error: # Handle errors in constructing a query. print 'There was an error in constructing your query : %s' % error except HttpError, error: # Handle API errors. print ('There was an API error : %s : %s' % (error.resp.status, error.resp.reason)) # The results of the update method are stored in the response object. # The following code shows how to access the updated name and fingerprint. print 'Updated Name = %s' % response.get('name') print 'Updated Fingerprint = %s' % response.get('fingerprint')
Try it!
Use the APIs Explorer below to call this method on live data and see the response.