New Site

Social Share Icons

Powered by Blogger.

Disqus for AdTagmacros

Ad Tag Macros

Online Advertising, Ad Operation Knowledge Hub



Difference Between DFP Small Business and DFP Premium?

DoubleClick For Publisher is type of adserver created to help the publisher sell the site inventory to Ad exchanges or run the ads on their site by directly reaching out to advertiser/Agency.
There are two main type of DFP account exist in the market, most of the times beginner get confused which one to choose because one is free and another is paid. If you dont have that much functionality requirement then you might waste money on necessary functionality.
So What is difference between DFP Small business and DFP premium ?  And Which one should Choose ?
DFP Small Business:
DoubleClick for Publishers (DFP) Small Business is a free ad management solution that helps growing publishers sell, schedule, deliver, and measure all of their digital ad inventory.
With a simple interface, rich feature set, built-in revenue optimization, and Google powered ad delivery, you’ll be quickly on your way to maximizing the value of your ad impressions.

  •  Cost of Setup : Free , You just need Google Account
  • Minimum Monthly Impression Requirement: NONE
  • Master Companion Setup Support: NO
  • Ad Sense support : YES
  • Ad Exchange Support: NO
  • Line Item Type Hierarchy: Up to 7 Level which include (Sponsorship,Standard etc)
  • Exclusive Ads with Impression Target Support:No

  • No Of Line Item, Creatives,Targeting,Placement Limit: Yes

Total line items
Active line items and creatives with targeting
Line items per order 450
Creatives per line item 260
Targeted criteria per line item
Active placements
Active key-value pairs
Ad units per placement
Active keys (pre-defined & free-form)
Ad units per exclusion rule

DFP Premium:
Those publisher or publisher network which have inventory in millions and want to sell their inventory directly to advertiser via Programmatic or direct need to use this feature.
  •  Cost of Setup : Depend upon the requirement and feature needed
  • Minimum Monthly Impression Requirement: 90 Million ad impression/Month (This doesnt Include Adx/Adsense)
  • Master Companion Setup Support: Yes
  • Ad Sense support : YES
  • Ad Exchange Support: Yes
  • Line Item Type Hierarchy: More 7 Level which include (Sponsorship,Standard,Adx)
  • Exclusive Ads with Impression Target Support:Yes (Option provided To deliver Minimum Number of Impressions AFAP then it will goes back to normal Standard Delievery )
Contact DFP small business:
To get the DFP premium Account you may need to contact DFP sales team and based on the your requirement pricing may vary.
Contact DFP Premium Sales
Here is the basic pricing model For DFP premium , It may vary based on the requirement and we got this pricing few year back so it will be different since DFP added various functionality. As a reference follow
DFP Premium Pricing 
Fee Scheduled for Traditional ad-serving and related features
CPM Standard Ad impressions (ad Impression/Month) Rate (USD)
0- 90 Millions 0
90 Millions – 150 Millions 0.0167
150 Millions -200 Millions 0.0167
200 Millions – 500 Millions 0.014
500 Millions – 1 Billions 0.01
1 Billions – 3 Billions 0.0075
Greater than 3 Billions 0.0065
For additional Requirement such as video ads or Click ads below are the terms and conditions and pricing
  • Video Ads that are uploaded by Company shouldn’t exceed the limit of 30 Mb
  • No Additional Charges will be applied if Company Upload the video on their FTP and provide the link in DFP also No charges will be applied if video ad is serving via Adsense or Ad exchange.
  • Video rates are applied on CPM basis
Video Rate (USD)
0 – 800,000 0
 Greater than 800,000 0.17
Additional Fees For Click
Clicks/Month Rate (USD)
0 – 300,000 0
300,001 – 500,001 0.01
Greater Than 500,001 0.01

How To Fix Clicktag Issue in HTML5 ads

Last year, Chrome and Firefox which cover almost all of the browser users, declared that they will block flash content serving on on the website to reduce the vulnerability and memory usage.
Though IAB proposed HTML5 way back to that Advertisement industry move toward the use of the HTML. You can check the difference in my post.
HTML5 ads are responsive,non flash and advance interactive ads created using various tools such Google Web designed and other creative building tools.
But Most common issue which every ad trafficker  faced is to understand the HTML5 ads 
HTML5 ads comes as a bundle of files which contain all image assets along with code related files such as html,css, javascript.
When we want to traffic these kind of creative, Most of the adservers accept it as .zip file.
When we upload this file in DFP/DCM we get the issue stating that Warning:Missing clicktag. Add a valid or exit function before uploading the creative to DFP “ is missing, and then we can’t upload the creatives. Or in some case adservers let you upload the assets but when you preview the creative is not clickable.
Since most of the trafficker are non coder and think that its not our job to edit the code..But in time sensitive campaign where sales want to see the ads live and don’t want to reach out to creative agency, it up-to us to get it live.
So How to solve the ClickTag Issue ?
There are many creative building tools most widely used are
Step 1: extract the files from zip. and Open .html file using any code editor, most useful for trafficker is notepad++.
Step 2: There will be two important section in html file <head></head> and <Body></body>
<head> section will have <script type=”text/javascript”> which handle most the functionality will be present.
Now Paste below code Before </head> section and Inside <script type=”text/javascript”>Some Code From Creative </script>

