{"id":1522,"date":"2026-01-13T07:25:31","date_gmt":"2026-01-13T07:25:31","guid":{"rendered":"https:\/\/documentation.iqonic.design\/streamit-laravel\/?p=1522"},"modified":"2026-03-11T04:42:12","modified_gmt":"2026-03-11T04:42:12","slug":"how-add-vast-custom-ads-integration-in-admin-panel","status":"publish","type":"post","link":"https:\/\/documentation.iqonic.design\/streamit-laravel\/how-add-vast-custom-ads-integration-in-admin-panel\/","title":{"rendered":"How Add VAST &amp; Custom Ads Integration in Admin Panel?"},"content":{"rendered":"<div class=\"nolwrap\">\n<p>This document explains <strong>how Admin users can configure and manage Ads in Streamit (Laravel Backend)<\/strong>. It covers both <strong>VAST Ads<\/strong> and <strong>Custom Ads<\/strong>, with <strong>step-by-step guidance<\/strong> and <strong>clear placement logic<\/strong>, ensuring easy understanding for non-technical users.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Overview<\/strong><\/h2>\n\n\n\n<p>Streamit provides <strong>two powerful advertising modules<\/strong>:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>VAST Ads Module<\/strong> \u2013 Automated, network-based video ads (programmatic).<\/li>\n\n\n\n<li><strong>Custom Ads Module<\/strong> \u2013 Manually managed, direct-sold or in-house ads.<\/li>\n<\/ol>\n\n\n\n<p>These modules are designed to <strong>maximize monetization<\/strong> while maintaining a <strong>smooth user viewing experience<\/strong> across <strong>Mobile App, Web, and TV App<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1\ufe0f\u20e3 VAST (Video Ad Serving Template) Module<\/strong><\/h2>\n\n\n\n<p>The <strong>VAST module<\/strong> allows integration with <strong>programmatic ad networks<\/strong> such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SpotX<\/li>\n\n\n\n<li>SpringServe<\/li>\n<\/ul>\n\n\n\n<p>VAST works via an <strong>XML-based Ad Tag URL<\/strong>, which the video player reads to fetch ads and tracking events automatically.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Ad Placement Logic &amp; Timing<\/strong><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">\u25b6\ufe0f Pre-roll Ads (Entry Ads)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger Logic:<\/strong> When the user clicks <strong>Play<\/strong><\/li>\n\n\n\n<li><strong>Displayed:<\/strong> Before the main content starts<\/li>\n\n\n\n<li><strong>Best Use:<\/strong> Highest monetization value<\/li>\n\n\n\n<li><strong>Ideal For:<\/strong> Short promos, brand ads, guaranteed impressions<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u23ef Mid-roll Ads (Engagement Ads)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger Logic:<\/strong> When <strong>50% of the video duration<\/strong> is completed<\/li>\n\n\n\n<li><strong>Displayed:<\/strong> During content playback<\/li>\n\n\n\n<li><strong>Best Use:<\/strong> Long-form content (Movies, TV Shows)<\/li>\n\n\n\n<li><strong>Ideal For:<\/strong> TV-style commercial breaks<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u23f9 Post-roll Ads (Retention Ads)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger Logic:<\/strong> When <strong>10% of the video duration remains<\/strong><\/li>\n\n\n\n<li><strong>Displayed:<\/strong> Just before content ends<\/li>\n\n\n\n<li><strong>Best Use:<\/strong> Retention &amp; promotions<\/li>\n\n\n\n<li><strong>Ideal For:<\/strong> Upcoming releases, next episode promos<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udfe6 Overlay Ads (Non-Interruptive Ads)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger Logic:<\/strong> After <strong>10% of content playback<\/strong><\/li>\n\n\n\n<li><strong>Displayed:<\/strong> Small banner over the video player<\/li>\n\n\n\n<li><strong>Video Playback:<\/strong> Continues in background<\/li>\n\n\n\n<li><strong>Best Use:<\/strong> Brand visibility without interruption<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Technical Constraints &amp; Targeting<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Granular Targeting:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Assign VAST ads to <strong>specific Movies, Episodes, or Videos<\/strong><\/li>\n\n\n\n<li>Serve context-aware ads based on content<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Protocol Requirement:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Must be a <strong>valid XML VAST URL<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u26a0\ufe0f Compatibility Note:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Mid-roll, Post-roll, and Overlay ads are NOT supported<\/strong> for:\n<ul class=\"wp-block-list\">\n<li>Vimeo videos<\/li>\n\n\n\n<li>Embedded videos<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Reason: Third-party players have their own ad logic<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Admin Steps \u2013 How to Add VAST Ads<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0f Navigate to the&nbsp;<strong>Admin Panel<\/strong>&nbsp;and open the&nbsp;<strong>Ads Manager<\/strong>&nbsp;module.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0f Click on <strong>New<\/strong> button<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"945\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2025\/08\/image.png\" alt=\"\" class=\"wp-image-1264\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0f Fill required details:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ad Type: <strong>VAST<\/strong><\/li>\n\n\n\n<li>Placement: Pre-roll \/ Mid-roll \/ Post-roll \/ Overlay<\/li>\n\n\n\n<li>VAST XML URL<\/li>\n\n\n\n<li>Content Targeting (Movie \/ Episode \/ Video)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1598\" height=\"645\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2026\/01\/image-9.png\" alt=\"\" class=\"wp-image-1525\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0f Click <strong>Save<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"945\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2025\/08\/image-1.png\" alt=\"\" class=\"wp-image-1265\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>User Side Display<\/strong><\/h3>\n\n\n\n<p>you can see the added details.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"945\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2025\/08\/image-2.png\" alt=\"\" class=\"wp-image-1266\" \/><\/figure>\n\n\n\n<p><strong>User Side show <\/strong><\/p>\n\n\n\n<p><strong>1.<\/strong> <strong>Website View:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1599\" height=\"881\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2026\/01\/image-12.png\" alt=\"\" class=\"wp-image-1535\" \/><\/figure>\n\n\n\n<p><strong>2.<\/strong> <strong>Mobile View:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"505\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2026\/01\/image-25.png\" alt=\"\" class=\"wp-image-1538\" \/><\/figure>\n\n\n\n<p><strong>INFO<\/strong><\/p>\n\n\n\n<p>Mid-roll, post-roll, and overlay ads are <strong>not displayed<\/strong> within Vimeo &amp; embedded movies, TV shows, or videos in the application.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2\ufe0f\u20e3 Custom Ads Module<\/strong><\/h2>\n\n\n\n<p>The <strong>Custom Ads module<\/strong> allows Admins to manage <strong>direct-sold or in-house ads<\/strong> without any third-party network.<\/p>\n\n\n\n<p>This is ideal if you want to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Promote your own content<\/li>\n\n\n\n<li>Run local partner ads<\/li>\n\n\n\n<li>Advertise subscription plans or offers<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Placement Categories<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Home Page Placement<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Visual:<\/strong> Banner on Streamit Home Page<\/li>\n\n\n\n<li><strong>Strategy:<\/strong> High visibility<\/li>\n\n\n\n<li><strong>Best Use:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Flash sales<\/li>\n\n\n\n<li>New features<\/li>\n\n\n\n<li>Brand takeovers<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u25b6\ufe0f<\/strong> <strong>Player Placement (Interactive Pop-up)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Visual:<\/strong> Pop-up modal when user clicks <strong>Watch Now<\/strong><\/li>\n\n\n\n<li><strong>User Action:<\/strong> Must close or click to continue<\/li>\n\n\n\n<li><strong>Best Use:<\/strong> High-impact promotions<\/li>\n\n\n\n<li><strong>Targeting Options:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Specific Movie<\/li>\n\n\n\n<li>Specific Episode<\/li>\n\n\n\n<li>Specific Video<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83e\uddfe<strong> Banner Placement (Contextual Ads)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Visual:<\/strong> Banner below content title or description<\/li>\n\n\n\n<li><strong>Displayed On:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Movie Details Page<\/li>\n\n\n\n<li>Episode Page<\/li>\n\n\n\n<li>Video Page<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Best Use:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Non-intrusive ads<\/li>\n\n\n\n<li>Long visibility during content browsing<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\uddc2<strong> Media Management &amp; Redirection<\/strong><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udce6 Supported Media Types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Images: JPG, PNG<\/li>\n\n\n\n<li>Videos: MP4<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udf10 Source Flexibility<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Upload to <strong>Local Server<\/strong> (better speed)<\/li>\n\n\n\n<li>Use <strong>External URL<\/strong> (saves storage)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd17 Redirect URL<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Every Custom Ad supports a <strong>Redirect Link<\/strong><\/li>\n\n\n\n<li>Clicking the ad can redirect users to:\n<ul class=\"wp-block-list\">\n<li>Subscription upgrade page<\/li>\n\n\n\n<li>External website<\/li>\n\n\n\n<li>Partner promotion page<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Admin Steps \u2013 How to Add Custom Ads<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0fNavigate to the&nbsp;<strong>Admin Panel<\/strong>&nbsp;and open the&nbsp;<strong>Ads Manager<\/strong>&nbsp;module.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0f Click <strong>New<\/strong> button<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"945\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2025\/08\/image-3.png\" alt=\"\" class=\"wp-image-1267\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0f Fill required details:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ad Type: <strong>Custom Ad<\/strong><\/li>\n\n\n\n<li>Placement: Home \/ Player \/ Banner<\/li>\n\n\n\n<li>Media Upload or External URL<\/li>\n\n\n\n<li>Redirect URL<\/li>\n\n\n\n<li>Content Targeting (if applicable)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1598\" height=\"640\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2026\/01\/image-10.png\" alt=\"\" class=\"wp-image-1526\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4<\/strong><\/h3>\n\n\n\n<p>\u27a1\ufe0f Click <strong>Save<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"945\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2025\/08\/image-5.png\" alt=\"\" class=\"wp-image-1269\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>User Side Display<\/strong><\/h3>\n\n\n\n<p>You can see the added details.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"945\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2025\/08\/image-4.png\" alt=\"\" class=\"wp-image-1268\" \/><\/figure>\n\n\n\n<p><strong>User Side show <\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"884\" src=\"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-content\/uploads\/sites\/5\/2025\/08\/Screenshot_20250812_174358-1.png\" alt=\"\" class=\"wp-image-1275\" \/><\/figure>\n\n\n\n<p><\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>This document explains how Admin users can configure and manage Ads in Streamit (Laravel Backend). It covers both VAST Ads and Custom Ads, with step-by-step guidance and clear placement logic, ensuring easy understanding for non-technical users. Overview Streamit provides two powerful advertising modules: These modules are designed to maximize monetization while maintaining a smooth user [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"parent":165,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1522","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"featured_image_src":null,"author_info":{"display_name":"laraveladminiq","author_link":"https:\/\/documentation.iqonic.design\/streamit-laravel\/author\/laraveladminiq\/"},"children":[],"_links":{"self":[{"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/posts\/1522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/comments?post=1522"}],"version-history":[{"count":10,"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/posts\/1522\/revisions"}],"predecessor-version":[{"id":1846,"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/posts\/1522\/revisions\/1846"}],"up":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/posts\/165"}],"wp:attachment":[{"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/media?parent=1522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/categories?post=1522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/streamit-laravel\/wp-json\/wp\/v2\/tags?post=1522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}