First of all, you need to understand the concept of a goal. A goal is something that you want to track that the already existing analytics are not tracking—anything from a button click, downloads, specific page view, like a thank-you page after a checkout...etc.
The pageview goal is the easiest to set up and the conversion of the goal will happen once a visitor reaches a certain specified page.
A good example would be when you have a 'thank you' page after the conversion happened (newsletter, purchase, form submission...etc) where the user will land on after.
Custom goals will require some extra code implemented to the tracked website, which is specified when you create a new goal from the dashboard.
A custom goal is mainly used for when you want to track a specific event that happens on your website, which can't be tracked with the pageview method.
Some examples of where custom goals will shine are:
Here is what a javascript snippet would look like for goal tracking:
analytics.goal('my-goal');
When this code will trigger inside of your page, the goal conversion will be triggered as well on our side.
Here is an example of what the code would look like integrated into a button that will trigger the Goal event.
<button type="button" onclick="analytics.goal('my-goal')">Click me</button>