There are no definitive rules, we can only give you a few hints.
The main difference between snap and .deb packages is that snaps are sandboxed and self-contained, while .deb packages are not.
Sandboxed means isolated (to some extent) from the rest of the system; for example, snaps usually can't access files outside your home directory, unless specifically configured to do so. So you should install a snap version of the application if the application does a job that is relatively independent from the system as a whole - for example software for video editing or numerical calculations, or a game. Everything that is closely integrated with the system (for example a screenshot utility, or an alternative file manager) works best with .deb packages.
Self-contained means that a snap package contains everything that is needed to run the application - not only the application itself, but also all libraries it requires. These libraries may be in different (even conflicting) versions than the libraries already present on your system. With .deb packages it's not the case; usually the .deb package for an application contains only the application, and it depends on multiple other .deb packages containing the required libraries, which are installed separately (those other packages are commonly called "dependencies", and we often say that a .deb package "pulls in the dependencies" when installed). However, there is a single set of libraries installed via .deb packages which is used by all applications installed via .deb packages, and you cannot have two versions of a library that conflict with each other.
Because of these two things:
- snaps usually use more disk space than .deb packages
- snap applications may use more RAM than applications installed as .deb packages
- snap applications may have slower startup time than applications installed as .deb packages (the difference is only in startup time; once started, there's no difference in speed)
- when you uninstall a snap application, it is uninstalled together with all the libraries it has "pulled in"; when you uninstall a .deb application, all the dependencies it has "pulled in" remain installed; you can uninstall them manually, but you have to know how to identify them
Snaps also ensure that you always have the newest version of the application, while with .deb packages it may not be the case, especially with LTS Ubuntu releases (the versions of most applications are "frozen" at the moment the system is released and usually only security updates are provided - without new features - while the upstream application may already have progressed quite a few versions).
Personally I think that snaps are good to:
- test unknown software that you are not sure whether you want to use it or not; to be able to easily uninstall without messing up the system
- install an application that pulls in lots of dependencies that may be in conflict or unsupported on your current system; for example an application written for a different desktop environment (like installing a KDE application under GNOME)
- install a newer version of an application than the .deb version included in your Ubuntu release
Other than that, I would prefer .deb packages. But it's just my preference.