This is quite common actually, but easily avoidable once you know why 😃
The most common situation for these invalid action errors is this:
- You load a link or page > go to some lander. The tracker thinks you are on the lander node
- You click the action link. The tracker sees you are on the lander > executes action 1 > redirects you to the offer. The tracker now thinks you are on the offer node
- You go back to the previous lander, usually because the action link opened in a new tab, or you used the back button and your lander doesn't have our JS on it. You're now on the lander node, but the tracker thinks you are on the offer node.
- You click the action link. Now, if the action URL does not contain data that tells the tracker you are a repeat click from the lander, or if this is not in referrer, then the tracker still thinks you are on the offer node.
- The tracker tries to execute action 1 on the offer node, but it doesn't exist, so it returns the error you posted.
There's a few ways to ensure that this doesn't happen:
- The #1 way is to put our JS on your pages, using the code you get from the edit lander dialog (or funnel builder > get links/JS for that page). This way when the page loads, our JS scans for action links and injects the visitor's ID into the link, along with the node they are coming from. With this, repeat clicks have clear context for the tracker.
- Aside from that, the referrer on link click also helps. But, Chrome truncates referrer by default now, passing only domain.com instead of domain.com/some-page/. This makes it impossible for the tracker to know which page the click came from and whether it was from the lander again. For this, you can, as a good habit, add this meta tag to all your pages:
<meta name="referrer" content="no-referrer-when-downgrade" />
Regarding default parameters: these default parameters are not overrides, but rather fallbacks the tracker will use if it has no context/info about the user.
I mean these parameters:
If the tracker knows what node/funnel the user is in, it will always execute the relevant action. If that action doesn't exist on that node, you get this error.
These default params above rarely get used actually -- its bad if they have to get used, as it indicates tracking has fallen apart and some fallbacks had to be relied on!