var clickTag = "";
Make sure that other tags/function are close and you are not pasting the above code inside other tag/function.

<script type=”text/javascript”>
var clickTag = “”;
Somecode of(function()
somefunctionality code….
Step 3:
Paste the below code after <body> start, Arrangement of the code can impact what portion of the creative will be clickable, so make sure that you cover every assets of creative code withing the code below

<a href="">
.......Creative assets code...
.......Some functionality code.....

click tag google web designer
Step 4: Make sure that clickTag defined in body and clickTag defined in head section should be same. Now save the file.
Step 5: Go to the folder where all the assets presents, Select all then create the zip,make sure you create zip and not rar because zip is only supported format in DFP. For other servers it might be different.
Because if don’t zip all files correctly you might get “No Primary HTML file detected” this error
No Primary HTML file detected
Creative is built from Adobe Animate CC
Step resolve the creative issue
Step 1: Extract the zip file and open the html file present in the folder
Step 2: Open the .html in file sublime/Notepad++ editor, Paste below Code in <head> section just before </head> You can replace the with the clicktracker or landing page URL provided by client.

<meta name="ad.size" content="width=300,height=250">
<script type="text/javascript">
var clickTag = ""; </script>


Step 3: Now once above code is implemented its time to implement the clickTag in body section, Since the clickTag is case sensitive make sure that clickTag implemented in Head section should match with clickTag in body section, Now implement below code just After <body > tag.

  <a href=""><canvas id="canvas" width="300" height="250"></canvas></a>

Step 4:  Make sure that the placement of </a> tag is important, you must cover the whole canvas portion so that whole creative will be clickable.

We must also note that each time creative code will be different and it doesn’t necessary that creative agency use GWD or Adobe CC, But must note that basic building block for htm5 ad remain same. So Make sure to implement the code as instructed as above.
If you are good in coding and have in depth knowledge of GWD or Adobe Animate, Best way to resolve the clicktag issue is by handling the clickevent inside creative builder. Below is link of Adobe animate explaining how to make the creative clickable.
Step-By-Step HTML5 Ad Creation With Adobe Animate CC

How To Identify VAST and VPAID ?

VAST and VPAID are two basic things that every ad trafficker should know when they want to know about video ads, And if you are among those who know what is VAST and VPAID but can't figure out which is used for what then just take quick recap from my previous Article.Article 2.

OK so we know VAST and VPAID are used for video advertising on desktop tablet and mobile.

VAST is xml template which means its just command that we are providing to video player on which we are going to show the ads. 

It's common templates used by all creative agency to embed impression tracker, click tracker, other event trackers and media files.
The latest version of VAST is 2.0 which can be be found on IAB site.

Now let's start on VPAID, it's API which means set of common command bundled into single file which can be used by players,  

So isn't the Vast is also set of command then why we need VPAID?

Well the VAST only offer basic functionality such as tracking quartile of video, impression, clicks but VPAID provide lots of rich media interactive functionality to video,

One small example, suppose we are watching any content video and it shows  728*90 ad just at bottom of the video we are playing,  such kind of ads are called as non linear ads which can only be possible if we preroll ad is VPAID built.

Apart from this VPAID help client to record each and every user interactivity on video.

So How To Identify Which Is VAST And VPAID ?

Basic difference between VAST and VPAID is the way its built.There are tags which are present under <MediaFiles> , Its a section where all media files are present and based on the device where its serving , Media file will be previewed on the device.
Preview of both VAST and VPAID is same. There is not much difference until VPAID is built with interactivity segments such as Skip Ad, Pause Ad ,Fast Forward Ad, Add the user interactivity flash between content play or when video paused just to show the flash content.Flash content might be asking user to fill the form or survey. 

VPAIDTo identify the VPAID , If we open the vast url in browser then VPAID which is layered on VAST can identify by findings this term.type="application/x-shockwave-flash" apiFramework="VPAID">

There are two types of VPAID 
  1. VPAID Flash 

Sample Code: VPAID Flash 


<MediaFile delivery="progressive" width="300" height="250" type="application/x-shockwave-flash" apiFramework="VPAID">



Latest version of VPAID is VPAID 2.0

Sample Code: VPAID JS


<MediaFile delivery="progressive" width="300" height="250" type="application/Javascript" apiFramework="VPAID">




Sample Code: 

<MediaFiles><MediaFile delivery="progressive" type="video/mp4" bitrate="2089" width="640" height="360">



<MediaFile delivery="progressive" type="video/x-flv" bitrate="2044" width="640" height="360">


</MediaFile><MediaFile delivery="progressive" type="video/webm" bitrate="837" width="640" height="360">




Sample VAST URLs

How To Use Google Swiffy to Convert Flash Into HTML5

Swiffy is a tool developed by Google to convert Flash into HTML5,
As digital advertising industry is shifting from using Flash creatives to HTML5 built creatives, there are plenty of tools which can help you to do that.

What are the prerequiste ?

As we all know that Flash file contain Clicktag which is variable use to track the clicks and redirection to advertiser page.Read More ClickTag

The clicktag is case sensitive so ClickTag clickTAG and ClickTAG are diffrent ,

So make sure which kind of clicktag is implemented inside the swf file that you are going to convert.

Secondly If we decompile the flash file using various tools such flash docompiler,SWFInvestigator by Adobe, We will be able to see which kind of clicktag is implemented and how it is implemented

And implementaing Click url was not accepted in our old method of trafficking the swf creatives,

But for Flash to HTML5 conversation , you will need the clickurl as direct third party url and addtional impression tracker from third party so that impression will get recorded inside third party adverser.

Once this checks are done its time to upload the swf 


  • Open the swf file with flash decompiler and check the clickurl implementation



  • Once you saved the converted HTML5 file, Open the file into Notepad++ or Notepad.

     We just need to upload only some code in Adserver,
     If additional trackers are provided then we need to upload the code below the HTML5 Converted code.


Now copy highlighted Code from Notepad++ and upload in Adserver,

Since we didn’t append any click macro we need to manually append the code in front of the URL.

Append %c which is universal click macros before click url

  • If you are using DoubleClick tracker then below are the few changes that can help in tracking  
You need to modify the Swiffy code by adding an additional line of code - as below. Make sure you add the add the line exactly before stage.start().

    <div id="swiffycontainer_%ecid!" style="width: %%WIDTH%%px; height: %%HEIGHT%%px"></div>
      var stage = new swiffy.Stage(document.getElementById('swiffycontainer_%ecid!'),
          swiffyobject, {});

Flash variables are case-sensitive. If the Flash creative expects a different clickTAG case format (e.g.clickTag, clicktag, or CLICKTAG), you should change the variable case accordingly. If you don’t define the clickTAG case properly, clicks won’t be tracked correctly, and the creative won’t redirect to the correct destination URL.

Also, if you’re using synchronous Google Publisher Tags, make sure to add _%ecid! in the Swiffy code snippet, as highlighted above. This ensures your Swiffy-generated HTML5 creatives don’t clash if more than one serves at the same time.

iOS 9's New Ad Content Blockers Affect The Revenue Of Mobile Advertisers and Publishers.

Where all are getting excited about iOS 9 launched on september 16 ,There isn't much excited news for Digital Advertiser/Publishers.

Recently Flash is disabled by Chrome by default which is officially rollout on 1 September however Firefox disable flash for all versiona and waiting for Adobe to come up with patch.

Flash and HTML5 Due to this all advertiser are demanding the HTML5 built creatives.

While Digital Advertising industry acclimatizing these new changes Another impacting change that will come up soon is iOS 9 Blocker extension

What is  iOS 9's  New Content Blockers ?

Mobile advertising is a big business globally. Mobile advertisers and online publishers fear that content blocking in iOS 9 may pose a threat to their business. 

There are millions of iPhones and iPads being used in the market. If these iPhone and iPad owners activate ad blocking then it will generate less revenue to online advertising companies.

Just to clarify its not just ad blocker, this extesion will block things like advertisements, trackers, scripts and other content that can slow down the loading of web pages.

While this is good news for users which will not only block ads but also it will protect their privacy,save money on data plans.

Image Source:thenextweb

Content blocker will help in webpage load time ,It will only allow content which is not tracker/advertisement and is related to content user intend to read.

Content Blocker will first have to install a content-blocking extension by way of a mobile app download from the iTunes App Store.

Only alternative is native ads or something that can not be blocked by this extension.
Apple Safari 9 Official Release

Image Source:ambergreeninternetmarketing

Content blocker also affect user analysis/marketing tools such as Google Analytics, Parsely, Chartbeat, Intercom, Optimizely and more from operating on websites,

There are currently some content blockers which are in early development like Crystal and Purify which are emerging as content blocker.

Winter Is Coming for AdOps unless someone can find a way around the wall to keep these tools functioning — everyone may be working blind very soon.

Flash To HTML5 Converter Tools Swiffy,Adobe Wallaby And Flabaco

As Digital Advertising industry emerging strongly flash based ads are getting outdated.
As we have discussed the disadvantages of Flash in my previous Article

There are many factors that can affect any ad if we built the creative in Flash.
Due to its security and lack of ability to adapt/responsive nature HTML5 become next thing.

With Google Chrome latest version where they will disable the flash by default and Firefox discontinuing its support for flash It’s become necessary steps for Ad industry and third party creative agency to start creating the ads in HTML5.

How to check if creative are built in HTML5 or Flash ?

Here is the simple step to check

In Firefox:
Go to Firefox browser >>Paste this about:addons
Select Plugins section

Check for Shockwave Flash and select it as Never Activate

Once you do that now try to preview the creative.
If creative is not previewing or showing backup image it means Ad is built in Flash and not in HTML5.

If you are able to preview it then its HTML5 built creative.

In chrome: 
Type chrome: plugins in the address bar to open the Plug-ins page.
On the Plug-ins page that appears, find the "Flash" listing.
Disable Adobe Flash Player completely; click the Disable link under its name.

IF creative preview then its HTML5

Tools used to create HTML5 ads?

There is plenty of option available to creative HTML5 creative or convert the flash creative into HTML5.

  • Swiffy


It’s simple Flash to HTML5 converter that helps make SWF files available to a larger audience.
Google Swiffy is a web-based tool developed by Google that converts SWF files to HTML5. Its main goal is to display Flash contents on devices that do not support Flash, such as iPhone, iPad, and Android Tablets.
It support SWF10, AS2.0, AS3.0

  • Adobe Converts Flash To Html5 With Wallaby


Adobe Download  Flash extension


Install the Adobe Extension Manager

You'll need to have the Adobe Extension Manager installed to add the Google Swiffy extension.
Download and open the Google Swiffy Extension

Opening the Google Swiffy Extension (MXP file) will launch the Adobe Extension Manager, and give you options to install it.
Export as HTML5

Once your project is ready for export, you can use the new "Export as HTML5 (Swiffy)" menu item in the "Commands" menu. Swiffy will convert your file and open it in a new browser window using your default browser. You can assign a keyboard shortcut to make exporting easier.View the Output panel

The Output panel will show you information about the conversion process, including features that are not supported by Swiffy.

Read more 


Use Flabaco (Flash Banner Converter) beta to convert Flash content to HTML5 video. This makes your website's rich media content viewable on non-flash devices such as the iPad and iPhone.
Users don't require plugins in order to view the converted flash media and it works seamlessly from your website
All you need to do is submit a Swf file for conversion, and embed the converted video files into your website.
  •  Flash to HTML5 Online
·        Flash to HTML5 Online easily converts SWF to HTML5 animation, which enables you to play Flash movie in HTML5 compatible browsers that without Flash Player installed.
 Therefore, you can put the converted HTML5 animation on your website, and let visitors enjoy it normally on PC, iPad, iPhone and other devices that support HTML5.

Compatibility: It supports converting SWF files under Flash 6. Sound, Video, Button and ActionScript 2.0/3.0 are not supported temporarily (will be supported in the coming new version). To best play the converted HTML5 animation, please use the online service with HTML5 compatible 
browsers: IE9+, Chrome11+, Firefox5+, Safari4+.

Ad Tag Macros Insertion Guide - Version 4 ( Adslvr,Yield Manager,PROJECT SUNBLOCK, OPENX, APPNEXUS,ADSHUFFLE)

As technology changes, many new third party vendors are providing creative tags for ads.It's very important to understand the macros (cache buster/click tracker implementation ) so that no discrepancy will occur in the campaign.This post will guide you all for macros implementation for Adslvr,Yield Manager,PROJECT SUNBLOCK, OPENX, APPNEXUS,ADSHUFFLE 


window._lvr = window._lvr || [];
   LR_PUBLISHER_ID: xxxxxx,
   LR_VERTICALS: 'xxxxxxxxmaxbrand',
   format: 'xxxxxxxxx',
   LR_PARTNERS: xxxxxx,
   slot: '',
   type: 1,
   cookie: 30,
   clearslot: ''
(function () {
    var js = document.createElement('script');
    js.type = 'text/javascript';
    js.async = true;
    js.src = '//';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(js, s);





When previewing Project Sunblock tags - please ensure you deselect 'Serve in iFrame' as this will stop the tags previewing in Console and you will be unable to test click-tracking.

<script type='text/javascript'>var _sblq = _sblq || [];(function() {var s = document.getElementsByTagName('script'), s0 = s[0], adElement = s[s.length-1];
var sl = Math.random().toString(36).substring(2);

_sblq.push([sl, 'setClickUrl', '${CLICK_URL}']);

_sblq.push([sl, 'displayAd', adElement,300, 1234]);

var sb = document.createElement('script'); sb.type = 'text/javascript'; sb.async = true; sb.defer = true;

sb.src = ('http:'==document.location.protocol ? "http:" : "https:")+'//';

s0.parentNode.insertBefore(sb, s0);


<noscript><img src='//' width='1' height='1'></noscript>

<script type='text/javascript'>var _sblq = _sblq || [];(function() {var s = document.getElementsByTagName('script'), s0 = s[0], adElement = s[s.length-1];
var sl = Math.random().toString(36).substring(2);

_sblq.push([sl, 'setClickUrl', '$%c']);

_sblq.push([sl, 'displayAd', adElement,300, 1234]);

var sb = document.createElement('script'); sb.type = 'text/javascript'; sb.async = true; sb.defer = true;

sb.src = ('http:'==document.location.protocol ? "http:" : "https:")+'//';

s0.parentNode.insertBefore(sb, s0);


<noscript><img src='//' width='1' height='1'></noscript>


<script type='text/javascript'><!--//<![CDATA[document.MAX_ct0 ='${CLICK_URL}';var m3_u = (location.protocol=='https:'?'':'');
var m3_r = Math.floor(Math.random()*99999999999);

if (!document.MAX_used) document.MAX_used = ',';

document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);

document.write ("?zoneid=123&bannerid=3456");

document.write ('&amp;cb=' + m3_r);

if (document.MAX_used \!= ',') document.write ("&amp;exclude=" + document.MAX_used);

document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));

document.write ("&amp;loc=" + escape(window.location));

if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));

if (document.context) document.write ("&context=" + escape(document.context));

if ((typeof(document.MAX_ct0) \!= 'undefined') && (document.MAX_ct0.substring(0,4) == 'http')) {

document.write ("&amp;ct0=" + escape(document.MAX_ct0));


if (document.mmm_fo) document.write ("&amp;mmm_fo=1");

document.write ("'><\/scr"+"ipt>");


<script type='text/javascript'><!--//<![CDATA[document.MAX_ct0 ='$%c';var m3_u = (location.protocol=='https:'?'':'');
var m3_r = Math.floor(Math.random()*99999999999);

if (!document.MAX_used) document.MAX_used = ',';

document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);

document.write ("?zoneid=123&bannerid=3456");

document.write ('&amp;cb=' + m3_r);

if (document.MAX_used \!= ',') document.write ("&amp;exclude=" + document.MAX_used);

document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));

