Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/superbeet/dev.beet.tv/wp-includes/class-wp-block-list.php on line 199

Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in /home/superbeet/dev.beet.tv/wp-includes/script-loader.php on line 333

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/superbeet/dev.beet.tv/wp-includes/class-wp.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667

Warning: Cannot modify header information - headers already sent by (output started at /home/superbeet/dev.beet.tv/wp-includes/class-wp-theme.php:9) in /home/superbeet/dev.beet.tv/wp-includes/rest-api/class-wp-rest-server.php on line 1667
{"id":70152,"date":"2020-12-07T20:29:12","date_gmt":"2020-12-08T01:29:12","guid":{"rendered":"https:\/\/www.beet.tv\/?p=70152"},"modified":"2020-12-07T20:29:12","modified_gmt":"2020-12-08T01:29:12","slug":"ctv-becoming-mostly-programmatic-groupms-moore","status":"publish","type":"post","link":"https:\/\/dev.beet.tv\/2020\/12\/ctv-becoming-mostly-programmatic-groupms-moore.html","title":{"rendered":"CTV Becoming Mostly Programmatic: GroupM’s Moore"},"content":{"rendered":"

Despite promising to automate TV ad sales – a practice that, for decades, has been carried out manually – programmatic ad sales, even in connected TV (CTV) environments, have remained considerable hands-on.<\/p>\n

But now we are reaching a tipping point where the majority of CTV ad sales will be programmatically traded.<\/p>\n

At least, that will be the case for the world’s largest media-buying agency next year.<\/p>\n

CTV’s programmatic tipping point<\/h2>\n

Asked about programmatic CTV in this video interview with Beet.TV, Mike Moore, GroupM director of programmatic development, says: “It’s certainly our fastest growing.<\/p>\n

“It’s probably not yet the majority, but I’m fairly confident by next year that it will be.”<\/p>\n

EMarketer estimates<\/a> connected TV ad spending will hit $11.36 billion in the US in 2021, up 40.1% from 2020 and representing 4.2% of total media spending.<\/p>\n

\"US<\/p>\n

Complex route to screen<\/h2>\n

CTV is gathering steam for ad sales despite a host of challenges around the complexity of getting brands on-screen.<\/p>\n

Moore says the supply side has been a “mystery” for ad clients.<\/p>\n

“It’s definitely a tough landscape to navigate,” he says, explaining the complexity.<\/p>\n

“There’s quite a few different players and points of access to ultimately deliver what, for a consumer, is just an ad on the screen.<\/p>\n

“We can go through our MVPD partners. You can go directly with publishers who may deliver across a variety of devices and platforms.”<\/p>\n

Path to market<\/h2>\n

So Moore is looking to supply-side ad platforms (SSPs) to smoothe the route to publisher inventory.<\/p>\n

In October, the agency announced<\/a> it picked SpotX as its primary such programmatic partner for buying digital video and OTT TV ad inventory.<\/p>\n

\n

Big news!! SpotX is proudly partnering with GroupM as their primary programmatic partner for all digital video. I couldn\u2019t be more proud of our team and what the future holds! https:\/\/t.co\/il2kFPaBUP<\/a><\/p>\n

— Eva-Marie Hamilton (@evamarie_ham) October 27, 2020<\/a><\/p><\/blockquote>\n