I am wondering what is the best practice for categorizing or tagging assets in Adobe Experience Manager by the channel they are going to be used in?
I have thousands of assets in my organization, I would like to tag them at "print ready assets", "ecommerce assets", "email assets", "direct mail assets" etc...
Then I have a separate process where I will call the AEM API to retrieve an asset by category. This way if I am doing print production I can grab only those assets that are related to print production.
What you're talking about is similar to what I'd call an Asset Type metadata concept and it's pretty common--our clients would very commonly have a tag structure under an Asset Type namespace that would include several types of photography (e.g. lifestyle, product, executive headshots), collateral (e.g. brochures, sales sheets, white papers), advertisements (e.g. banner ads), and so forth.
Your focus on the appropriate distribution channel is another concept that is less commonly used, but can be helpful as you've found. The reason it's less common is that many assets in a DAM might be appropriate for multiple channels. In particular, if the DAM is handling renditions well, then a single photo could be renditioned for print or web or email.
There are a lot of other common taxonomical concepts for a robust DAM. Some are quite common across a lot of clients such as Asset Status (e.g. New, Reviewed, Selected, Retouched, Final). Some are very specific to various clients (e.g. tags for product category, source of asset, regulatory status, applicable geography, language, demographics of models). The trick for each company is to come up with a taxonomical structure that is detailed enough to provide good search (either for users in the DAM or for a programmatic access like you're working with) while not overburdening the team members responsible for applying tags to those assets.
Hope this helps! Glad to discuss the specific problems if this doesn't give you enough detail to go forward.