PITCH MADISON ADVERTISING REPORT 2019

Pitch Madison Advertising Report is the most awaited report on predictions of ad spends in the media and advertising industry. The report is launched by Pitch, in partnership with Madison World. Over the years, the report has become a benchmark in the industry and is often quoted in the media, pitch presentations, company reports, corporate boardrooms and even IPO documents filed by media companies.

This report tracks and analyses how and where advertising monies were spent last year, and projects the future growth. It aims at understanding the challenges and opportunities that lie ahead for marketers and various media print, TV, radio, OOH, Internet, and cinema.

Pitch Madison Advertising Report a point of reference for marketers, media owners, media buying and planning professionals for staying updated on industry trends and key developments in various mediums. Besides the growth report of different mediums of media in terms of revenue and forms, the report includes additional information such as top category spenders, biggest gainers by state and top publication gainers, amongst other insights.

Twitter Feed

© 2019 exchange4media. All Rights Reserved.

Whoops! There was an error.
ErrorException (E_WARNING)
file_put_contents(): Only 0 of 217 bytes written, possibly out of free disk space ErrorException thrown with message "file_put_contents(): Only 0 of 217 bytes written, possibly out of free disk space" Stacktrace: #7 ErrorException in /var/www/html/pitch-madison-advertising-report-2019/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #6 file_put_contents in /var/www/html/pitch-madison-advertising-report-2019/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #5 Illuminate\Filesystem\Filesystem:put in /var/www/html/pitch-madison-advertising-report-2019/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php:83 #4 Illuminate\Session\FileSessionHandler:write in /var/www/html/pitch-madison-advertising-report-2019/vendor/laravel/framework/src/Illuminate/Session/Store.php:128 #3 Illuminate\Session\Store:save in /var/www/html/pitch-madison-advertising-report-2019/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:87 #2 Illuminate\Session\Middleware\StartSession:terminate in /var/www/html/pitch-madison-advertising-report-2019/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:218 #1 Illuminate\Foundation\Http\Kernel:terminateMiddleware in /var/www/html/pitch-madison-advertising-report-2019/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189 #0 Illuminate\Foundation\Http\Kernel:terminate in /var/www/html/pitch-madison-advertising-report-2019/index.php:61
7
ErrorException
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
6
file_put_contents
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
5
Illuminate
\
Filesystem
\
Filesystem
put
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
83
4
Illuminate
\
Session
\
FileSessionHandler
write
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
128
3
Illuminate
\
Session
\
Store
save
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
87
2
Illuminate
\
Session
\
Middleware
\
StartSession
terminate
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
218
1
Illuminate
\
Foundation
\
Http
\
Kernel
terminateMiddleware
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
189
0
Illuminate
\
Foundation
\
Http
\
Kernel
terminate
/
index.php
61
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "file_put_contents(): Only 0 of 217 bytes written, possibly out of free disk space"
    
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Prepend to a file.
     *
     * @param  string  $path
     * @param  string  $data
     * @return int
     */
    public function prepend($path, $data)
    {
        if ($this->exists($path)) {
            return $this->put($path, $data.$this->get($path));
        }
 
        return $this->put($path, $data);
    }
 
    /**
     * Append to a file.
Arguments
  1. "/var/www/html/pitch-madison-advertising-report-2019/storage/framework/sessions/CEe20ttC5vGWRgGB0vkh9Yh9WEE7rmTnL7MRzxax"
    
  2. "a:3:{s:6:"_token";s:40:"Nle76eck01mlUKCH7PZsrgzaKwXZf6zE6bBDvSat";s:9:"_previous";a:1:{s:3:"url";s:59:"https://e4mevents.com/pitch-madison-advertising-report-2019";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. 2
    
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
    /**
     * {@inheritdoc}
     */
    public function read($sessionId)
    {
        if ($this->files->exists($path = $this->path.'/'.$sessionId)) {
            if (filemtime($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) {
                return $this->files->get($path, true);
            }
        }
 
        return '';
    }
 
    /**
     * {@inheritdoc}
     */
    public function write($sessionId, $data)
    {
        $this->files->put($this->path.'/'.$sessionId, $data, true);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function destroy($sessionId)
    {
        $this->files->delete($this->path.'/'.$sessionId);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function gc($lifetime)
    {
        $files = Finder::create()
Arguments
  1. "/var/www/html/pitch-madison-advertising-report-2019/storage/framework/sessions/CEe20ttC5vGWRgGB0vkh9Yh9WEE7rmTnL7MRzxax"
    
  2. "a:3:{s:6:"_token";s:40:"Nle76eck01mlUKCH7PZsrgzaKwXZf6zE6bBDvSat";s:9:"_previous";a:1:{s:3:"url";s:59:"https://e4mevents.com/pitch-madison-advertising-report-2019";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. true
    
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForUnserialize($data)
    {
        return $data;
    }
 
    /**
     * Save the session data to storage.
     *
     * @return bool
     */
    public function save()
    {
        $this->ageFlashData();
 
        $this->handler->write($this->getId(), $this->prepareForStorage(
            serialize($this->attributes)
        ));
 
        $this->started = false;
    }
 
    /**
     * Prepare the serialized session data for storage.
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForStorage($data)
    {
        return $data;
    }
 
    /**
     * Age the flash data for the session.
     *
     * @return void
Arguments
  1. "CEe20ttC5vGWRgGB0vkh9Yh9WEE7rmTnL7MRzxax"
    
  2. "a:3:{s:6:"_token";s:40:"Nle76eck01mlUKCH7PZsrgzaKwXZf6zE6bBDvSat";s:9:"_previous";a:1:{s:3:"url";s:59:"https://e4mevents.com/pitch-madison-advertising-report-2019";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
        if ($this->sessionConfigured()) {
            $this->storeCurrentUrl($request, $session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Perform any final actions for the request lifecycle.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) {
            $this->manager->driver()->save();
        }
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
    {
        return tap($this->getSession($request), function ($session) use ($request) {
            $session->setRequestOnHandler($request);
 
            $session->start();
        });
    }
 
    /**
     * Get the session implementation from the manager.
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
                continue;
            }
 
            list($name) = $this->parseMiddleware($middleware);
 
            $instance = $this->app->make($name);
 
            if (method_exists($instance, 'terminate')) {
                $instance->terminate($request, $response);
            }
        }
    }
 
    /**
     * Gather the route middleware for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    protected function gatherRouteMiddleware($request)
    {
        if ($route = $request->route()) {
            return $this->router->gatherRouteMiddleware($route);
        }
 
        return [];
    }
 
    /**
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/"
      #requestUri: "/pitch-madison-advertising-report-2019/"
      #baseUrl: "/pitch-madison-advertising-report-2019"
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: "/pitch-madison-advertising-report-2019"
      format: "html"
    }
    
  2. Response {}
    
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/"
      #requestUri: "/pitch-madison-advertising-report-2019/"
      #baseUrl: "/pitch-madison-advertising-report-2019"
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: "/pitch-madison-advertising-report-2019"
      format: "html"
    }
    
  2. Response {}
    
/
var
/
www
/
html
/
pitch-madison-advertising-report-2019
/
index.php
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure {
        class: "Illuminate\Auth\AuthServiceProvider"
        this: AuthServiceProvider { …}
        parameters: {
          $guard: {
            default: null
          }
        }
        use: {
          $app: Application { …}
        }
      }
      #routeResolver: Closure {
        class: "Illuminate\Routing\Router"
        this: Router { …}
        use: {
          $route: Route { …}
        }
      }
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/"
      #requestUri: "/pitch-madison-advertising-report-2019/"
      #baseUrl: "/pitch-madison-advertising-report-2019"
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: "/pitch-madison-advertising-report-2019"
      format: "html"
    }
    
  2. Response {}
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
HTTPS
"on"
SSL_TLS_SNI
"e4mevents.com"
SSL_SERVER_S_DN_OU
"Domain Control Validated"
SSL_SERVER_S_DN_OU_1
"COMODO SSL Unified Communications"
SSL_SERVER_S_DN_CN
"www.exchange4media.com"
SSL_SERVER_I_DN_C
"GB"
SSL_SERVER_I_DN_ST
"Greater Manchester"
SSL_SERVER_I_DN_L
"Salford"
SSL_SERVER_I_DN_O
"Sectigo Limited"
SSL_SERVER_I_DN_CN
"Sectigo RSA Domain Validation Secure Server CA"
SSL_SERVER_SAN_DNS_0
"www.exchange4media.com"
SSL_SERVER_SAN_DNS_1
"cms.exchange4media.com"
SSL_SERVER_SAN_DNS_2
"e4mevents.com"
SSL_VERSION_INTERFACE
"mod_ssl/2.4.18"
SSL_VERSION_LIBRARY
"OpenSSL/1.0.2g"
SSL_PROTOCOL
"TLSv1.2"
SSL_SECURE_RENEG
"true"
SSL_COMPRESS_METHOD
"NULL"
SSL_CIPHER
"ECDHE-RSA-AES256-SHA"
SSL_CIPHER_EXPORT
"false"
SSL_CIPHER_USEKEYSIZE
"256"
SSL_CIPHER_ALGKEYSIZE
"256"
SSL_CLIENT_VERIFY
"NONE"
SSL_SERVER_M_VERSION
"3"
SSL_SERVER_M_SERIAL
"ACFB96890CBFA586904815FC8DAB5842"
SSL_SERVER_V_START
"Feb 20 00:00:00 2019 GMT"
SSL_SERVER_V_END
"Feb 20 23:59:59 2020 GMT"
SSL_SERVER_S_DN
"CN=www.exchange4media.com,OU=COMODO SSL Unified Communications,OU=Domain Control Validated"
SSL_SERVER_I_DN
"CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB"
SSL_SERVER_A_KEY
"rsaEncryption"
SSL_SERVER_A_SIG
"sha256WithRSAEncryption"
SSL_SESSION_ID
"12ee0e0a7e9a13aa7a3cfc461c676170aa112645779442163becba119fb90c15"
SSL_SESSION_RESUMED
"Initial"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_IF_MODIFIED_SINCE
"Sun, 21 Apr 2019 16:11:43 GMT"
HTTP_HOST
"e4mevents.com"
HTTP_CONNECTION
"Keep-Alive"
HTTP_ACCEPT_ENCODING
"gzip"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SERVER_SIGNATURE
"<address>Apache/2.4.18 (Ubuntu) Server at e4mevents.com Port 443</address>\n"
SERVER_SOFTWARE
"Apache/2.4.18 (Ubuntu)"
SERVER_NAME
"e4mevents.com"
SERVER_ADDR
"10.160.0.3"
SERVER_PORT
"443"
REMOTE_ADDR
"54.209.227.199"
DOCUMENT_ROOT
"/var/www/html"
REQUEST_SCHEME
"https"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/var/www/html"
SERVER_ADMIN
"webmaster@localhost"
SCRIPT_FILENAME
"/var/www/html/pitch-madison-advertising-report-2019/index.php"
REMOTE_PORT
"58946"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/pitch-madison-advertising-report-2019/"
SCRIPT_NAME
"/pitch-madison-advertising-report-2019/index.php"
PHP_SELF
"/pitch-madison-advertising-report-2019/index.php"
REQUEST_TIME_FLOAT
1560905272.059
REQUEST_TIME
1560905272
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:Wo59/fIlsAogIDKR6wHcNHAu1FqnhxkrjZAOMy60+kc="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"http://localhost"
DB_CONNECTION
"mysql"
DB_HOST
"35.200.252.218"
DB_PORT
"3306"
DB_DATABASE
"pmar2019"
DB_USERNAME
"root"
DB_PASSWORD
"@techadmin123"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
QUEUE_DRIVER
"sync"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.gmail.com"
MAIL_PORT
"587"
MAIL_USERNAME
"techadmin@exchange4media.com"
MAIL_PASSWORD
"admin@tech123"
MAIL_ENCRYPTION
"tls"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
Key Value
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:Wo59/fIlsAogIDKR6wHcNHAu1FqnhxkrjZAOMy60+kc="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"http://localhost"
DB_CONNECTION
"mysql"
DB_HOST
"35.200.252.218"
DB_PORT
"3306"
DB_DATABASE
"pmar2019"
DB_USERNAME
"root"
DB_PASSWORD
"@techadmin123"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
QUEUE_DRIVER
"sync"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.gmail.com"
MAIL_PORT
"587"
MAIL_USERNAME
"techadmin@exchange4media.com"
MAIL_PASSWORD
"admin@tech123"
MAIL_ENCRYPTION
"tls"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
0. Whoops\Handler\PrettyPageHandler