Fixing 'Missing Primary Asset index.html' Upload Error
You have compiled your banner, validated the clickTag, compressed the assets, and zipped the folder. But when you upload the package to Google Ads or Campaign Manager, you get a blocker error: "Missing primary asset. index.html not found."
The Common Cause: Nested Enclosing Folders
This error is almost always caused by compression folder structures. When you right-click a build folder and select "Compress" on Mac or Windows, the zip utility wraps the parent folder *inside* the ZIP archive. The file tree looks like this:
banner_creative.zip
└── banner_300x250/
├── index.html
├── styles.css
└── assets/
Because the ad server checks for `index.html` at the absolute root of the archive, it fails to find it because it is nested inside the `banner_300x250/` folder.
The Correct Compression Fix
To resolve this, do not compress the main folder. Instead:
- Open the final build folder containing your assets.
- Select all files directly (highlight `index.html`, script files, asset folders).
- Right-click and select **Compress (or Send to Compressed Folder)**.
- Rename the resulting ZIP file. The `index.html` file will now sit at the root level.