Toggl allows you to group your data in various categories (projects, clients, tags, etc). It's worth pointing out that the "names" of these structures are totally arbitrary terms. Anything can be a client and anything can be a project. If you don't have a need for both clients and projects, just use projects. There is nothing preventing you from naming your project "Client McClient".
Data hierarchy from top to bottom
Can be associated with multiple projects. Can't be directly associated with time entries.
The main organizational structure in Toggl. Can be associated with just one client. Can contain multiple time entries. Billable rates, estimates and other features are defined on the project level.
A single task can't be associated with multiple projects. Please note that tasks are a paid feature.
The object that contains the actual time information. Can be directly associated with tasks and project, but not clients (that connection is made through projects).
These exist on the same "level" as time entries. Tags are essentially a way to provide extra information about an individual time entry. Most often used to mark time as invoiced or billed.