Repository navigation
Technical Plugin GoogleAds_IMA
Integrates VAST advertising with the player's IMA rendering path.
Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.
- Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
- Code ownership: independently versioned plugin repository.
- Reported version:
5.8. - Source revision:
d99f83ab9685cbd79bdf5357e50730af50786b02. - Entry class file: GoogleAds_IMA.php.
Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.
| Plugin | Required by declaration | Source reason |
|---|---|---|
| AD_Server | Optional | Optional alternate/fallback ad rendering integration |
| Override | Implementation |
|---|---|
getTags() |
GoogleAds_IMA.php:23 |
getDataObjectDeprecated() |
GoogleAds_IMA.php:88 |
getDataObjectAdvanced() |
GoogleAds_IMA.php:92 |
getHeadCode() |
GoogleAds_IMA.php:222 |
afterVideoJS() |
GoogleAds_IMA.php:253 |
profileTabName($users_id) |
GoogleAds_IMA.php:313 |
profileTabContent($users_id) |
GoogleAds_IMA.php:319 |
getPermissionsOptions() |
GoogleAds_IMA.php:402 |
getPluginMenu() |
GoogleAds_IMA.php:426 |
These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.
| Field | Literal default or expression type | Literal source label/help | Evidence |
|---|---|---|---|
adTagUrl |
Computed/structured; inspect source | AD Tag URL: AD Tag URL | source |
adTagUrlForKids |
Computed/structured; inspect source | AD Tag URL For Kids: This will be used when the video is made for kids | source |
doNotShowAdsForPaidUsers |
true |
Do not show ads for paid users | source |
disableVastProxy |
true |
Disable VAST Proxy: By default, external VAST URLs are proxied through your server to avoid CORS issues. Disable this if ads are not playing and your ad server supports direct browser access. | source |
prerollLive |
true |
Pre Roll Live Stream | source |
start |
true |
Show AD on Start | source |
mid25Percent |
true |
Show AD on 25% of the video | source |
mid50Percent |
true |
Show AD on 50% of the video | source |
mid75Percent |
true |
Show AD on 75% of the video | source |
end |
true |
Show AD at the end of the video | source |
timeIntervalInSeconds |
Computed/structured; inspect source | Show AD in a specific time | source |
preAdTagUrl |
'' |
Pre AD Tag: This Tag will be played on the first position for any AD request | source |
usersCanSetTheirOwnVideoAdsVASTURL |
false |
Users can set their own video Ads VAST URL | source |
This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.
| File | Source role | Direct request fields observed |
|---|---|---|
| GoogleAds_IMA.php | plugin entry class |
optionalAdTagUrl, u, videoName
|
| VMAP.php | PHP page/include/worker; inspect caller |
cleanKey, encodedPass, ifa, ifa_type, json, lat, liveLink, live_servers_id, lon, optionalAdTagUrl, pass, u_paln, user, videos_id, vmap_id
|
| index.php | PHP page/include/worker; inspect caller | — |
| profileTabContent.php | PHP page/include/worker; inspect caller | — |
| profileTabName.php | PHP page/include/worker; inspect caller | — |
| saveVASTADSURL.json.php | JSON entry point; inspect caller and guard | VASTADSURL |
| vastProxy.php | PHP page/include/worker; inspect caller | url |
No CREATE TABLE names were extracted from available plugin SQL. The plugin can still use core tables, PHP-created schema or another component's data. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.
Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.
| Function or method | Source |
|---|---|
getPluginDependencies() |
15 |
getTags() |
23 |
getDescription() |
31 |
getName() |
39 |
getPluginVersion() |
44 |
shouldProxyVastURL($url) |
49 |
getVastProxyURL($url) |
72 |
getUUID() |
82 |
getDataObjectDeprecated() |
88 |
getDataObjectAdvanced() |
92 |
getEmptyDataObject() |
113 |
isToShowAds() |
199 |
getHeadCode() |
222 |
afterVideoJS() |
253 |
profileTabName($users_id) |
313 |
profileTabContent($users_id) |
319 |
getUserVASTADSURL($users_id, $OptionalADTagURL = 0) |
325 |
setUserVASTADSURL($users_id, $value) |
343 |
getUserVASTADSURLFromVideos_idOrDefault($videos_id, $OptionalADTagURL = 0) |
352 |
getPermissionsOptions() |
402 |
canSetAdsVASTURL() |
413 |
getPluginMenu() |
426 |
These symbols are grouped by source file; inspect the class declaration and visibility before calling them.
| Named symbol | Source |
|---|---|
format($seconds) |
13 |
processTimeOffset() |
21 |
| Named symbol | Source |
|---|---|
googleAdsImaRewriteWrappedVastUris($content) |
9 |
- Check the installed/enabled version and the dependencies/settings above.
- Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
- Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
- Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.
Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.
Start
Install and update
- Install on Ubuntu 24.04 or 26.04
- Installation Setup Page
- Scheduler cron job (required)
- Set up email
- Use HTTPS
- Own Encoder
- Docker
- Update AVideo
- Backup
- Secure file permissions
- Server command-line tools
- Hidden configuration options
Videos
- Upload a video
- Local Encoder (on your computer)
- Bulk upload by FTP
- Import a channel
- Publish on YouTube and social media
- Privacy options
- Only for logged-in users
- Resolutions by user group
- Storage options
- Move and protect video files
- Video does not play
Users
Live
- Make a live stream
- Stream with OBS
- Own live server
- One live server, many sites
- Live server install errors
- Live does not play
Plugins
Problems
Other
- Translate your site
- Write a plugin (developers)
- Technical reference (developers and advanced administrators)
Old and retired guides