Home » Android » android – Google Tag Manager throws "invalid macro" message

android – Google Tag Manager throws "invalid macro" message

Posted by: admin June 15, 2020 Leave a comment

Questions:

I’ve been trying out Google Tag Manager for mobile devices, specifically Android but I keep getting a message saying “invalid macro” when trying getString(myKeyValue) on a Container.

Here’s a part of my code in my MainActivity:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtHello = (TextView)findViewById(R.id.txtHello);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String hello = mContainer.getString("hello");
                long l = mContainer.getLong("long");
                txtHello.setText(hello + l);
            }
        });
        tagManager = TagManager.getInstance(this);
        ContainerOpener.openContainer(tagManager, CONTAINER_ID, OpenType.PREFER_NON_DEFAULT, null, new ContainerOpener.Notifier() {


        @Override
        public void containerAvailable(Container container) {
            mContainer = container;

        }

    });


}

I’ve added these permissions in the manifest:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

I have the right Container_id because it shows the right version after refreshing it programmatically.

And this is my assets/tagmanager/CONTAINER_ID.json file (of course with the right filename):

{
'hello': 'hola',
 'long' : '12345679'

}

So after my container is initialized, I press a button that runs the code above, trying to get the values. But I get the error: “Invalid macro: hello” and “Invalid macro: long”, also
“Failed to convert ” to a number”

This is a new service for mobile devices but can anybody help me with this?

How to&Answers:

I’ve found a problem for my case. I just downloaded a version from the web browser manager.
The important thing is to add a rule that allows GTM to use this macro. Always comes in handy here.

Don’t forget to publish the version of your container

Answer:

For people not getting what dumazy referring to

enable custom variables

you’ll also need to enable it with Always or any other appropriate rules

Answer:

In your json you are using ‘123456’ quotas to define long, you should not:

{
    'string': 'hola',
    'long': 123456,
    'double': 123.123
}

If you have further problems look on: Android TagManager not getting default values