実現させたいこと
表示しているバナー広告が動画のとき全画面再生を阻止してインライン再生にしたいです。
起こっていること
iosで広告は表示されるが、300×250のバナー広告で動画が流れる場合、全画面に動画が表示されてしまいます。たまに全画面→戻る→全画面というループ処理になることもあります。これをインライン再生することは可能でしょうか?ご回答よろしくお願いいたします。
概要
使用している広告配信プラットフォームはAd Generation(アドジェネ)バナー広告 300×250を使用しています。
以下のサイトを参考にして広告を表示させました↓
https://github.com/AdGeneration/SDK/wiki/Banner_Ad_Monaca
Ad Generation(アドジェネ)↓
https://supership.jp/business/adgeneration/
試したこと
以下のサイトを参考に下記のコードを追加してビルドしましたが、変わらず全画面表示になってしまいます。
config.xml
1<preference name="AllowInlineMediaPlayback" value="true"/>
AllowInlineMediaPlayback(ブール値、デフォルトはfalse): ネイティブコントロールではなくブラウザ提供のコントロールを使用しtrueて、HTML5メディアの再生を画面レイアウト内にインラインで表示できるように設定します。これを機能させるには、任意の要素にwebkit-playsinline属性を追加します。
https://cordova.apache.org/docs/en/3.1.0/guide/platforms/ios/config.html
バージョン
プラットフォーム:Monaca
テンプレート : Onsen UI V2 JS Tabbar
iosのプラットフォーム : 6.2.0
Xcode : 13
Cordova version : 10.0.0
該当のソースコード
html
1<div id="adg1"></div>
javascript
1makeADGTag('xxxxxx','adg1', '300', '250');
javascript
1function makeADGTag(adid , divid, width, height){ 2 var adg = document.getElementById(divid); 3 var script = document.createElement('script'); 4 script.type = 'text/javascript'; 5 6 // async=trueにすることによって非同期に対応されます 7 script.src ='https://i.socdm.com/sdk/js/adg-script-loader.js?id=' + adid + '&adType=FREE&width='+ width +'&height='+ height +'&displayid=0&targetID=adgAd_' + divid + '&async=true'; 8 9 if(adg != null){ 10 adg.appendChild(script); 11 } 12 adg.style.display = 'none'; 13 var count = 0; 14 var timer = setInterval(function checkAd(){ 15 count++; 16 if(count > 100){ 17 clearInterval(timer); 18 return; 19 } 20 if(checkADGTag(adg) === true){ 21 clearInterval(timer); 22 adg.style.display = 'inline'; 23 } 24 },100); 25} 26 27// aタグを探す 28function checkADGTag(obj){ 29 var links = obj.getElementsByTagName('a'); 30 var frms = obj.getElementsByTagName('iframe'); 31 if(links.length > 0){ 32 makeADGLink(links); 33 return true; 34 } 35 36 var res = false; 37 for(var i = 0; i < frms.length; i++){ 38 if(checkADGTag(frms[i].contentWindow.document) === true){ 39 res = true 40 } 41 } 42 return res; 43} 44 45// aタグを置換する 46function makeADGLink(arr){ 47 for(var i = 0; i < arr.length; i++){ 48 (function(a) { 49 var href = a.href; 50 a.href = '#'; 51 a.onclick = function(){ 52 var ref = window.open(href, '_system'); 53 return false; 54 } 55 })(arr[i]); 56 } 57}
あなたの回答
tips
プレビュー