@latest-thinking/lt-player 1.1.0 → 1.2.0-a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ README.md +126 -0
- package/dist/css/lt-player-main.css +1 -1
- package/dist/css/lt-player-main.css.map +1 -1
- package/dist/js/lt-player-main.js +1 -1
- package/dist/js/lt-player-main.js.map +1 -1
- package/examples/basic.html +35 -0
- package/examples/lt-page-with-player.html +3529 -0
- package/examples/lt-page-with-player_files/Weiskopf_Coverphoto.jpg +0 -0
- package/examples/lt-page-with-player_files/ajax-progress.module.css +49 -0
- package/examples/lt-page-with-player_files/align.module.css +32 -0
- package/examples/lt-page-with-player_files/announce.js +49 -0
- package/examples/lt-page-with-player_files/autocomplete-loading.module.css +22 -0
- package/examples/lt-page-with-player_files/autocomplete.css +16 -0
- package/examples/lt-page-with-player_files/bootstrap.css +22691 -0
- package/examples/lt-page-with-player_files/clearfix.module.css +15 -0
- package/examples/lt-page-with-player_files/container-inline.module.css +16 -0
- package/examples/lt-page-with-player_files/cookiesjsr.min.css +10 -0
- package/examples/lt-page-with-player_files/core.css +97 -0
- package/examples/lt-page-with-player_files/details.module.css +10 -0
- package/examples/lt-page-with-player_files/fieldgroup.module.css +9 -0
- package/examples/lt-page-with-player_files/hidden.module.css +53 -0
- package/examples/lt-page-with-player_files/himme-alexander-beyond_0.jpg +0 -0
- package/examples/lt-page-with-player_files/item-list.module.css +19 -0
- package/examples/lt-page-with-player_files/js.module.css +22 -0
- package/examples/lt-page-with-player_files/latest_thinking.style.css +6496 -0
- package/examples/lt-page-with-player_files/logo-small.png +0 -0
- package/examples/lt-page-with-player_files/menu.css +64 -0
- package/examples/lt-page-with-player_files/nowrap.module.css +8 -0
- package/examples/lt-page-with-player_files/paragraphs.unpublished.css +3 -0
- package/examples/lt-page-with-player_files/position-container.module.css +8 -0
- package/examples/lt-page-with-player_files/progress.module.css +51 -0
- package/examples/lt-page-with-player_files/radix.style.css +1 -0
- package/examples/lt-page-with-player_files/reset-appearance.module.css +15 -0
- package/examples/lt-page-with-player_files/resize.module.css +21 -0
- package/examples/lt-page-with-player_files/search_api_autocomplete.css +41 -0
- package/examples/lt-page-with-player_files/sticky-header.module.css +13 -0
- package/examples/lt-page-with-player_files/system-status-counter.css +30 -0
- package/examples/lt-page-with-player_files/system-status-report-counters.css +27 -0
- package/examples/lt-page-with-player_files/system-status-report-general-info.css +14 -0
- package/examples/lt-page-with-player_files/tabledrag.module.css +98 -0
- package/examples/lt-page-with-player_files/tablesort.module.css +19 -0
- package/examples/lt-page-with-player_files/theme.css +446 -0
- package/examples/lt-page-with-player_files/thumbnail_MPI_CBS_Eingangsbereich.jpg +0 -0
- package/examples/lt-page-with-player_files/tree-child.module.css +18 -0
- package/examples/lt-page-with-player_files/widget-min.js +10 -0
- package/examples/lt-website.html +76 -0
- package/examples/portrait-with-subtitles.html +81 -0
- package/examples/samples/vtt/Pahl-Kerstin-Maria-MAIN-20230320.vtt +765 -0
- package/examples/samples/vtt/Sobolev-Anton-Subtitles-20230518_0.vtt +352 -0
- package/examples/samples/vtt/demo.vtt +7 -0
- package/package.json +1 -1
- package/src/assets/sass/abstracts/_mixins.scss +1 -1
- package/src/assets/sass/abstracts/_variables.scss +1 -1
- package/src/assets/sass/app.scss +19 -0
- package/src/assets/sass/components/_all.scss +1 -1
- package/src/assets/sass/components/_loader.scss +187 -0
- package/src/assets/sass/components/_modal.scss +6 -0
- package/src/assets/sass/core/_player.scss +23 -5
- package/src/assets/sass/sections/_additional-info.scss +1 -1
- package/src/assets/sass/sections/_control.scss +0 -1
- package/src/assets/sass/sections/_poster.scss +1 -0
- package/src/assets/sass/sections/_settings.scss +36 -53
- package/src/assets/sass/sections/_subtitles.scss +78 -23
- package/src/assets/sass/sections/controllers/_botom.scss +59 -36
- package/src/assets/sass/sections/controllers/_notification-rewind-forward.scss +29 -14
- package/src/assets/sass/sections/controllers/_top.scss +1 -1
- package/src/components/LTPlayerDevMethode.ts +106 -84
- package/src/components/LTPlayerManager.ts +16 -0
- package/src/components/LTPlayerSettingsManager.ts +117 -0
- package/src/components/LTPlayerSetup.ts +3 -10
- package/src/components/LTPlayerStatusFeedback.ts +76 -0
- package/src/components/LTPlayerStorage.ts +58 -0
- package/src/components/LTPlayerType.ts +10 -2
- package/src/components/LTPlayerUpdate.ts +61 -0
- package/src/components/captions/LTPlayerCaptions.ts +80 -0
- package/src/components/config/LTPlayerConfig.ts +43 -0
- package/src/components/config/LTPlayerConfigProcessor.ts +110 -56
- package/src/components/controls/LTPlayerChapters.ts +8 -4
- package/src/components/controls/LTPlayerControls.ts +2 -0
- package/src/components/controls/LTPlayerControlsEvents.ts +200 -49
- package/src/components/controls/settings/LTPlayerCommonSettingsControllers.ts +9 -1
- package/src/components/controls/settings/LTPlayerDesktopSettingsControllers.ts +17 -14
- package/src/components/controls/settings/LTPlayerMobileSettingsControllers.ts +50 -44
- package/src/components/events/LTPlayer.ts +24 -21
- package/src/components/events/LTPlayerCommon.ts +94 -20
- package/src/components/events/LTPlayerDesktop.ts +21 -7
- package/src/components/events/LTPlayerMobile.ts +22 -10
- package/src/global/controllers/LTPlayerController.ts +7 -0
- package/src/services/Helper.ts +6 -1
- package/src/services/ResizeService.ts +35 -30
- package/src/services/TemplateService.ts +7 -0
- package/src/views/additionalInfo.handlebars +18 -18
- package/src/views/controls.handlebars +14 -3
- package/src/views/poster.handlebars +2 -2
- package/src/views/settings.handlebars +1 -1
- package/src/views/settings.mobile.handlebars +22 -0
- package/src/views/template.handlebars +4 -1
- package/src/assets/sass/components/_spinner.scss +0 -46
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
WEBVTT
|
|
2
|
+
|
|
3
|
+
00:00:10.510 --> 00:00:15.850
|
|
4
|
+
These days, no matter where you go online, whether you spend time on social networks
|
|
5
|
+
|
|
6
|
+
00:00:16.030 --> 00:00:21.775
|
|
7
|
+
or read your favorite online magazines or newspapers, you get bombarded by thousands of ads.
|
|
8
|
+
|
|
9
|
+
00:00:21.775 --> 00:00:28.270
|
|
10
|
+
Millions of websites such as digital media websites monetize their content by running ads.
|
|
11
|
+
|
|
12
|
+
00:00:28.270 --> 00:00:31.540
|
|
13
|
+
Some of these ads can be quite valuable for consumers,
|
|
14
|
+
|
|
15
|
+
00:00:31.540 --> 00:00:36.632
|
|
16
|
+
but the overwhelming volume of these ads can quickly become disturbing.
|
|
17
|
+
|
|
18
|
+
00:00:36.632 --> 00:00:39.812
|
|
19
|
+
This is the place where ad blockers, simple software programs,
|
|
20
|
+
|
|
21
|
+
00:00:39.812 --> 00:00:45.002
|
|
22
|
+
come into play in order to prevent ads from being displayed to users.
|
|
23
|
+
|
|
24
|
+
00:00:45.002 --> 00:00:48.602
|
|
25
|
+
The adoption of ad blockers is becoming more widespread.
|
|
26
|
+
|
|
27
|
+
00:00:48.602 --> 00:00:52.862
|
|
28
|
+
Recent surveys have shown that 40% of internet users in Germany
|
|
29
|
+
|
|
30
|
+
00:00:53.372 --> 00:00:59.373
|
|
31
|
+
and 35% of internet users in the US have installed ad blockers on their desktop devices.
|
|
32
|
+
|
|
33
|
+
00:00:59.373 --> 00:01:01.835
|
|
34
|
+
So how do ad blockers make money?
|
|
35
|
+
|
|
36
|
+
00:01:01.835 --> 00:01:07.205
|
|
37
|
+
So among different methods of how ad blockers can generate revenues, they often use so-called whitelisting.
|
|
38
|
+
|
|
39
|
+
00:01:07.205 --> 00:01:13.596
|
|
40
|
+
Under whitelisting, publishers are allowed to show their ads to the consumers.
|
|
41
|
+
|
|
42
|
+
00:01:13.596 --> 00:01:20.421
|
|
43
|
+
For instance, Adblock Plus, a dominant ad blocker in Germany with 95% market share,
|
|
44
|
+
|
|
45
|
+
00:01:20.421 --> 00:01:27.981
|
|
46
|
+
asks publishers for 30% of their additional advertising revenue if they want to become whitelisted.
|
|
47
|
+
|
|
48
|
+
00:01:27.981 --> 00:01:31.806
|
|
49
|
+
While ad blockers can be widely appreciated by users,
|
|
50
|
+
|
|
51
|
+
00:01:31.806 --> 00:01:38.499
|
|
52
|
+
they pose a serious threat to publishers who rely on ad financing.
|
|
53
|
+
|
|
54
|
+
00:01:38.499 --> 00:01:44.889
|
|
55
|
+
Additionally, ad blockers affect the way advertisers place their ads in the advertising market,
|
|
56
|
+
|
|
57
|
+
00:01:44.889 --> 00:01:49.929
|
|
58
|
+
and this in turn affects how advertisers compete with each other in the product market
|
|
59
|
+
|
|
60
|
+
00:01:50.109 --> 00:01:53.439
|
|
61
|
+
when they sell their final products to consumers.
|
|
62
|
+
|
|
63
|
+
00:01:53.439 --> 00:01:58.709
|
|
64
|
+
In our study, we explore the strategic and welfare effects of ad blocking.
|
|
65
|
+
|
|
66
|
+
00:01:58.709 --> 00:02:01.770
|
|
67
|
+
We are interested in the following questions.
|
|
68
|
+
|
|
69
|
+
00:02:01.770 --> 00:02:06.720
|
|
70
|
+
First of all, who is benefiting and who is losing from the presence of ad blockers?
|
|
71
|
+
|
|
72
|
+
00:02:06.720 --> 00:02:13.553
|
|
73
|
+
What is the impact of ad blocking on the advertising market and on the product market?
|
|
74
|
+
|
|
75
|
+
00:02:13.553 --> 00:02:16.012
|
|
76
|
+
We're trying to answer these questions in our study.
|
|
77
|
+
|
|
78
|
+
00:02:20.144 --> 00:02:22.124
|
|
79
|
+
To investigate these questions,
|
|
80
|
+
|
|
81
|
+
00:02:22.124 --> 00:02:28.844
|
|
82
|
+
we're building a theoretical model that reconciles the key ingredients of advertising and product markets.
|
|
83
|
+
|
|
84
|
+
00:02:28.844 --> 00:02:35.594
|
|
85
|
+
The main challenge for us is that we're essentially faced with a complex environment with multiple layers of strategic
|
|
86
|
+
|
|
87
|
+
00:02:35.624 --> 00:02:36.674
|
|
88
|
+
players.
|
|
89
|
+
|
|
90
|
+
00:02:36.674 --> 00:02:42.374
|
|
91
|
+
I will provide the simplest framework that helps to think about that environment
|
|
92
|
+
|
|
93
|
+
00:02:42.854 --> 00:02:46.694
|
|
94
|
+
and introduce all the key players step by step.
|
|
95
|
+
|
|
96
|
+
00:02:46.694 --> 00:02:55.034
|
|
97
|
+
The supply side of the advertising market is represented by two publishers that bundle their content with advertising.
|
|
98
|
+
|
|
99
|
+
00:02:55.034 --> 00:03:03.155
|
|
100
|
+
We assume that these publishers are ad funded in the sense that they provide the content to consumers for free
|
|
101
|
+
|
|
102
|
+
00:03:03.515 --> 00:03:07.985
|
|
103
|
+
and sell advertising slots to the advertisers.
|
|
104
|
+
|
|
105
|
+
00:03:07.985 --> 00:03:11.195
|
|
106
|
+
We assume that consumers visit both publishers
|
|
107
|
+
|
|
108
|
+
00:03:11.495 --> 00:03:18.275
|
|
109
|
+
and advertisers can reach consumers by buying ad slots at any of the publishers.
|
|
110
|
+
|
|
111
|
+
00:03:18.275 --> 00:03:25.295
|
|
112
|
+
It's reasonable to think that if a publisher displays multiple ads to a consumer that these ads become less effective.
|
|
113
|
+
|
|
114
|
+
00:03:25.295 --> 00:03:29.405
|
|
115
|
+
This could be, for instance, due to the limited attention on the consumer side.
|
|
116
|
+
|
|
117
|
+
00:03:29.405 --> 00:03:35.975
|
|
118
|
+
Therefore, we assume that each publisher has only one slot to be sold to an advertiser.
|
|
119
|
+
|
|
120
|
+
00:03:35.975 --> 00:03:42.785
|
|
121
|
+
This, in turn, creates competition between advertisers for the attention of consumers.
|
|
122
|
+
|
|
123
|
+
00:03:42.785 --> 00:03:47.992
|
|
124
|
+
If one advertiser occupies one ad slot, this slot cannot be taken by the rival advertiser.
|
|
125
|
+
|
|
126
|
+
00:03:47.992 --> 00:03:51.310
|
|
127
|
+
If competition for consumer attention is extremely high,
|
|
128
|
+
|
|
129
|
+
00:03:51.310 --> 00:03:57.400
|
|
130
|
+
then advertisers might want to foreclose their rivals by buying both ad slots
|
|
131
|
+
|
|
132
|
+
00:03:57.520 --> 00:04:01.330
|
|
133
|
+
and gaining the monopolistic position in the product market.
|
|
134
|
+
|
|
135
|
+
00:04:01.330 --> 00:04:08.580
|
|
136
|
+
Now, with this framework in hand, we can analyze what happens when the ad blocker enters the advertising market.
|
|
137
|
+
|
|
138
|
+
00:04:12.671 --> 00:04:17.091
|
|
139
|
+
We show that if the product market is highly competitive,
|
|
140
|
+
|
|
141
|
+
00:04:17.091 --> 00:04:22.911
|
|
142
|
+
then advertisers will fiercely compete in the advertising market.
|
|
143
|
+
|
|
144
|
+
00:04:22.911 --> 00:04:23.841
|
|
145
|
+
Therefore,
|
|
146
|
+
|
|
147
|
+
00:04:23.841 --> 00:04:32.601
|
|
148
|
+
advertisers might find it optimal to foreclose their rivals by buying both ad slots on both publishers in order to get
|
|
149
|
+
|
|
150
|
+
00:04:32.691 --> 00:04:36.351
|
|
151
|
+
and capture the monopoly profits in the product market.
|
|
152
|
+
|
|
153
|
+
00:04:36.351 --> 00:04:39.651
|
|
154
|
+
If the competition in the product market is low,
|
|
155
|
+
|
|
156
|
+
00:04:39.651 --> 00:04:44.331
|
|
157
|
+
then there is no threat from the rival advertisers in the product market
|
|
158
|
+
|
|
159
|
+
00:04:44.361 --> 00:04:51.461
|
|
160
|
+
and therefore they buy only one ad slot in the advertising market in order to get access to consumers.
|
|
161
|
+
|
|
162
|
+
00:04:51.461 --> 00:04:55.920
|
|
163
|
+
Then, having this nice framework in hand, we explore the strategic
|
|
164
|
+
|
|
165
|
+
00:04:55.950 --> 00:05:01.170
|
|
166
|
+
and welfare effects of ad blockers entry into the advertising industry.
|
|
167
|
+
|
|
168
|
+
00:05:01.170 --> 00:05:09.180
|
|
169
|
+
Suppose now that the ad blocker enters the market and some of the consumers install software of this ad blocker.
|
|
170
|
+
|
|
171
|
+
00:05:09.180 --> 00:05:15.390
|
|
172
|
+
We assume that the ad blocker provides whitelisting opportunities for publishers.
|
|
173
|
+
|
|
174
|
+
00:05:15.390 --> 00:05:17.730
|
|
175
|
+
If a publisher buys whitelisting,
|
|
176
|
+
|
|
177
|
+
00:05:17.730 --> 00:05:25.350
|
|
178
|
+
then the advertiser who buys an ad slot from that publisher can get access to consumers who have previously installed
|
|
179
|
+
|
|
180
|
+
00:05:25.410 --> 00:05:26.700
|
|
181
|
+
the ad blocker.
|
|
182
|
+
|
|
183
|
+
00:05:26.700 --> 00:05:34.590
|
|
184
|
+
Our key finding reveals that the ad blocker might find it optimal to exclusively sell whitelisting only to one
|
|
185
|
+
|
|
186
|
+
00:05:34.890 --> 00:05:35.730
|
|
187
|
+
publisher.
|
|
188
|
+
|
|
189
|
+
00:05:35.730 --> 00:05:42.330
|
|
190
|
+
Then, if the product market is highly competitive, then just as in the case without the ad blocker,
|
|
191
|
+
|
|
192
|
+
00:05:42.330 --> 00:05:48.360
|
|
193
|
+
advertisers will try to buy both ad slots in order to foreclose the rival advertisers.
|
|
194
|
+
|
|
195
|
+
00:05:48.360 --> 00:05:53.190
|
|
196
|
+
In this case, the ad blocker doesn't change the competitiveness of the product market
|
|
197
|
+
|
|
198
|
+
00:05:53.490 --> 00:05:58.110
|
|
199
|
+
and only extracts some surplus from the whitelisted publisher and the advertiser.
|
|
200
|
+
|
|
201
|
+
00:05:58.110 --> 00:06:05.130
|
|
202
|
+
Otherwise, if competition in the product market is low, then each advertiser is going to buy only one ad slot.
|
|
203
|
+
|
|
204
|
+
00:06:05.130 --> 00:06:13.260
|
|
205
|
+
The crucial difference with the case without an ad blocker is that now the advertiser who buys an ad slot from the
|
|
206
|
+
|
|
207
|
+
00:06:13.260 --> 00:06:18.730
|
|
208
|
+
whitelisted publisher is going to get monopoly access to the consumers who have installed the ad blocker.
|
|
209
|
+
|
|
210
|
+
00:06:18.730 --> 00:06:23.580
|
|
211
|
+
This, as a result, would soften the competition between the advertisers.
|
|
212
|
+
|
|
213
|
+
00:06:23.580 --> 00:06:29.910
|
|
214
|
+
Therefore, in this case, we can conclude that the ad blocker softens competition in the product market
|
|
215
|
+
|
|
216
|
+
00:06:30.240 --> 00:06:34.140
|
|
217
|
+
and extracts some surplus not only from the whitelisted publishers and the advertisers,
|
|
218
|
+
|
|
219
|
+
00:06:34.140 --> 00:06:38.670
|
|
220
|
+
but also from the final consumers who buy the product in the product market.
|
|
221
|
+
|
|
222
|
+
00:06:42.834 --> 00:06:50.376
|
|
223
|
+
We think that our results are relevant because they can be applied to many markets in which the adoption of ad blockers
|
|
224
|
+
|
|
225
|
+
00:06:50.390 --> 00:06:51.680
|
|
226
|
+
rapidly grows.
|
|
227
|
+
|
|
228
|
+
00:06:51.680 --> 00:06:56.090
|
|
229
|
+
There's empirical evidence that ad blocking reduces publishers’ revenue
|
|
230
|
+
|
|
231
|
+
00:06:56.450 --> 00:07:00.320
|
|
232
|
+
and the number of consumer visits to publisher websites.
|
|
233
|
+
|
|
234
|
+
00:07:00.320 --> 00:07:07.760
|
|
235
|
+
Moreover, there's empirical evidence showing that ad blocking reduces the ad spending of online advertisers.
|
|
236
|
+
|
|
237
|
+
00:07:07.760 --> 00:07:12.590
|
|
238
|
+
This confirms the importance of taking into account both the advertising and product markets.
|
|
239
|
+
|
|
240
|
+
00:07:12.590 --> 00:07:14.390
|
|
241
|
+
So in our study,
|
|
242
|
+
|
|
243
|
+
00:07:14.390 --> 00:07:20.630
|
|
244
|
+
we advocate for comprehensive analysis of both of these markets in order to evaluate the welfare effects of ad
|
|
245
|
+
|
|
246
|
+
00:07:20.660 --> 00:07:21.610
|
|
247
|
+
blockers’ entry.
|
|
248
|
+
|
|
249
|
+
00:07:21.610 --> 00:07:26.150
|
|
250
|
+
Second, our results are relevant because they can be applied in a great number of debates
|
|
251
|
+
|
|
252
|
+
00:07:26.600 --> 00:07:31.880
|
|
253
|
+
and discussions in Germany about the competitive effects of ad blockers.
|
|
254
|
+
|
|
255
|
+
00:07:31.880 --> 00:07:41.105
|
|
256
|
+
In Germany, among other publishers, Axel Springer was not very happy about the idea of paying to Adblock Plus,
|
|
257
|
+
|
|
258
|
+
00:07:41.105 --> 00:07:49.310
|
|
259
|
+
a dominant ad blocker in Germany that first blocks the ads in order to later unblock them,
|
|
260
|
+
|
|
261
|
+
00:07:49.310 --> 00:07:57.110
|
|
262
|
+
in exchange for a license fee. Unsurprisingly, many publishers call this business practice highway robbery.
|
|
263
|
+
|
|
264
|
+
00:07:57.110 --> 00:08:04.100
|
|
265
|
+
Since 2014, Axel Springer has been trying to legally confront Adblock Plus without success.
|
|
266
|
+
|
|
267
|
+
00:08:04.100 --> 00:08:11.480
|
|
268
|
+
In 2019, the Federal Supreme Court of Germany declared that both of the practices, ad blocking and whitelisting,
|
|
269
|
+
|
|
270
|
+
00:08:11.480 --> 00:08:18.860
|
|
271
|
+
are permissible. Other cases against Adlock Plus were resolved in favor of the ad blocker.
|
|
272
|
+
|
|
273
|
+
00:08:18.860 --> 00:08:22.850
|
|
274
|
+
Our research demonstrates that ad blockers setting high prices
|
|
275
|
+
|
|
276
|
+
00:08:22.910 --> 00:08:29.510
|
|
277
|
+
and providing exclusive whitelisting to publishers can undermine competition in the product market.
|
|
278
|
+
|
|
279
|
+
00:08:29.510 --> 00:08:34.160
|
|
280
|
+
This eventually leads to higher prices that advertisers pay in the advertising market
|
|
281
|
+
|
|
282
|
+
00:08:34.610 --> 00:08:39.740
|
|
283
|
+
and also to high prices that consumers pay for products in the product market.
|
|
284
|
+
|
|
285
|
+
00:08:39.740 --> 00:08:43.532
|
|
286
|
+
These arguments are new and haven't been previously explored.
|
|
287
|
+
|
|
288
|
+
00:08:47.711 --> 00:08:51.761
|
|
289
|
+
We believe that our results are relevant and useful for antitrust authorities
|
|
290
|
+
|
|
291
|
+
00:08:52.451 --> 00:08:57.941
|
|
292
|
+
and can help them to evaluate the competitive effects of ad blocking and whitelisting.
|
|
293
|
+
|
|
294
|
+
00:08:57.941 --> 00:09:01.481
|
|
295
|
+
But there are some other considerations that have to be taken into account.
|
|
296
|
+
|
|
297
|
+
00:09:01.481 --> 00:09:01.811
|
|
298
|
+
First,
|
|
299
|
+
|
|
300
|
+
00:09:01.811 --> 00:09:10.151
|
|
301
|
+
it is important to study the strategic response of publishers that react to the widespread adoption of ad blockers.
|
|
302
|
+
|
|
303
|
+
00:09:10.151 --> 00:09:17.861
|
|
304
|
+
We observed that some of the publishers may improve the ad experience of consumers by reducing their ad load.
|
|
305
|
+
|
|
306
|
+
00:09:17.861 --> 00:09:23.921
|
|
307
|
+
For instance, they may employ more careful selection of ads to be displayed to the users.
|
|
308
|
+
|
|
309
|
+
00:09:23.921 --> 00:09:30.911
|
|
310
|
+
Some of the publishers tried to fight back against the ad blockers by detecting those consumers who have installed the
|
|
311
|
+
|
|
312
|
+
00:09:30.941 --> 00:09:35.681
|
|
313
|
+
ad blocker and adjusting their experience on the website accordingly.
|
|
314
|
+
|
|
315
|
+
00:09:35.681 --> 00:09:42.431
|
|
316
|
+
So, for instance, these consumers can be asked to provide their personal emails, to subscribe to the newsletters
|
|
317
|
+
|
|
318
|
+
00:09:42.821 --> 00:09:45.731
|
|
319
|
+
or to allow for collecting data.
|
|
320
|
+
|
|
321
|
+
00:09:45.731 --> 00:09:52.241
|
|
322
|
+
Sometimes these ad blocking visitors can be asked to even turn off their ad blockers
|
|
323
|
+
|
|
324
|
+
00:09:53.021 --> 00:09:57.461
|
|
325
|
+
or even asked to pay for ad free access to the website.
|
|
326
|
+
|
|
327
|
+
00:09:57.461 --> 00:10:05.051
|
|
328
|
+
Second, it is important to take into account how advertisers would change their ads in response to ad blocking.
|
|
329
|
+
|
|
330
|
+
00:10:05.051 --> 00:10:11.441
|
|
331
|
+
We observed that more and more advertisers tried to improve their ad campaigns by focusing more on conversion
|
|
332
|
+
|
|
333
|
+
00:10:11.471 --> 00:10:13.841
|
|
334
|
+
and clicks rather than just impressions.
|
|
335
|
+
|
|
336
|
+
00:10:13.841 --> 00:10:19.181
|
|
337
|
+
We also observed that some advertisers are trying to shift to what is called native ads;
|
|
338
|
+
|
|
339
|
+
00:10:19.751 --> 00:10:25.301
|
|
340
|
+
the ads that are naturally embedded in the true content of the publishers website.
|
|
341
|
+
|
|
342
|
+
00:10:25.301 --> 00:10:28.301
|
|
343
|
+
Native advertising is becoming more and more popular
|
|
344
|
+
|
|
345
|
+
00:10:28.631 --> 00:10:33.461
|
|
346
|
+
and can be one of the directions of how online advertising evolves in the future.
|
|
347
|
+
|
|
348
|
+
00:10:33.461 --> 00:10:39.701
|
|
349
|
+
Although the strategists of publishers and advertisers can push their ad blockers a little bit,
|
|
350
|
+
|
|
351
|
+
00:10:39.701 --> 00:10:47.351
|
|
352
|
+
we believe that the effects of ad blockers on advertising and product markets will remain significant.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
WEBVTT
|
|
2
|
+
|
|
3
|
+
00:00:00.500 --> 00:00:20.000
|
|
4
|
+
The Web is always changing and the way we access it is changing and the way we access it is changing<br> Hello <br> and the way we access it is changing
|
|
5
|
+
|
|
6
|
+
00:00:20.500 --> 00:00:60.300
|
|
7
|
+
and the way we access it is changing
|
package/package.json
CHANGED
package/src/assets/sass/app.scss
CHANGED
|
@@ -35,6 +35,17 @@ body {
|
|
|
35
35
|
.lt-player {
|
|
36
36
|
display: flex;
|
|
37
37
|
width: 100%;
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
&__player {
|
|
41
|
+
&--no-radius {
|
|
42
|
+
border-radius: 0 !important;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.plyr--video {
|
|
47
|
+
background: transparent;
|
|
48
|
+
}
|
|
38
49
|
}
|
|
39
50
|
|
|
40
51
|
.lt-player-orientation {
|
|
@@ -47,6 +58,14 @@ body {
|
|
|
47
58
|
}
|
|
48
59
|
}
|
|
49
60
|
|
|
61
|
+
.lt-player:has(.plyr--fullscreen-fallback) {
|
|
62
|
+
container-type: normal;
|
|
63
|
+
|
|
64
|
+
.plyr--video {
|
|
65
|
+
background: black;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
50
69
|
.invisible {
|
|
51
70
|
visibility: hidden;
|
|
52
71
|
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
@import "../abstracts/variables";
|
|
2
|
+
|
|
3
|
+
.lt-state-loader-active {
|
|
4
|
+
.lt-player__poster {
|
|
5
|
+
display: none;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.loader {
|
|
9
|
+
display: inline-block;
|
|
10
|
+
|
|
11
|
+
&__backdrop {
|
|
12
|
+
display: block;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.loader {
|
|
18
|
+
--_loader-dimensions: 80px;
|
|
19
|
+
|
|
20
|
+
@include center-position(50%, 50%);
|
|
21
|
+
display: none;
|
|
22
|
+
width: var(--_loader-dimensions);
|
|
23
|
+
height: var(--_loader-dimensions);
|
|
24
|
+
|
|
25
|
+
&__backdrop {
|
|
26
|
+
position: absolute;
|
|
27
|
+
inset: 0;
|
|
28
|
+
display: none;
|
|
29
|
+
z-index: 2;
|
|
30
|
+
background-color: rgb(0, 0, 0, 0.2);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
div {
|
|
34
|
+
position: absolute;
|
|
35
|
+
display: block;
|
|
36
|
+
width: calc((var(--_loader-dimensions) / 10) * 8);
|
|
37
|
+
height: calc((var(--_loader-dimensions) / 10) * 8);
|
|
38
|
+
margin: 8px;
|
|
39
|
+
border: 8px solid $default-lt-player-white;
|
|
40
|
+
border-radius: 50%;
|
|
41
|
+
animation: rotate 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
42
|
+
border-color: $default-lt-player-white transparent transparent transparent;
|
|
43
|
+
|
|
44
|
+
&:nth-child(1) {
|
|
45
|
+
animation-delay: -0.45s;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:nth-child(2) {
|
|
49
|
+
animation-delay: -0.3s;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&:nth-child(3) {
|
|
53
|
+
animation-delay: -0.15s;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@keyframes rotate {
|
|
59
|
+
0% {
|
|
60
|
+
transform: rotate(0deg);
|
|
61
|
+
}
|
|
62
|
+
100% {
|
|
63
|
+
transform: rotate(360deg);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.lt-player-orientation--portrait {
|
|
68
|
+
.loader {
|
|
69
|
+
top: 35%;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.lt-player-orientation--landscape {
|
|
74
|
+
.loader {
|
|
75
|
+
--_loader-dimensions: 40px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&.lt-state-loader-active {
|
|
79
|
+
&.lt-state-captions-enabled {
|
|
80
|
+
.loader {
|
|
81
|
+
--_top-positon: 40%;
|
|
82
|
+
top: var(--_top-positon);
|
|
83
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&:not(&.lt-state-captions-enabled) {
|
|
88
|
+
.loader {
|
|
89
|
+
--_top-positon: 30%;
|
|
90
|
+
top: var(--_top-positon);
|
|
91
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@container landscape (width > 479px) {
|
|
98
|
+
.lt-player-orientation--landscape {
|
|
99
|
+
.loader {
|
|
100
|
+
--_loader-dimensions: 80px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&.lt-state-loader-active {
|
|
104
|
+
&.lt-state-captions-enabled {
|
|
105
|
+
.loader {
|
|
106
|
+
--_top-positon: 35%;
|
|
107
|
+
top: var(--_top-positon);
|
|
108
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&:not(&.lt-state-captions-enabled) {
|
|
113
|
+
.loader {
|
|
114
|
+
--_top-positon: 35%;
|
|
115
|
+
top: var(--_top-positon);
|
|
116
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@container landscape (width > 639px) {
|
|
124
|
+
.lt-player-orientation--landscape {
|
|
125
|
+
&.lt-state-loader-active {
|
|
126
|
+
&.lt-state-captions-enabled {
|
|
127
|
+
.loader {
|
|
128
|
+
--_top-positon: 20%;
|
|
129
|
+
top: var(--_top-positon);
|
|
130
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&:not(&.lt-state-captions-enabled) {
|
|
135
|
+
.loader {
|
|
136
|
+
--_top-positon: 35%;
|
|
137
|
+
top: var(--_top-positon);
|
|
138
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@container landscape (width > 759px) {
|
|
146
|
+
.lt-player-orientation--landscape {
|
|
147
|
+
&.lt-state-loader-active {
|
|
148
|
+
&.lt-state-captions-enabled {
|
|
149
|
+
.loader {
|
|
150
|
+
--_top-positon: 25%;
|
|
151
|
+
top: var(--_top-positon);
|
|
152
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
&:not(&.lt-state-captions-enabled) {
|
|
157
|
+
.loader {
|
|
158
|
+
--_top-positon: 35%;
|
|
159
|
+
top: var(--_top-positon);
|
|
160
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
@container landscape (width > 912px) {
|
|
168
|
+
.lt-player-orientation--landscape {
|
|
169
|
+
&.lt-state-loader-active {
|
|
170
|
+
&.lt-state-captions-enabled {
|
|
171
|
+
.loader {
|
|
172
|
+
--_top-positon: 30%;
|
|
173
|
+
top: var(--_top-positon);
|
|
174
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
&:not(&.lt-state-captions-enabled) {
|
|
179
|
+
.loader {
|
|
180
|
+
--_top-positon: 40%;
|
|
181
|
+
top: var(--_top-positon);
|
|
182
|
+
translate: -50% calc(var(--_top-positon) * -1);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -18,16 +18,11 @@
|
|
|
18
18
|
visibility: hidden;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.plyr--video {
|
|
22
|
-
background: transparent !important;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
21
|
.plyr__video-wrapper {
|
|
26
22
|
background: transparent !important;
|
|
27
23
|
}
|
|
28
24
|
|
|
29
25
|
.plyr {
|
|
30
|
-
border-radius: 0 0 0 30px;
|
|
31
26
|
z-index: unset!important;
|
|
32
27
|
width: 100%;
|
|
33
28
|
&__video-embed {
|
|
@@ -50,4 +45,27 @@
|
|
|
50
45
|
.fullscreen-custom-control {
|
|
51
46
|
display: none !important;
|
|
52
47
|
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.lt-player-wrapper {
|
|
51
|
+
width: 100%;
|
|
52
|
+
height: 100%;
|
|
53
|
+
object-fit: cover;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.lt-player {
|
|
57
|
+
border-radius: 0 0 0 30px;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
|
|
60
|
+
&.fullscreen-disabled {
|
|
61
|
+
.fullscreen-custom-control {
|
|
62
|
+
display: none;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.lt-player-orientation--landscape {
|
|
68
|
+
.lt-player-wrapper {
|
|
69
|
+
object-fit: contain;
|
|
70
|
+
}
|
|
53
71
|
}
|