Animated GIF Banner Rules: Length, Loops, Frame Rate and Weight
For Google Ads an animated GIF banner must weigh 150 KB or less, stop animating within 30 seconds and run slower than 5 frames per second. Loops are allowed, as long as the loops together stop at 30 seconds. There is no official "three loops" rule on any Google platform: the total running time is what gets checked.
The rules by platform
| Platform | Weight | Animation length | Frame rate |
|---|---|---|---|
| Google Ads | 150 KB for GIF, JPG and PNG image ads | 30 seconds or shorter. Loops allowed, but animation must stop after 30 seconds | Slower than 5 FPS |
| Display & Video 360 | Set by the publisher and deal | Ads can animate for no longer than 30 seconds | No published rule |
| Campaign Manager 360 | Image creatives up to 9.5 MB | No published cap, publishers set their own | No published rule |
| IAB guidance | Initial load weight for the size, for example 150 KB for 300×250 | 15 seconds, with no looping beyond 15 seconds | Avoid flashing and fast movement |
Sources: Google's uploaded display ads specifications, DV360's display creative guidelines, CM360's asset options and the IAB New Ad Portfolio. The per size IAB weights are in the banner ad sizes chart.
How loops add up to running time
A GIF stores a delay for every frame and, in its NETSCAPE block, a loop count. One loop lasts as long as all the frame delays added together. The total running time is one loop multiplied by the number of plays. A loop count of 0 means forever, which always breaks a 30 second rule. AdCheckLab reads a count of N as N repeats after the first play, so a count of 2 means three plays.
- An 8 second loop that plays three times runs for 24 seconds. That passes.
- The same loop played four times runs for 32 seconds. That fails, even though it never loops forever.
- A 12 second loop can play twice (24 seconds) but not three times (36 seconds).
The last frame stays on screen when the animation stops, so make it the frame that carries the logo and the call to action.
The 5 FPS rule in practice
Five frames per second is one frame every 0.2 seconds. To stay below that rate, give every frame a delay of at least 0.2 seconds, which is 20 hundredths of a second in most GIF export dialogs. A single fast frame, such as a quick flash between two scenes, is enough to break the rule. In Google Ads mode the validator lists how many frames are faster and how short the shortest one is.
Setting delay and loops in Photoshop
- Open the Timeline panel in frame animation mode.
- Select all frames, click the delay under any frame and choose 0.2 seconds or longer. Hold the end frame for longer with Other.
- In the looping menu at the bottom of the panel choose Once, 3 Times or Other and type a number. Never choose Forever for an ad.
- Export with File, Export, Save for Web (Legacy) as a GIF.
Export tools do not all write the loop count the same way, so check the exported file rather than the dialog: the validator reports the number of plays and the total time it read from the GIF itself.
Getting a GIF under 150 KB
- Cut frames first. Two or three held scenes weigh far less than a smooth tween.
- Reduce the colour table well below the 256 colour maximum of the format, and turn dithering down.
- Keep large areas flat. Gradients and photographs compress badly in GIF.
- If the animation needs photography, build it as an HTML5 banner instead, where the limit is 600 KB. The compression guide covers that route. The Banner Compressor works on PNG and JPEG, not GIF.
Check the GIF before you upload
Drop the GIF into the HTML5 Banner Validator and pick the platform. It decodes every frame and reports GIF File Size Exceeded, Animation Never Stops, Animation Exceeds 30 Seconds or Frame Rate Faster Than 5 FPS, with the numbers behind each result. The 30 second cap is an error for Google Ads and DV360 and a warning elsewhere. For HTML5 banners, DV360 applies its 30 second cap to CSS and JavaScript animation too, and it is the safe default on every platform: see the Google Ads HTML5 requirements and the QC checklist.