Creative Specs Gmail Sponsored Promotions Overview The GSP creative asset will be a ZIP folder, containing four components: 1. Teaser text file 2. Teaser logo image 3. HTML file with the fully expanded ad unit 4. File folder containing any images from the fully expanded HTML ad updated 11/7/2013 Preview of ZIP folder Key Takeaways Creative ZIP has a max of 100 files Each file has to be less than 500 KB in size Max image size in pixels is 650x650 1. Teaser Teaser ad info saved as text file: 'teaser.txt' Sender: 15 characters (must be either the domain or recognized name of the advertiser) Subject: 25 Characters (can include an offer, % discount or compelling announcement) Body: 100 Characters (short summary or powerful call to action) URL: 25 characters such as www.google.com Note: No ALL CAPS words are allowed in the teaser. We automatically generate the HTML for this as seen below. Provide the above components for the teaser.txt file.
2. Teaser Logo Image Small icon, graphic or brand logo for teaser banner ad. Image saved as 'teaser.png', 'teaser.gif' or 'teaser.jpg' Image size: 50x50 pixels 3. Fully Expanded Ad: the HTML creative asset Basic Message Ad Max Width: 650px Height: Unlimited (recommend no more than 650px) Recommend use of Table to ensure consistent presentation on multiple browsers Allowed Markup: HTML No Javascript (inline or linked.js files) No Stylesheets (style attribute of tags is okay though) No Flash, HTML5, Audio, iframes or animated images Some CSS is not supported. See below for further details. No 3rd party pixels: only static click trackers, no dynamic click trackers. Sample Creatives: Ask your Google rep for a mock and we ll send a template creative ZIP for reference. Test it out: Please try all creatives in the tool: https://www.google.com/ads/gsp/creative/ Good to know: Please make sure to push the Request Approval button for review. Policy/Legal Issues around ad copy: If there is any uncertainty around messaging you are planning to run, please reach out to the GSP team for clearance.
4. Images Folder Provide the files of any images that feature in the HTML creative. This will be a folder, saved as 'images', with any image files saved as '.png', '.gif' or.'jpg' Preview: Detailed HTML Specs The HTML is the main body of the advertisement. The HTML and CSS must be well formed. It will be rendered with <!DOCTYPE html>. Guidelines for index.html Fixed maximum width of 650px Use UTF 8 encoding Styling / CSS guidelines Tables tend to give the most consistent layout across various browsers Use per attribute style declarations e.g. <div style= color: black; font size: 1.2em > background image is okay to use Supported CSS in GMAIL Note: Not all possible values of each property are supported. background attachment', border top right radius', margin', background clip', border top style', max height', background color', border top width', max width', background image', border top', min height', background origin', border width', min width', background position', border', outline color',
background repeat', font family', outline style', background size', font size', outline width', background', caption side', outline', border bottom color', clear', overflow x', border bottom left radius', color', overflow y', border bottom right radius', direction', overflow', border bottom style', display', padding bottom', border bottom width', empty cells', padding left', border bottom', float', padding right', border collapse', font stretch', padding top', border color', font style', padding', border left color', font variant', quotes', border left style', font weight', table layout', border left width', font', text align', border left', letter spacing', text decoration', border radius', line height', text indent', border right color', list style image', text overflow', border right style', list style position', text transform', border right width', list style type', vertical align', border right', list style', white space', border spacing', margin bottom', width', border style', margin left', word break', border top color', margin right', word spacing', border top left radius', margin top', word wrap'
Embedding a YouTube Video A YouTube video can be embedded into an ad with a preview window. When the user clicks on the video teaser, the video will play in a lightbox inside of Gmail. To embed a video Include this snippet: <a href="http://www.youtube.com/watch?v=ohg5sjyrha0"> <img src="images/gmail ninja preview.jpg" alt="gmail Ninja Video"> </a> Just make sure to replace the youtube link, image source and alt to be appropriate for your ad. If you happen to use this html snippet and you don t want the video to play in a lightbox, please set the class nonplayable, as shown below: <a href="http://www.youtube.com/watch?v=ohg5sjyrha0" class="nonplayable"> <img src="images/gmail ninja preview.jpg" alt="gmail Ninja Video"> </a> It is recommended that the image you use (in this example, images/gmail ninja preview.jpg) include some type of play button so that users will know that clicking will play a video. The system does not add anything to this image to indicate that it will play a video. Removing ad overlays from your embedded videos Within the host Youtube account, there is a setting to disable ads on top of your videos. Embedding a Form Use a Form in the expanded ad to shorten the steps to conversion. Embedded forms are the most recommended use of GSP because it reduces the path to convert and drives higher conversion rates, right within Gmail. Your customer will fill out the text fields and click to submit, sign up, or complete any other desired action and continue on to your landing page. All information will be passed directly to the advertiser, nothing is passed or saved on Google servers.
Form Field Validation Types To add more value to forms, several validation types have been built into Gmail Sponsored Promotions. To take advantage of these validations, the advertiser can make several small adjustments to their creative. Non empty input or textarea: To ensure that a text field in a form is not left empty, simply add the attribute required to the input. ex: <input required type="text" size="25"> or <textarea required rows="3" cols="20"></textarea> Telephone type input: To ensure that a telephone type text field has a valid US phone number, simply add the attribute x autocompletetype="phone full" to the input. If the field is not marked as required, it will only be validated if it contains a value. The accepted format will be anything that has 10 digits, spaces, dashes and parentheses such as 6505555555/650 555 5555/(650) 555 5555/etc.
ex: <input type="text" x autocompletetype="phone full" size="25"> or <input required type="text" x autocompletetype="phone full" size="25"> Email type input: To ensure that an email type text field has a valid email format, simply add the attribute x autocompletetype="email" to the input. If the field is not marked as required, it will only be validated if it contains a value. The accepted format will be a text string in the format xxx@xxx.xxx. ex: <input type="text" x autocompletetype="email" size="25"> or <input required type="text" x autocompletetype="email" size="25"> Zip code type input: To ensure that a zip code type text field has a valid zip format, simply add the attribute x autocompletetype="postal code" to the input. If the field is not marked as required, it will only be validated if it contains a value. The accepted format will be a string beginning with 5 digits. ex: <input type="text" x autocompletetype="postal code" size="25"> or <input required type="text" x autocompletetype="postal code" size="25"> Submit type input: To take advantage of forms in message ads the submit button must conform to the following format: <input type="submit" style="..."> Incorrect or invalid entries in form When validation of a field fails, user will not being to submit form. The user will be informed which fields require fixing. In browsers that support html5, the user will see a tooltip on fields that were marked as required and have no value; on older browsers the input will be highlighted red and they will see an error message at the top of their window. For fields which have specific validation (phone/email/zip code), the input will be highlighted red and they will see a specific error message at the top of their window. When the form validates successfully, it will submit.
Successful submission of the form will result in the user being directed to the advertiser's landing page!
Dynamic Ads Overview With the advent of Dynamic Ads, advertisers can use a special syntax to to insert dynamic fields into various parts of their ad teaser. These fields will then be populated by reading a feed that is defined in a Google spreadsheet when the ad serves. This allows for easy updating of frequently changing values in an ad (such as mortgage rates or daily discounts) without needing to access the Gmail Sponsored Promotions advertiser dashboard. Setting up a feed When the user navigates to the Ads section they will see a new button labelled +Feed. When they click on +Feed, a popup will open prompting the user for a feed name and offering a Create button.
When the user clicks on Create, a new Google spreadsheet is created and shared with them (this might take a few seconds). The url of the new spreadsheet is provided in the popup. The spreadsheet can also be opened later by using the link the the new menu called My Feeds on the Ads page. The newly created spreadsheet will have 3 sheets (seen at the bottom of the spreadsheet). The first sheet called sync data should not be edited as it contains a unique url required to sync the new feed, more on this later. The second sheet called feed data is where the user will enter the dynamic values. The third sheet is called do not edit and contains metadata for administrative use and should not be changed.
At this point the feed is set up and needs to be populated with data. To do so, values must be entered in the second tab called feed data. A column should be defined for each dynamic field the user intends to use in their ad. Column names should not contain spaces or special characters (they should be alpha numeric with underscores). For each field, a value must be defined. In the above example, the user has defined 3 dynamic fields; rate, today_date and tracking_url. A single value has been provided for each field. These are just examples, any field can be created. Once all the feed data has been populated, the user must sync the feed by clicking the link in the first sheet called sync data. Clicking this link should open a new tab and should eventually display a success message (this will take a few seconds). This means the data in the spreadsheet has been successfully synced.
Note: Any time the feed data is changed in the spreadsheet, the procedure should be repeated to ensure that the data is synced. Note on sharing When the spreadsheet is created it is shared only with the person who requested its creation. It is therefore important that this person share the spreadsheet with anyone else that may require access to it as it does not automatically inherit access permissions from the account. It is important to share the spreadsheet with anyone who may need to update it (this is also important because account managers move around and sharing the spreadsheet with a wider audience ensures that the feed won t be orphaned). People who do not have access to the spreadsheet but who have access to the account will still be able to use the feed, they just won t be able to update its values. Using the feed in an ad Once a feed has been created it will appear in the list of available feeds in the first step of the Ad wizard. The user must select the field they wish to use before proceeding to the next steps.
Once they have selected a feed, they can use the dynamic values in any of the supported fields using the following syntax: {$column_name=[some default value]}. The column name is defined in the spreadsheet (ex: tracking_url, rate or today_date) and the default value can be any text the user wishes to use if for some reason the dynamic value couldn t be used. One case where the default values would be used as opposed to the dynamic values is if one/several of the dynamic values cause the ad to violate some criteria such as length of a field (ex: causes title to be more than 25 characters). Dynamic values are all or nothing, if a single one causes the ad to be invalid then all will fall back to their default value.
The preview will show what the ad will look like with default values: The actual ad (unless invalid) will show the dynamic values when it is shown to users:
The advertiser must be conscious that all character limitations for teaser fields be honored with or without the dynamic values otherwise the defaults will be shown. Supported fields Currently fields that support dynamic content are: Teaser Sender name Title Body Sender display short URL Redirect URL Ad body Anchor href (ex: <a href= www.mypage.com/{$tracking_code=[xyz]} >) Form action (ex: <form action= www.mypage.com/{$tracking_code=[xyz]} >) Campaign specific dynamic values Often an advertiser needs to create multiple creatives that are essentially identical with only slight differences such as different tracking codes within the ad body url s for their different campaigns. With dynamic creatives, advertisers can now create a single creative and use dynamic field placeholders where those variable pieces need to be and decide what should be there on a per campaign basis by specifying the campaign id for each value in their feed. To use this feature, the advertiser needs to first set up all their campaigns as before. Once all the campaigns have been created, the campaign id s (which can be found on the overview page) can be used in the feed to specify which values to use for each campaign. To do so, create a column in the feed called "gsp_campaign_id" and list the id s of the desired campaigns in that column. Then add the other columns as before. Now every row of dynamic values will be used specifically for the given campaign.
NOTE: It is important to keep in mind that at the time of rendering the ad with dynamic values, if any single dynamic field used does not have an associated dynamic value, all will resort to using their default values for consistency. To avoid this situation, make sure you have provided a value in each column for every row.