How can I change page elements (menu, blocks, etc) based on a chosen 'audience' link? There are many sites which allow users to select their "customer type" or "audience", which then displays different information on the front page and provides them with navigation and content appropriate for their needs. Banks, higher-education institutions, and medical providers do this often (http://chase.com, http://aetna.com).

I'm looking for the best way to implement this on a site I'll be developing over the next few weeks. I need the main navigation to change per audience and I'd like to show specific content on the home page and sidebars based on that context. I don't think I want to use subdomains or multi-site; it seems that there should be a better way.

I'd like the URL structure to look like "mysite.com/audience1", "mysite.com/audience2", "mysite.com/audience3", and so on for the front page. Deeper pages would follow that url prefix ("mysite.com/audience1/products/tools")

There are also 'global' resources which any audience would find useful and I've been wondering about how I'd handle that use-case as well.

Should I look into panels, context, display suite, other modules? Any guidance is appreciated. Thanks!
Explaining the whole process would be bit complicated 

i ll provide you some steps try to follow that. 

In our project the same structure you have mentioned is used we have global pages like mysite.com/products and some further branch level pages like mysite.com/chennai/products  

Step one: create a view page in views. 

Step two: create a taxonomy term reference for the audience.

step three: create a block and in contextual filter add taxonomy term as contextual filter and in provide default value give get taxonomy term by url. 

step four: for every content you create it should have the term reference field.

step five: when you pass the audience name in the url it should display the content related to the taxonomy term. 

step six: like wise you have to configure the block in all the pages 

step seven: in block settings give display only in that particular  page

now what this will do is for every block it will be displayed their content based on the url if you change the url to audience two it will show the content having the taxonomy term as audience two as their value. 

hope this will give you a start up for the task :p