What’s the limit when uploading photos or gifs.( size)?

CDMP folders are limited to upload the files(jpeg , png, gif etc) up to 500kb max. This limitation is for the reminder to the platform user not to upload large sized files and not to create larger sized contents (Especially email) because larger sized email newsletter content appears to be spammy to the email servers.

How to create a Customization field in the content?

When preparing content, use customization tags (<%>) to insert variables from contact, device, or sendlist tables. For example, {%=$Contact.name%} for the contact table and {%=$Device.token%} for the device table. Tags from other tables or SQL segments follow a structure like {%=$Current.column_name%}.
Ensure the campaign's audience includes the table or segment you select columns from to fill customization fields correctly. No need to target master_contact or master_device tables for contact or device columns; the system matches device_id and contact_key automatically.

Check the message with variables by sending a test message before finalizing.

How can I create a transactional content (email/push/sms)?

To create transactional content you can follow these steps for the different channels of content.
https://dev.dengage.com/reference/sendtransactionalemail

How can I send coupon codes that have been defined to the contacts?

In the master_contact table, you have the option to introduce a new field designated for your coupon codes. To populate this field, you'll require a data import process. Ensure your file includes the contact_key along with the coupon code field. Once the table has been updated, you can easily incorporate the desired field during content creation using the customization function ({%}).

Alternatively, you might maintain a separate regular table specifically for storing contact_keys and their corresponding coupon codes. Within the star schema, establish a connection between this table and the master_contact table. Subsequently, create a segment utilizing a table filter to target this newly created table. When creating content, employ customization like {%=$Current.column_name%} to utilize the coupon codes from this connected table.

How to insert a dynamic content from a table into a content?

You have the option to integrate dynamic content from the Master Contact Table by employing a customization tag...
OR
When utilizing information from any table to search for data across various channels, you can incorporate it through a code snippet.