La riproduzione automatica è supportata su computer e dispositivi web mobile.
A partire da Chrome 53 e iOS 10, Android e iPhone supportano la riproduzione automatica in linea con audio disattivato.
Safari 11 per computer ha cambiato il modo in cui gestisce la riproduzione automatica. video. Google Chrome ha apportato una modifica simile nell'aprile 2018.
Se al momento il tuo sito web riproduce automaticamente i video, aggiorna per gestire questi nuovi criteri. Il nuovo campo Tentativo di riproduzione automatica del codice esempio dimostra come tentare di riprodurre automaticamente un video e tornare click-to-play se la riproduzione automatica non va a buon fine. Questa guida illustra il nuovo esempio.
Rilevare la riproduzione automatica riuscita o non riuscita in un browser
Attualmente, i browser web non offrono una semplice query per verificare se la riproduzione automatica è supportati o meno. L'unico modo per verificare se un video può essere riprodotto automaticamente è prova a suonarlo.
Questo approccio è dimostrato nel seguente snippet di codice:
var contentVideo = document.getElementById('myVideo');
var promise = contentVideo.play();
if (promise !== undefined) {
promise.then(_ => {
// Autoplay worked!
}).catch(error => {
// Autoplay failed.
});
}
Il codice chiama innanzitutto play()
su un elemento video HTML5 che restituisce un
Promise
Nel nostro campione,
Promise
viene utilizzato per rilevare la funzionalità di riproduzione automatica e impostare il
AdsRequest
in modo appropriato.
Riproduzione automatica e IMA
L'SDK IMA AdsRequest
ha due campi relativi alla riproduzione automatica che devi
offerta:
setAdWillAutoPlay
e setAdWillPlayMuted
.
La prima garantisce che l'ad server restituisca solo gli annunci autorizzati a
essere riprodotti automaticamente (se impostato su true)
e la seconda garantisce che l'ad server
restituisce solo gli annunci che possono essere avviati con l'audio disattivato o riattivato.
Il nostro campione utilizza il video di contenuti per indicare se il browser o meno
supporta la riproduzione automatica. Effettua due controlli che portano a tre potenziali risultati:
Per effettuare questi controlli, prova a riprodurre il video di contenuti e a controllare l'oggetto restituito
Promise
:
var adsInitialized, autoplayAllowed, autoplayRequiresMuted;
// Called on page load.
function init() {
videoContent = document.getElementById('contentElement');
playButton = document.getElementById('playButton');
// Hide the play button unless we need click-to-play.
playButton.style.display = 'none';
// Add an event listener now in case we need to fall back to click-to-play.
playButton.addEventListener('click', () => {
adDisplayContainer.initialize();
adsInitialized = true;
videoContent.load();
playAds();
});
// Create your AdsLoader and AdDisplayContainer here.
setUpIMA();
// Check if autoplay is supported.
checkAutoplaySupport();
}
function checkAutoplaySupport() {
var playPromise = videoContent.play();
if (playPromise !== undefined) {
playPromise.then(onAutoplayWithSoundSuccess).catch(onAutoplayWithSoundFail);
}
}
function onAutoplayWithSoundSuccess() {
// If we make it here, unmuted autoplay works.
videoContent.pause();
autoplayAllowed = true;
autoplayRequiresMuted = false;
autoplayChecksResolved();
}
function onAutoplayWithSoundFail() {
// Unmuted autoplay failed. Now try muted autoplay.
checkMutedAutoplaySupport();
}
function checkMutedAutoplaySupport() {
videoContent.volume = 0;
videoContent.muted = true;
var playPromise = videoContent.play();
if (playPromise !== undefined) {
playPromise.then(onMutedAutoplaySuccess).catch(onMutedAutoplayFail);
}
}
function onMutedAutoplaySuccess() {
// If we make it here, muted autoplay works but unmuted autoplay does not.
videoContent.pause();
autoplayAllowed = true;
autoplayRequiresMuted = true;
autoplayChecksResolved();
}
function onMutedAutoplayFail() {
// Both muted and unmuted autoplay failed. Fall back to click to play.
videoContent.volume = 1;
videoContent.muted = false;
autoplayAllowed = false;
autoplayRequiresMuted = false;
autoplayChecksResolved();
}
function autoplayChecksResolved() {
// Request video ads.
var adsRequest = new google.ima.AdsRequest();
adsRequest.adTagUrl = <YOUR_AD_TAG_URL>;
...
adsRequest.setAdWillAutoPlay(autoplayAllowed);
adsRequest.setAdWillPlayMuted(autoplayRequiresMuted);
adsLoader.requestAds(adsRequest);
}
function onAdsManagerLoaded() {
...
if (autoplayAllowed) {
playAds();
} else {
playButton.style.display = 'block';
}
}
function playAds() {
try {
if (!adsInitialized) {
adDisplayContainer.initialize();
adsInitialized = true;
}
adsManager.init(640, 360, google.ima.ViewMode.NORMAL);
adsManager.start();
} catch (adError) {
videoContent.play();
}
}
Riproduzione automatica su iPhone
Oltre al codice precedente, la riproduzione automatica su iPhone richiede
per aggiungere il parametro playsinline
al tag video.
index.html
<body>
...
<video id="contentElement" playsinline muted>
<source src="https://storage.googleapis.com/gvabox/media/samples/stock.mp4">
</video>
</body>
Questa modifica al codice HTML assicura che i contenuti vengano riprodotti in un video in linea su iPhone al posto del player a schermo intero predefinito dell'iPhone.
Riproduzione automatica e annunci audio
È importante valutare se una richiesta di annuncio restituirà annunci solo audio è possibile che l'audio degli annunci venga riprodotto automaticamente con audio disattivato. Se c'è questa possibilità, consigliamo una delle seguenti opzioni:
- Aggiorna il seguente parametro URL VAST
ad_type=video
per richiedere solo video annunci (se il lettore supporta i video). Per ulteriori informazioni sui parametri URL consulta questa guida di Ad Manager. - Rimuovi l'opzione che consente di iniziare con l'audio disattivato.
Consulta la guida agli annunci audio IMA per ulteriori informazioni sulle integrazioni IMA audio.