HTML Ads are the backbone of the industry. Most Ads you create will be HTML. These Ads are modified via HTML macros. The DSP uses similar screens for both creating and modifying its settings:
To ensure acceptance on the Google Ad Exchange (ADX) as well as the best delivery and performance outcomes, use SSL-compliant URLS, i.e. https rather than http, only.
Creating New HTML Ads
1. Once you’ve selected the Account and your Advertiser, navigate to Creatives > Ads within the menu on the left.
2. Click on + New Ad and choose HTML from the drop-down.
3. Set values for this Ad Type per the table below.
HTML Ad Fields
Field
Description
Ad Name*
It is best practice to include the following in this field:
(static) The DSP reminds you that this is an HTML Ad.
HTML Tag*
Input the tag text.
Add any desired macros. See HTML Macros below for details.
Select Preview Expanded Macros to get an early look at the final form of the HTML code. This inserts the macros into a supported ad tag, which has been placed in the Ad HTML field. After clicking Preview expanded macros, you must select Enable Automatic Macro Insertion, or an error will appear.
If you click Preview Expanded Macros when editing an Ad that has already had macros injected into the Ad tag's HTML, nothing will happen. For example, in the <SCRIPT> portion of the code, the DSP may set the variable "ord" to the value of the internal macro {scriptclickprefix} and in the <NOSCRIPT> portion, prepend the macro {noscriptclickprefix} to the URL.
Ads with an unsecured URL are not shown in the Preview tab of the DSP.
The most common Ad Servers that use "ord" as a key value in a tag are:
DCM: Legacy DART tags use "ord" as a key for cache busting, not as an insertion point for a click macro.
Zeta: "ord" is a key for cache busting, not as an insertion point for a click macro. These macros also appear in the Report Builder.
Enable Automatic Macro Insertion
This is selected by default, when you create an individual Ad or bulk uploading multiple Ads. This option allows the DSP to automatically insert click-tracking and cache-busting macros into the HTML tag.
After clicking Preview Expanded Macros, you must select Enable Automatic MacroInsertion, or an error will appear. The DSP supports many vendors and tag syntaxes for each Ad Vendor. It is generally a good idea to select this checkbox, unless you are using an Ad Vendor the DSP doesn't recognize, or if you have already added the Zeta macros by hand.
If you created the Ad with the checkbox selected and later discovered a problem, edit the Ad, insert your macros manually and clear this checkbox before saving the edited version.
Size, Width, Height*
Select one of the provided sizes to match the Ad or select Custom and then enter the Ad's pixel dimensions in the Width and Height fields.
Land In New Window
Some Ad Exchanges insist that an Ad must take the visitor to a new screen. Therefore, check this box to ensure that Ad Exchanges approve the Ad.
Ad Vendors
An Ad Vendor is an Ad partner beyond the Ad Server having a component within the Ad. Examples include Brand Safety tools or Rich Media.
The DSP auto-populates this field (in most cases) so you should not need to enter anything. In the rare event you need to do so, or if an exchange rejects an Ad for this reason, set this field as follows.
Example: Name AdSafe as a Vendor.
Example: Specify PointRoll-Expandable-Beta as a Vendor paired with an Attribute.
Ad Vendors can provide automatic expansion of your Ads when the impression space is larger than the Ad size. To enable this, select one expansion direction in the Ad Attributes field (next) and check the Expandable box (below).
NOTE - When creating Celtra Ads that are Expandable/Mraid. User will need to create the ad without ticking the Expandable/Mraid box and/or adding Celtra first (i.e. save the ad) then editing the ad again and adding Celtra as the Ad Vendor and ticking the Expandable/Mraid box.
Ad Attributes
Ad Attributes include aspects of the creative including HTML5, expandable creative, etc. The DSP auto-populates this field so you should not need to enter anything in most cases. If in some rare case you need to do so, or if an exchange rejects an Ad for this reason, set this field as follows.
This section requires completion with at least one attribute. Many attributes require you to select a name/value pair where the name is the attribute, for example: ExpandingDirection: ExpandingRight. When you select an attribute, the DSP adds it as an Attribute object in the field. If you later want to remove such an attribute, select its corresponding X.
When you select an ExpandingDirection Attribute, you should also check the Expandable box (next).
IAB Advertisement Category Attributes are now available to select as additional aspects of the creative.
Expandable/MRAID
If applicable, select this checkbox, and then choose the correct Vendor and matching Ad attributes.
Both the Ad Vendors and Ad Attributes boxes must be complete for the Ad to be valid. This method permits the DSP AI to find more placement opportunities for your Ads and can result in lower costs.
Check this box to approve the automatic expansion of your ads when the impression area is larger than the ad's size. The partner you specify in Ad Vendors (above) provides this capability. When you check this box, in Ad Attributes (above) you should also select one or more directions in which your ads may expand. For example, ExpandingDirection: ExpandingDown would enable Ads to grow at their bottom edge.
If using this feature, the Ad Attribute should be set to "MraidType: Mraid 1.0"
MRAID Ad trafficking requires selecting this check box.
This feature is not available on all Exchanges. At the time of this writing, Google ADX and AppNexus support the feature.
Time Zone
Select the time zone that the Zeta use to run the Ad per the Start and EndTimes specified in the next two fields.
Start Date/Time
(Optional) Specify the beginning date and time during which the Ad is to be available to campaigns. If you leave it unspecified, the Ad is available immediately.
Zeta suggests leaving the Start Date and End Date fields blank unless you are working in one of the following scenarios:
Scenario #1 - You have a long-running campaign that cycles through several sets of ads. If you have all of the ads ready to go before the campaign is launched, you can use Start and End dates on the ads to ensure the campaign automatically switches from one set of ads to the next on the appropriate day.
Scenario #2 - Your campaign is running a specific time-sensitive promotion, event, or sale that has a defined end date. Setting an End date will ensure that the creative set runs only during the time of the promotion.
End Date/Time
(Optional) Specify the end date and time during which the Ad is to be available to campaigns. If you leave it unspecified, the Ad inherits the run dates of its campaign.
Zeta suggests leaving the Start Date and End Date fields blank unless you are working in one of the following scenarios:
Scenario #1 - You have a long-running campaign that cycles through several sets of ads. If you have all of the ads ready to go before the campaign is launched, you can use Start and End dates on the ads to ensure the campaign automatically switches from one set of ads to the next on the appropriate day.
Scenario #2 - Your campaign is running a specific time-sensitive promotion, event, or sale that has a defined end date. Setting an End date will ensure that the creative set runs only during the time of the promotion.
Third-Party Placement ID
(Optional) Use this field to store on the Third-Party Placement ID, and then report on this field using the Third-Party Placement ID metric in the Report Builder.
Third-Party Ad ID was a legacy metric that was automatically extracted from some DCM ad tags. In those cases, this field is automatically populated.
Include HTML doctype
Check this box to include the HTML doctype as part of the Ad. You should check this for virtually all Ads because it automatically adds the HTML5 directive "<!DOCTYPE html>" as well as "<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>" to the Ad. These two items force Microsoft browsers, e.g. Internet Explorer, to render the Ad using the most recent settings, meaning it has a better chance for correct display.
Unsecure Extra HTML and Secure Extra HTML
(Optional) Input any additional tags and trackers, including both <img> and <script> tags. Macros are not automatically inserted in this field. Please reach out to Zeta Support if any assistance is needed with applying macros to the additional trackers.
Select Convert to Secure to convert unsecure HTML code to secure HTML. This speed and convenience feature simply converts any instances of "http" it finds to "https"
Select Convert to Unsecure to convert secure HTML code to unsecure HTML. It simply converts any instances of "https" to "http". Ads with an unsecure URL are not shown in the Preview tab of the DSP.
Select Add a bare URL to quickly and easily add a URL that links to an Ad image. Then select +Add this bare URL. The DSP adds it to the Unsecure Extra HTML area. If this is a secure (i.e. https) URL, select Convert to Secure to place the URL in the Secure Extra HTML area.
DMP Attributes
(Optional) When the advertiser also utilizes the Zeta DMP or the integrated DMP/DSP you may populate this field with DMP attributes.
Select + Attribute Trigger.
Select an Attribute.
Repeatedly select + Attribute Trigger to add more attributes.
Should you change your mind and no longer want an attribute, select the associated X to remove it.
Select Unset to tell the DSP/DMP to remove the attribute from the user after they view the Ad.
Frequency Counters
(Optional) When the advertiser also utilizes the Zeta DMP or the integrated DMP/DSP, you may use this field to add frequency counters. The DSP will support frequency counter targeting in a future release.
Select + Frequency Counter.
Select Increment to increase by one, or Decrement to decrease it by one.
Or choose Select a value to set a value for the counter directly.
Repeatedly select + Frequency Counter to add more frequency counters.
Should you change your mind and no longer want a frequency counter, select the associated X to remove it.
Bulk Upload
For bulk uploads, add a line to the spreadsheet for each creative asset to become an Ad in the DSP.
The DSP does not limit the number of ads you can bulk upload at one time.
UTM codes are parameters applied to URLs for tracking traffic sources for campaigns in Google Analytics.
Use the Google Analytics Campaign URL Buildertool to build out your appended URL.
Upload an Image or Video file.
Apply the UTM appended URL as the click-through URL in the DSP.
If you plan to use HTML or VAST tags, you will need to implement UTM codes via the Third-Party Ad Server.
Rotating Creative
VAST/VPAID and HTML Ad tags that have multiple creatives rotating on the back end should not be trafficked in the DSP as this can interfere with the platform's model learning. When rotating creative gets to the Ad Server, it can interrupt the bidding process by altering the expected ad call. In the case of VAST, each creative is still allowed to have multiple media files to maximize Video player compatibility.
Having multiple creatives rotating on the back end also puts ad tags at risk for being rejected on Google AdX for incorrect destination URL declaration. We recommend trafficking separate HTML tags for each creative to keep a one to one ratio between tags and back end creative sets.
This will enable the platform's model learning to gather accurate information as to which ads work best for your campaign.
This will also make attributing impressions, clicks, conversions, etc. to individual ads significantly more accurate in Analyze reporting.
This will eliminate the risk of rejection on AdX for "incorrect destination URL declaration."
If a creative rotation is needed, you can do so by
Uploading each Ad as an individual HTML tag into the DSP.
Assigning the Ads to a single line-item and tactic, which allows the DSP to experiment and learn which Ads work best for your campaign.
OR
Uploading each Ad as an individual HTML tag into the DSP.
Creating a separate line-item for each Ad so that budgets can be assigned to each Ad.
OR
Uploading each Ad as an individual HTML tag into the DSP.
Assigning the Ads to a single line-item and weighting the creatives using tactic allocation.
Managing Expandable Ads
You must declare that an Ad is expandable to the Ad Auditing team when you are creating Expandable HTML Ads. Not doing so puts the Ads at risk for rejection or failure to properly audit. To declare Expandable Ads, complete the following:
1. Select the initial Ad dimensions and/or creative size.
2. Go to the Ad Vendor field and enter Expandable. Then, select the appropriate Creative Vendor that you are using from the results (i.e., Spongecell, Zeta, etc.). If you don't see the Ad Vendor you are using as an option, select Other Expandable.
3. Next, go to the Ad Attributes field and select the option(s) that apply to your creative(s).
For example: 300x250 - "Expanding Direction: Expanding Left or Right"; or 728x90 - "Expanding Direction: Expanding Up or Down"
4. Select the Expandable checkbox.
HTML Ad Macros
This section reviews the types of macros available for HTML Ads.
In the examples provided below, DSP Ad Serving macros are often illustrated as a key-value pair, such as "&domain={domain}". The keys used in the examples provided are not fixed unless otherwise noted. For example, the {domain} macro does not need to be associated with "domain" as a key. The actual key or JavaScript variable or argument that a macro is associated with should come from the Ad Server vendor that the ad tag was generated from. Unless otherwise noted below, a DSP Ad Serving macro typically expressed in a key-value pair in a tag can be associated with any string of characters used as a key.
Ad HTML vs Extra HTML
The HTML Ad Card contains two fields, Ad HTML and Extra HTML:
Extra HTML: Data served typically from the DSP Ad Server. The DSP does not pass macro values from the bidder to the Ad Server. Some macros in the Extra HTML field will not operate as expected.
Ad HTML: Data Served from the bidder.
Common Ad Serving Macros
Click to view
Common Ad Serving Macros
{adid}
Expands to the DSP ad object ID that the macro is placed in.
Requirements Must be included in ad HTML
Expected Result Expands to the numeric value of the ad ID the macro is placed in.
Implementation
Place in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to a distinct alphanumeric string with each impression served. DSP collects Ad Instance IDs automatically, associating all tracked events with the Ad Instance ID the event tracker was served through - clicks, impressions, Video quartiles, etc. are all associated with an ad instance ID. This value is then used to deduplicate tracked events. Many ad platforms have functionally similar mechanisms that are referred to by different names. When passing this value in third-party HTML, we create a correlation point between third-party reporting and DSP reporting that enables use to better diagnosis anomalous activity.
Requirements Must be placed in ad HTML
Expected Result
Expands to a distinct value
Is query able in Hive in the adsarray on tables such as impressions, video_impressions, and clicks
Implementation
Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key value pair
Expands to a value structured similarly to "com.cleaner.effic.clean" when served into an Android app. A link to the app on the Google Play store can be created by appending the value to a specific URL such as in the following example. If the link does not work, then the given app was likely removed or replaced from the Google Play store: https://play.google.com/store/apps/details?id=com.cleaner.effic.clean
Implementation
Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to a concatenation of mobile app name and version number
Requirements: Requires mobile app inventory
Expected Result Expands to values structured similarly to "GO-WEATHER-ANDROID-GO-WEATHER-ANDROID-300X250-4-ANDROID-MEDIUMRECTANGLE-300X250-IAB20" and "GO+KEYBOARD_3.26"
Implementation
Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to a randomly generated alphanumeric string of characters used for cache busting. When given the choice between this and {timestamp}, the use of {timestamp} is preferred. We reserve the use of {cachebust} for rare instances where we need to generate a second random string that will have a different value than {timestamp}.
Expected Result Expands to a randomly generated alphanumeric string
Implementation
Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to the domain the impression is served to. Anything contained in the URL after the top-level domain is truncated. Note that this is functionally different from the {site} macro.
Expected Result
Will expand to "unknown" when served into a Google Safeframe
May expand to a value structured similarly to "app.876544448" when served into an iOS app. In this case the numeric value is the iOS app ID. A link to the app can be created by modifying the following Example
Description Functionally similar to {androidadvertisingid}, this macro expands to the Google Advertising ID for mobile traffic viewed through an Android device Requirements:
Mobile traffic
Android device
Expected Result
Expands to an alphanumeric string structured similarly to "223e53dc-22d9-481c-8fcf-406680e31adc".
Does not always expand for mobile traffic on Android devices.
Implementation
Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to the IDFA for the iOS device the user views the impression on
Requirements:
Mobile traffic
iOS device
Expected Result Expands to an alphanumeric string structured similarly to "72939E0D-059B-4D0D-A45D-73C809AEC362". Does not always expand for mobile traffic on Android devices.
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description This macro serves as a flag used most commonly with brand safety wrapped ads. When the ad containing this macro is served into a known preview environment, this macro expands to "1". Otherwise this macro expands to a blank or a "0". By expanding to a "1" and when implemented as described in HTML Ad Macros, the brand safety vendor will disable their blocking so that the ad can pass QA and audit. Vendors supporting this include IAS and DoubleVerify.
Expected Result Expands to "1" when included in an ad served into a known preview environment.
The DSP {latitude} macro expands to current latitude of the user based on data provided by the user's device GPS and is typically paired with the {longitude} macro.
Requirements
Only works on mobile traffic sharing their location with the inventory source
Should be paired with the {longitude} macro
Expected Result
In testing, approximately 10% of impressions served to mobile traffic saw this macro return latitude data
Expands to nothing if data is not available
May not work in Preview and test pages
Implementation
Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key value pair
Description The DSP {longitude} macro expands to current longitude of the user based on data provided by the user's device GPS and is typically paired with the {latitude} macro.
Requirements: Only works on mobile traffic sharing their location with the inventory source Should be paired with the {latitude} macro
Expected Result In testing, approximately 10% of impressions served to mobile traffic saw this macro return latitude data Expands to nothing if data is not available May not work in Preview and test pages
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key-value pair
Requirements: All ad objects are required to include at least one DSP click macro
Expected Result When properly implemented on an ad, the firing of this tracker will be observable in diagnostic tools such as Fiddler
Implementation
Placed in the noscript element of an ad tag
Typically set prefixing the URL declared in the HREF however, placement is contingent upon the specific tag handling instructions provided by the third-party Ad Server
Description Expands to the version of the OS the user viewing the impression is using. The value this macro expands to does not include an indication of the OS name.
Expected Result Expands to the numeric version number of the OS for the user's device. Values will be expressed similarly to "11.2" or "8" May expand to "UNKNOWN" if the OS version is not available
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to the DSP definer ID for the exchange/publisher that is the inventory source.
Expected Result Should work in DSP external preview, Mobile AdTester App, and open auction inventory
Implementation Typically set in a key-value pair contained in an ad tag. Can be set in the query string of HTML served through DSP including in Third-Party Pixels.
Description Expands to the name of the publisher serving as an inventory provider. For example, when served through the inventory provided through Smaato, this macro will expand to the value of "Smaato".
Expected Result When properly implemented on an ad, this macro will expand to the exchange/publisher name
Implementation Typically set in a key-value pair contained in an ad tag. Can be set in the query string of HTML served through DSP including in Third-Party Pixels.
Description Functionally similar to {unifiedidfa}. If the user views the impression with an iOS device, it expands to the IDFA. If the user views the impressions with an Android device, it expands to the Google Advertising ID.
Requirements:
Mobile traffic
Android or iOS device
Expected Result
Expands to the IDFA if the impression is viewed on an iOS device
Expands to the Google Advertising ID if the impression is viewed on an Android device
Expands to blank if the impression is viewed on a desktop
Not expected to function in DSP Preview
Implementation
Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP
Place in query strings contained in an ad tag expressed as a key-value pair
Description Functionally similar to {sha1googleadvertisingid}, {shadeviceid}, and {sha1androidid}. Expands to the SHA-1 encrypted Google Advertising ID for the Android device the user views the impression on.
Requirements: Mobile traffic Android device
Expected Result Additional information on SHA-1 cryptography can be found on WIkipedia.
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Functionally similar to {sha1googleadvertisingid}, {shadeviceid}, and {sha1androidadvertisingid}. Expands to the SHA-1 encrypted Google Advertising ID for the Android device the user views the impression on.
Requirements: Mobile traffic Android device
Expected Result Additional information on SHA-1 cryptography can be found on WIkipedia.
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Functionally similar to {sha1androidadvertisingid}, {shadeviceid}, and {sha1androidid}. Expands to the SHA-1 encrypted Google Advertising ID for the Android device the user views the impression on.
Requirements: Mobile traffic Android device
Expected Result Additional information on SHA-1 cryptography can be found on WIkipedia.
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Functionally similar to {shadeviceid}. Expands to the SHA-1 encrypted IDFA for the iOS device the user views the impression on.
Requirements: Mobile traffic iOS device
Expected Result Additional information on SHA-1 cryptography can be found on WIkipedia.
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Functionally similar to {sha1androidadvertisingid}, {sha1androidadvertisingid}, and {sha1idfa}. Expands to the SHA-1 encrypted Google Advertising ID for the Android device or IDFA for the iOS device that the user views the impression on.
Requirements: Mobile traffic Android or iOS device
Expected Result Additional information on SHA-1 cryptography can be found on WIkipedia.
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to the Geo-IP value for 'state' for the user viewing the impression provided DSP is aware of this value
Expected Result Expands to the Geo-IP value for 'state' for the user viewing the impression. Values will be structured similarly to "Alaska"
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to the DSP Tactic ID that the impression is associated with
Requirements: Must be served through the ad HTML
Expected Result Expands to the numeric ID for the DSP Tactic that the impression was served through
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to a numeric value based on time. Used commonly for cachebusting
Expected Result Will function when included in ad HTML
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Functionally similar to {rawdeviceid}. If the user views the impression with an iOS device, it expands to the IDFA. If the user views the impressions with an Android device, it expands to the Google Advertising ID.
Requirements:
Mobile traffic
Android or iOS device
Expected Result
Expands to the IDFA if the impression is viewed on an iOS device
Expands to the Google Advertising ID if the impression is viewed on an Android device
Expands to blank if the impression is viewed on desktop
Not expected to function in DSP Preview
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair
Description Expands to the DSP user ID for the user who views the impression
Expected Result Expands to the distinct user ID for the user viewing the impression Value will be structured similarly to "2950103812322216175"
Implementation Place directly in the code of an ad tag so that the macro is visible in the ad HTML displayed in DSP Place in query strings contained in an ad tag expressed as a key value pair