Pour discuter de nos produits et nous faire part de vos commentaires, rejoignez le canal Discord officiel Ad Manager sur le serveur de la communauté Google Advertising and Measurement.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
En tant qu'éditeur de vidéos, vous voulez peut-être empêcher vos spectateurs
après avoir regardé vos annonces mid-roll. Lorsqu'un utilisateur
cherche au-delà d'une coupure publicitaire,
vous pouvez les rediriger au début de la coupure publicitaire,
vers l'emplacement recherché une fois la coupure publicitaire terminée. Ce
est appelée « snapback ».
À titre d'exemple, consultez le schéma ci-dessous. votre spectateur regarde une vidéo ;
et décide de passer de 5 à 15 minutes.
En revanche, il y a une coupure publicitaire
au bout de 10 minutes
avant de pouvoir regarder le contenu après:
Pour diffuser cette coupure publicitaire, procédez comme suit:
Vérifier si l'utilisateur a lancé une recherche qui dépasse une coupure publicitaire non visionnée
Si c'est le cas, redirigez-les
vers la coupure publicitaire.
Une fois la coupure publicitaire terminée, faites revenir l'utilisateur à sa recherche initiale.
Sous forme de diagramme, cela se présente comme suit:
Voici comment implémenter ce processus
dans le SDK IMA DAI
AdvancedExample.
Empêcher une recherche de laisser une coupure publicitaire sans visionnage
Vérifier si l'utilisateur a effectué une recherche après une coupure publicitaire non visionnée
Si c'est le cas, redirigez-les
vers la coupure publicitaire.
Dans le SDK Android, utilisez l'objet PlayerControl pour détecter la recherche.
Lorsque l'utilisateur effectue une recherche, déclenchez la méthode onSeek() de
SampleHlsVideoPlayerCallback implémenté par SampleAdsWrapper.
Cette méthode (présentée ci-dessous) vérifie le point de repère avant l'appel
rechercher une heure. Si elle n'est pas lue, rechercher le début de la coupure publicitaire
au lieu du point de recherche initial souhaité et enregistrer cette recherche
point dans snapBackTime.
Lorsque vous recevez un événement onAdBreakEnded, vérifiez si snapBackTime
est définie. Si c'est le cas, dirigez l'utilisateur vers ce point du flux, car l'annonce
une pause qu'ils viennent de regarder est le résultat d'un Snapback:
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/21 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/21 (UTC)."],[[["\u003cp\u003eSnapback prevents viewers from skipping mid-roll ads by redirecting them to the ad and then returning them to their intended location.\u003c/p\u003e\n"],["\u003cp\u003eThis feature ensures ad completion before viewers proceed to the content they seek.\u003c/p\u003e\n"],["\u003cp\u003eSnapback functionality is implemented through the IMA DAI SDK, as demonstrated in the AdvancedExample.\u003c/p\u003e\n"],["\u003cp\u003eThe process involves identifying unwatched ad breaks and redirecting the viewer and then resuming playback at the target point after the ad.\u003c/p\u003e\n"]]],[],null,["# Return to a skipped ad break\n\nAs a video publisher, you may want to prevent your viewers from\nseeking past your mid-roll ads. When a user seeks past an ad break,\nyou can take them back to the start of that ad break, and then return\nthem to their seek location after that ad break has completed. This\nfeature is called \"snapback.\"\n\nAs an example, see the diagram below. Your viewer is watching a video,\nand decides to seek from the 5-minute mark to the 15-minute mark.\nThere is, however, an ad break at the 10-minute mark that you want\nthem to watch before they can watch the content after it:\n\nIn order to show this ad break, take the following steps:\n\n1. Check if the user ran a seek that jumped past an unwatched ad break, and if so, take them back to the ad break.\n2. After the ad break completes, return them to their original seek.\n\nIn diagram form, that looks like this:\n\nHere's how to implement this workflow in the IMA DAI SDK, as done in\n[AdvancedExample](//github.com/googleads/googleads-ima-android-dai).\n\nPrevent a seek from leaving an ad break unwatched\n-------------------------------------------------\n\nCheck if the user has run a seek that went past an unwatched ad break,\nand if so, take them back to the ad break.\nIn the Android SDK, use the `PlayerControl` object to detect seeking.\nWhen the user seeks, trigger the `onSeek()` method of the\n`SampleHlsVideoPlayerCallback` implemented by `SampleAdsWrapper`.\nThat method (presented below) checks the cue point prior to the user's\nseek time. If it is unplayed, seek to the beginning of that ad break\ninstead of their initial desired seek point, and save that desired seek\npoint in `snapBackTime`. \n\n @Override\n public void onSeek(int timeMillis) {\n double timeToSeek = timeMillis;\n if (streamManager != null) {\n CuePoint cuePoint =\n streamManager.getPreviousCuePointForStreamTime(timeMillis / 1000);\n if (cuePoint != null && !cuePoint.isPlayed()) {\n snapBackTime = timeToSeek / 1000.0; // Update snapback time.\n // Missed cue point, so snap back to the beginning of cue point.\n timeToSeek = cuePoint.getStartTime() * 1000;\n videoPlayer.seek(Math.round(timeToSeek));\n videoPlayer.setCanSeek(false);\n return;\n }\n }\n videoPlayer.seek(Math.round(timeToSeek));\n }\n\nPut the user back to their original seek\n----------------------------------------\n\nNow when you get an `onAdBreakEnded` event, check to see if `snapBackTime`\nis set. If so, take the user to that point in the stream, because the ad\nbreak they just watched was the result of snapback: \n\n @Override\n public void onAdBreakEnded() {\n // Re-enable player controls.\n videoPlayer.setCanSeek(true);\n videoPlayer.enableControls(true);\n if (snapBackTime \u003e 0) {\n videoPlayer.seek(Math.round(snapBackTime * 1000));\n }\n snapBackTime = 0;\n }"]]