“JavaScript event” goal

This type of goal lets you track events on a site (button clicks, form submissions, and other events) that occur without the page URL changing. If the URL changes, use the Page view goal.

When this type of goal is completed, the information is transmitted to Yandex.Metrica using JavaScript. In this way, you can track almost any custom events.

In E-commerce, use the goal_id field to transmit information about a conversion along with data about the action.

Attention. Some users might complete the goal somewhere other than on the site, such as by making a phone call. To count these users, configure transmitting call tracker data to Yandex.Metrica. Then you can add calls to Yandex.Metrica reports and also use a special group of reports.
  1. How to create a “JavaScript event” goal
  2. Restrictions

How to create a “JavaScript event” goal

When you create a goal, you set its identifier. When a goal is completed, the reachGoal method is called, and the specified ID is passed to it.

This type of goal can be used on Turbo pages.


Use identifiers that aren't contained in the site's page URLs. Otherwise, statistics will also include session information for those pages that contain the goal name in the URL.

The following symbols are not allowed in goal identifiers: /, &, #, ?, =. If you want to add a plus sign to the ID, enter %2B in place of the + character.

  1. Use the reachGoal method on site pages.


    Clicking a button
    <form action="">
        <input type="button" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME'); return true;" value="Order" />


    • XXXXXX is the tag ID.
    • TARGET_NAME is the goal identifier.
    Filling in a form
    <form action="" method="get" onsubmit="ym(XXXXXX, 'reachGoal', 'TARGET_NAME'); return true;">


    • XXXXXX is the tag ID.
    • TARGET_NAME is the goal identifier.
  2. In Yandex.Metrica, go to Settings, open the Goals tab, and click Add goal.
  3. In the Name field, enter a name for the goal to create.
  4. Set the option to JavaScript event.
  5. Specify the ID of the goal.
  6. Click Add goal and save changes.
  7. Check whether the goal is working correctly.

Yandex.Metrica begins collecting statistics in just a few minutes after saving settings.


  • A maximum of 200 goals can be set for each tag.
  • The service registers a user completing the same goal on the same tag no more than once per second.
  • During a single user session, the service can register up to 400 completions of all the goals created for the tag.
  • If you edit the tag or a goal, all the previously collected information does not change.
  • If you delete a goal, the information collected for it will not be available in reports.

Select a question to find a solution.

Goals in Yandex.Metrica work the same way for any sources. Perhaps there aren't any users who have completed the goal from this source yet.

This might happen for the following reasons:
  • The goal condition in Yandex.Metrica doesn't cover all the possibilities. For example, the goal is set as going to the order confirmation page, but the site also allows quick orders without visiting this page.
  • The site user has a browser plugin that blocks the Yandex.Metrica tag, so this user isn't counted.
  • The user has an antivirus system with strict privacy settings.
  • The user has a slow internet connection, so the Yandex.Metrica tag didn't load on the target page.