// // Keyed off DOCUMENT_ROOT rather than __DIR__ on purpose. Every docroot is // a sibling of _universal on all three servers (/var/www on SAAS and WDN, // ~/public_html on WHOIS), so this one line is correct everywhere AND at // any depth. __DIR__ . '/../_universal/...' only resolves correctly from a // file sitting directly in the docroot: from something like // blocks/head.php it silently points at /blocks/../_universal, // which does not exist. A third of these sites emit their head from a // subdirectory, so that form would have failed on about a dozen of them. // // An absolute path would need a different line per server, which is the // drift this file exists to remove. // // Safe to include more than once per request; it emits on the first call // and no-ops afterwards. // // // TO CHANGE A TAG, OR SWITCH A SITE ON // // Edit $GA_MEASUREMENT below. Nothing else anywhere needs touching, on any // server, for any site. That is the entire point of this file. // // A host with no entry below emits NOTHING - not an empty script tag, not // a comment. So the include can be rolled out to every site first, with // zero change to any page, and the tags switched on later by editing this // file alone. Rolling out the include and turning on tracking are // deliberately two separate, independently reversible steps. // // // WHAT THIS DOES NOT COVER, AND WHY // // Only pages that route through a site's index.php get a tag, because // that is where the include goes. Pages reached directly, and any static // .html left in a docroot, are not covered. That is an accepted decision, // not an oversight: those files are being cleaned up so that index.php is // the only thing emitting a head, and coverage improves on its own as that // lands. See the exceptions list below for the current gaps. // // // EXCEPTIONS - sites deliberately or unavoidably not covered right now. // Keep this list current. It is the only record of what is missing. // // bytomasz.com user domain, out of scope by decision // darataylor.com user domain, out of scope by decision // // calodash.com has no index.php at all, so there is no front // door to put the include in. Needs a look before // it can be covered. // // actoremail.com no docroot of their own on SAAS, WDN or WHOIS. // findhealthspa.com Both resolve and serve pages, so each is aliased // onto some other vhost or pointed at another // folder. Where they are actually served from is // unresolved. // // Legacy static .html pages, roughly 134 of them across the estate and // concentrated in everysingleblog.com, mueue.com, reels.link, // hiredactor.com and actorslinkup.com. Not reachable from PHP, so nothing // here can tag them. They go away with the index.php cleanup. // // // Measurement IDs, keyed by bare host - no www, no port, lowercase. // // Empty on purpose until the GA4 properties exist. Add entries as // 'domain.com' => 'G-XXXXXXXXXX'. // $GA_MEASUREMENT = array( // 'webforactors.com' => 'G-...', // 'actorsforum.com' => 'G-...', // 'youbackstage.com' => 'G-...', ); // // Nothing below here should need editing to add or change a site. // // Never during CLI or cron work: those have no page to tag and no host to // key off, and a stray script tag in generated output is a real bug. if( PHP_SAPI === 'cli' ) return; // One tag per request. Guards against a page that includes this from both a // head partial and its own , which would otherwise double-count every // pageview in that property. if( defined( 'GA_TAG_EMITTED' ) ) return; // Host as the config is keyed: strip the port, drop a leading www, lowercase. $GA_HOST = strtolower( (string) ( $_SERVER['HTTP_HOST'] ?? '' ) ); $GA_HOST = explode( ':', $GA_HOST )[0]; $GA_HOST = preg_replace( '/^www\./', '', $GA_HOST ); if( $GA_HOST === '' || empty( $GA_MEASUREMENT[ $GA_HOST ] ) ) return; $GA_ID = $GA_MEASUREMENT[ $GA_HOST ]; // Belt and braces. Everything in the array is ours and static, but this is // echoed into a script tag on every page of every site, so it is validated // rather than trusted: a typo that broke the shape would break every page it // reached, not just fail to track. if( !preg_match( '/^G-[A-Z0-9]{4,20}$/', $GA_ID ) ) return; define( 'GA_TAG_EMITTED', true ); ?> Build a smart actor website in 90 seconds! Click here to begin.
WRITING OUT LOUD WORKSHOP & PERFORMANCE
Actors Art Theatre Artists write original material using simple storytelling and improv exercises. This writing workshop is especially for actors who want to perform their own material. Participants have opportunities to perform in our monthly 'Critics Pick' production of "Writing Out Loud." (4 group sessions and two private sessions-individually scheduled.)

Located at 6128 Wilshire Blvd., Ste. 110 , Los Angeles, CA
Call Actors Art Theatre at 323-857-5891
» singing-speech-for-actors-level-i » Return to Tutorial Pages » Actor Websites 07.26.2025 A Card That Takes Casting Straight to Your Website
05.24.2025 Your Credits Laid Out as a Career at a Glance
Niche professional websites for people in the film and TV industry.
Weeee, you found me!
I'm your buddy Bottie, I was hiding behind the scenes, but now that you've found me I'd be happy to tell you what I'm doing.
I just wrote a few fun facts about Web For Actors
Would you like to take a look?
Click here to check them out. I hope it will cause involuntary audible response.