Question: I'm seeing this error "Uncaught TypeError: w[l].push is not a function" in my Google Tag Manager javascript. What's going on?

I'm using the normal GTM script, and I've got a simple dataLayer defined:

```
<script>
  dataLayer = {
    "foo": "bar"
  }
</script>

```

Answer: 
dataLayer **must** be a list of objects, not an object.

<https://developers.google.com/tag-manager/devguide?hl=en>

Instead of:

```
<script>
  dataLayer = {
    "foo": "bar"
  }
</script>

```

Use:

```
<script>
  dataLayer = [{
    "foo": "bar"
  }]
</script>

```
This error also occurs if you're using the dataLayer.push method with an = sign.

Wrong: `dataLayer.push = ({`
Correct: `dataLayer.push({`