When uploading creatives in Google Ads, you may receive an error message. In most situations, the problem can be fixed by altering your file and re-saving. You can then try to upload your file again.
Check your ads using the Google Ads HTML5 validator.
This article will help you respond to specific error messages that you may receive while trying to upload creatives. For more detailed requirements, check our Image Policy page.
Note: When you upload a new custom dynamic ad, make sure it has the appropriate type (dynamic) and business type. The business type of the creative should match the campaign, you can find more information about your feed at the Campaign Settings page. Custom dynamic ads can only be created in Google Web Designer.
Additionally, make sure that your ad is designed to show one product or more, but not a specific, fixed number of products (2 or 3, for example), because Google will only be able to guarantee that one or more products will be shown for dynamic remarketing.
HTML5 ads
The ad contains an unsupported file type. To fix the issue, remove any unsupported file typesTo check if your .ZIP contains an unsupported file type, try the following:
- Open the .ZIP by double-clicking on it.
- In the resulting folder, make sure that each file is one of the supported file types: .CSS, .JS, .HTML, .GIF, .PNG, .JPEG and .SVG. If you find one that is not supported, remove it.
- To save your updated version, select all files in the folder, and click File > Compress items.
- If your folder doesn't zip correctly, it might be because you compressed the folder. Make sure that you select each item, not the entire folder.
.
), hyphens (-
), and underscore (_
)
To check if your .ZIP file contains filenames with unsupported characters, try the following:
- Open the .ZIP file by double-clicking on it.
- In the resulting folder, make sure that each file name uses only supported characters: letters, numbers, periods (
.
), hyphens (-
), and underscores (_
). Rename files with names that contain characters other than the supported ones. If you have subfolders in your .ZIP file, make sure to open and inspect those files, too. - To save your updated version, select all files in the folder, and click File > Compress items.
- If your folder doesn't zip correctly, it might be because you compressed the folder. Make sure to select each item, not the entire folder.
To fix the issue, search for the above unsupported tags in your creative code. You’ll need to check all files stored within your .ZIP file and delete them.
In many cases, the issue is with unsupported .SVG tags. In that case, search your creative code for tags that aren't included in one of the supported categories (container elements, gradient elements, and graphics elements). Learn more about which supported tags are mapped to which categories.
<meta name=”ad.size” content=”width=300,height=250”>
.
Primary .HTML files include an Ad Size tag such as <meta name=”ad.size” content=”width=300,height=250”>
.
- Open your .HTML file and search for the Ad Size meta tag. If you find it, make sure it’s contained in the
<head>
tag and that the<head>
statement is closed with a</head>
. - Replace quotation marks manually as copy/pasted ones can throw an error (are not accepted by Google Ads).
- This error can also appear when you try to upload files from DCLK Studio. Those files aren't accepted by Google Ads and can't be uploaded. DCLK should be trafficked via 3PAS per usual.
Make sure the file names of all files in your .ZIP file are exactly the same as the name listed in the reference file.
For example, if one of the files in your .ZIP file is called path/to/example/asset, but in your HTML file you reference path/to/example/asset2, Google Ads will not be able to find the correct file.
To fix the issue, compare the filename listed above with every file in your HTML5 code. If it isn't exactly the same, correct the reference.
Google Ads doesn't allow multiple exits. Remove multiple exits and try to re-upload the ads.
You can only reference files found in your uploaded .ZIP file, and the file listed above is not found there. To continue, remove any references in your HTML file to assets found outside of the .ZIP file.
The asset listed in the error message cannot be found in your .ZIP file. You will also need to remove any references to that file. The only allowed external references are the following:
- Google Fonts
- Google-hosted jQuery
To fix corrupted files inside of your .ZIP, try the following:
- Open the .ZIP file by double-clicking on it.
- In the resulting folder, open each individual file and save it again.
- To save your updated version, select all files in the folder, and click File > Compress items.
- If your folder doesn't zip correctly, it might be because you compressed the folder. Make sure to select each item, not the entire folder.
<head>
section of your index.html file.-
<script src="https://tpc.googlesyndication.com/pagead/gadgets/html5/api/exitapi.js"></script>
After removing this script tag, your entire ad will be clickable. You can leave the button but any click on the ad will take the user to the landing page.
Remove your onclick event to call the ExitAPI.exit from your index.html file.
- For example:
<button onclick="ExitApi.exit()">
Your HTML5 ad couldn't be uploaded. Your account doesn't support HTML5 ads
Requirements for using HTML5 ads
You should be able to gain access to HTML5 ads in your Google Ads account once your account has met the following requirements:
- Account has been open for more than 90 days.
- Account has more than $9,000 USD total lifetime spend.
- Account has a good history of policy compliance.
Keep in mind, that meeting the requirements above doesn’t always guarantee access to HTML5 ads.
If HTML5 ads are unavailable in your account, you can apply for access by filling out the Apply for HTML5 access form. Before you submit your application, make sure that your account meets the eligibility criteria listed below. You will receive an email notification with a status update within 7 business days of your application submission.
- Account has a good history of policy compliance.
- Account has a good payment history.
- Account has more than $1,000 USD total lifetime spend.
To maintain continued access to HTML5 ads, make sure that you don't violate our policies and sustain a good history of policy compliance.
In the meantime, you can use other options like uploaded AMPHTML ads or responsive display ads.
Make sure that you follow the correct display ads specifications.
The uploaded ZIP file isn't supported. Please upload ads that aren't linked to a feed
- Verify if this is the right campaign for this ad.
- If this is the right ad and right campaign, link the campaign to a feed
- If this is not the right campaign or ad:
- Right ad: upload this ad to a campaign linked to a feed
- Right campaign: upload an ad not linked to a feed to this campaign
Creatives is missing text
Preview doesn't click through
- Fully functioning preview is only available via the "View full size ad" link after saving the ad.
- Clients must then copy/paste the URL in their browser.
- Creatives will not click-through in the ad creation preview or the "View full size ad" preview pop-up.
You're encountering a status error for Invalid Fourth Party Call
<video>
tags and remove them.AMPHTML Ads
The HTML document was rejected by the canonical AMP validatorAlert message | Your HTML file is not a valid AMPHTML ads document. Please check it with the AMP validator first. |
Solution | Make sure the AMPHTML ads pass the validation using this publicly available AMP validator. |
Best practice | Use the AMP validator before uploading your HTML documents. |
Alert message | Internal error occurred. If the error still persists, reach out to the support team with the testing bundle. We will look into the issue at the earliest. |
Solution | N/A |
Example: An AMP custom element like <amp-audio>
is not supported.
Alert message | AMP custom element <$name> is not supported. |
Solution |
Remove the unsupported AMP elements as well as their javascript imports from the HTML. For example:
|
Best practice | Only use supported AMP elements. |
Example: Unsupported AMP custom element <amp-audio>
is imported.
Alert message | Unsupported AMP custom element <$name> is imported. |
Solution | Remove the unsupported AMP elements as well as their javascript imports from the HTML. For example: <amp-audio width=”400” height=”300” src=”audios/myaudio.mp3”></amp-audio> from the <body> section, and also <script async custom-element=”amp-audio” src=”https://cdn.ampproject.org/v0/amp-audio-0.1.js”></script> from the <head> section. |
Best practice | Only use supported AMP elements. |
Example: Forbidden asset path: _a4a/invalid.
Alert message | Forbidden asset path: $assetPath. |
Solution | Rename the directory. |
Best practice | Avoid using reserved directory names for asset paths, such as “_a4a.” |
The bundle contains incompatible vertical information
Example: CSS parsing error: ”... .foo:nth-child(1n) { color: red } …
”.
Alert message | CSS parsing error: ”... .foo:nth-child(1n) { color: red } … ”. |
Solution | Fix the errors in the attached CSS snippet. Most of the time these errors are related to CSS pseudo selectors, which are not supported in the current Google Ads experience. Please remove them from the amp-custom style block. |
Example: The attribute “srcset
” in tag “amp-ing
” contains invalid value “a b c
”.
Alert message | The attribute “$attrName ” in tag “$tagName ” contains invalid value “$value ”. |
Solution | This usually means that the attribute value is malformed. For example, the “on ” attribute may contain a malformed event action. Check the current AMPHTML specifications to determine the correct value format. |
Example: The attribute “class
” in tag “div
” contains value “amp-carousel-slide
,” which is forbidden.
Alert message | The attribute “$attrName ” in tag “$tagName ” contains value “$value ” that is forbidden. |
Solution | Check to make sure that your attributes don’t contain any reserved values. Element classes shouldn’t contain reserved class names like “amp-carousel-button .” Likewise, “AMP ” is not allowed as the target of an event action. |
Best practice | You may want to refer to the Google Ads AMPHTML ads specifications and check the list of disallowed values before creating your ads. |
Example: Missing “finalURL
” for “exit1” in tag “amp-ad-exit
” configuration.
Alert message | Missing “$value ” for “$item ” in tag “$tagName ” configuration. |
Solution | AMP elements like <amp-ad-exit> and <amp-animation> require a JSON configuration. Please refer to the corresponding AMP element specifications for the valid configuration format. |
Example: Invalid value for “selector
” in tag “amp-ad-exist
” configuration.
Alert message | Invalid “$value ” for “$item ” in tag “$tagName ” configuration. |
Solution | AMP elements like <amp-ad-exit> and <amp-animation> require a JSON configuration. Please refer to the corresponding AMP element specifications for the valid configuration format. |
Example: “Filters
” is not a supported tag in “amp-ad-exit
” configuration.
Alert message | “$item ” is not supported in tag “$tagName ” configuration. |
Solution | The configuration item isn't supported in Google Ads. Remove it from the configuration. |
Example: Multiple occurences of “amp-ad-exit
”.
Alert message | Found multiple occurrences of “$item ”. |
Solution | Remove those extra elements from the document and keep only the one instance. |
Example: Your AMPHTML ad has modified clickability, “tap:exit-api.exit(target=’product1’)
”, which is not supported.
Alert message | Your AMPHTML ad has modified clickability, “$exit ”, which is not supported. |
Solution | Remove the <amp-ad-exit> configuration and javascript import from the HTML. Remove the event actions that invoke exit-api.exit (for example, <button on=”tap:exit-api.exit(target=’product1’)”> ) |
Alert message | The ad contains multiple entry points. Make sure there is only one .HTML file with an ad size tag in your HTML5 ad, and try again. |
Solution | Make sure there is only one HTML file to show ad content in the .zip file, and remove the extra HTML files. |
Example: The CSS property value “width:100%
” is not allowed for selector “.amp-carousel-button
.”
Alert message | The CSS property value “$cssPropertyName:$cssPropertyValue ” is not allowed for selector “$cssSelector .” |
Solution | Remove the CSS property value indicated in the message from the amp-custom style block. |
Google Web Designer HTML5
Your ad violates one of the Google Ads policies. Check problems listed in the original error message.
Before you can upload your ad, you'll need to remove any unsupported features. You can do this by opening the index.html file in your .ZIP file. You can find unsupported features in the "gwd-admetadata" section.
- Expandable ad: Search "creativeProperties." The minWidth should equal maxWidth and minHeight should equal maxHeight.
- Counters or timers: search “counters” or “timers.” These arrays should be empty.
- Multiple exits
- Videos
- Maps
- You can find a complete list of supported features here.
In Google Web Designer, you must include images for all visual states of the image button.
For example, in the below code snippet from an example index.html file, the images for the up-image, over-image, and the down-image are missing (refer to bolded text).
<gwd-imagebutton id="gwd-imagebutton_1" up-image="" over-image="" down-image="" scaling="cover" class="gwd-imagebutton-tcf2">
</gwd-imagebutton>
Learn more about The Image Button component.
To fix the issue, replace the placeholder.png with the image(s) you want to use and make sure the image is included in the .ZIP file.
Note: The error message should explain what is missing. In some cases, you’ll find "" as missing. In this case, it's likely that the image location wasn't specified. Open your .ZIP file and locate your index.html file. Inside, you can search for ' ="" to find the error.