Of course I figure it out minutes after posting. I'll share what worked for anyone else who has the same question.
client = Google::APIClient.new(authorization: nil)
shopping = client.discovered_api("shopping", "v1")
response = client.execute(key: "<MY_ACCESS_TOKEN>",
api_method: shopping.products.list,
parameters: { source: "public", country: "US" })