document.write ("&amp;loc=" + escape(window.location));

if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));

if (document.context) document.write ("&context=" + escape(document.context));

if ((typeof(document.MAX_ct0) \!= 'undefined') && (document.MAX_ct0.substring(0,4) == 'http')) {

document.write ("&amp;ct0=" + escape(document.MAX_ct0));
if (document.mmm_fo) document.write ("&amp;mmm_fo=1");
document.write ("'><\/scr"+"ipt>");


<!-- BEGIN JS TAG - 728x90 < - DO NOT MODIFY --> <SCRIPT SRC="${CACHEBUSTER}&pubclick=${CLICK_URL_ENC}" TYPE="text/javascript"></SCRIPT><!-- END TAG -->

<!-- BEGIN JS TAG - 728x90 < - DO NOT MODIFY --> <SCRIPT SRC="$%n&pubclick=$%n" TYPE="text/javascript"></SCRIPT><!-- END TAG -->


<iframe allowTransparency="true" frameborder="0" scrolling="no"marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" width="728"height="90"src="${CACHEBUSTER}&ASTPCT=${CLICK_URL}"></iframe>

<iframe allowTransparency="true" frameborder="0" scrolling="no"marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" width="728"height="90"src="$%n&ASTPCT=$%c"></iframe>

If function math.random(); is present in the tags then there is no need to implement any cachebuster (%n) since This function act as random number generator.

For More Macros Insertion Guide o third parties 
Follow below links