Yes, the gift needs to be set up as a product. Follow these instructions:
The best way to hide a product from search and collections while still being live is to create a new product metafield. Call this "SEO Hidden", and ensure that key is exactly "seo.hidden". Then give it a type of "integer". Once created, add the value of "1" into this metafield on the product you want to hide. This will ensure that the product is hidden from search and collections, while still able to be added to cart. Once the GWP is set up you can turn it on and preview it, it will show up in the cart when someone adds that product to their cart.