Picking this up from Tomimi. This is exactly what I was trying to do until I ran into the same problem. I don't want to duplicate extension code across our 30+ profiles (and maintain each and every version of that code). The only solution I can think of is to have the extension code in an external S3 bucket and to have Tealium pull in the shared code via jQuery.getScript(). Not exactly an optimal solution and not without it's share of CORS issues.
Is there anything on the Tealium roadmap to address this limitation?
I'd be interested to understand why you need to scope the extension to a specific tag. What's preventing you from using "All Tags" scope in this case? You could also use "DOM Ready" if you want to make sure the code only runs once.
I agree that having the ability to scope extensions to specific tags within the profile that inherited it would be a useful addition, but unfortunately it's just not possible right now. I have internally logged a feature request to see if we can get this added, but this probably won't be available for some time.
If you can share some more details about your use case for this, we may be able to help you find a suitable workaround.
With enterprise solutions there are often multiple tags running (even multiple GA tags) to ensure that different teams/departments get the correct data delivered to their specific profiles and accounts (some accounts seperately tracking a specific subset of the data of other accounts). We don't necessarily want the same data written to the same custom dimensions for all profiles, which is something that these shared methods would end up doing for "All Tags".
I believe there must be multiple recognized use-cases since Tealium has specifically built this capability in to the platform rather than just offering "All Tags", "DOM Ready" and "Pre-Loader"
The timing of DOM Ready also isn't ideal. We often dispatch events between the time that Tealium has loaded everything and the DOM being ready, and so any event listeners loaded DOM Ready would not be available in time to catch the events.
I'll play around a bit and either post any solution I come up with or come back to you with a more specific example for brainstorming, if that is ok with you?