Even if you have the Read/Create access on Campaign, to be able to create Campaign records, the User must have Marketing User
option enabled on the User record.
From Who has access to campaigns?
However, only designated marketing users with the appropriate user permissions can create, edit, and delete campaigns and configure advanced campaign setup. An administrator must select the Marketing User
option on a user’s personal information to designate that user as a marketing user.
I couldn't find this documented very clearly but you cannot create a Campaign record using Guest User license type. If you try to enable this option for the Guest User associated to the Guest Profile for the Site, you won't be able to enable this option, and that it results in an error saying (sample screenshot below):
Marketing User is not allowed for this License Type.
Your option here could be to create records using some other object and then converting them to Campaign using some custom code running behind the scenes.
