{"id":22497,"date":"2021-08-23T16:00:16","date_gmt":"2021-08-23T16:00:16","guid":{"rendered":"http:\/\/making_ugc_shoppable_with_cloudinary"},"modified":"2026-02-19T15:31:57","modified_gmt":"2026-02-19T23:31:57","slug":"making_ugc_shoppable_with_cloudinary","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary","title":{"rendered":"Making UGC Shoppable With Cloudinary"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p><a href=\"https:\/\/cloudinary.com\/solutions\/user-generated-content\">User-generated content (UGC)<\/a> is a powerful marketing tool. Not only does video complement marketing efforts for e-commerce by enabling customers to explore products in greater detail, but UGC also adds an element of trust. As a bonus, user-generated video is an exceptional opportunity for e-businesses to attract website traffic without their marketing team having to create promotional videos from scratch. User-generated content drives conversions and brand loyalty as a direct result of authentic interaction.<\/p>\n<p>However, without the right tools, it can be frustrating to add user-generated videos to an e-commerce site. On top of that, someone must review each and every video to ensure that the content is safe and brand-friendly\u2014a nontrivial task. Cloudinary automates the process of accepting and even moderating content from your users, saving you time and money.<\/p>\n<p>Cloudinary unleashes the power of UGC through interactive shoppable videos. To begin with, it\u2019s a breeze to upload <a href=\"https:\/\/cloudinary.com\/glossary\/content-review-process\">content<\/a> to Cloudinary, after which you can moderate it automatically. Plus, you can create shoppable videos and enable visitors to make purchases right from Cloudinary\u2019s video player embedded on your site, ultimately making it easier\u2014and more likely\u2014for them to buy from you.<\/p>\n<p>This article shows you how to easily set up moderated and shoppable user-generated videos on your <a href=\"https:\/\/cloudinary.com\/guides\/e-commerce-platform\/select-the-right-e-commerce-platform-for-your-needs\">e-commerce site<\/a> with <a href=\"https:\/\/cloudinary.com\/users\/register\/free\">Cloudinary<\/a>. In terms of programming technology, all you need is HTML, JavaScript, and Ruby.<\/p>\n<h2>Getting Started<\/h2>\n<p>Before you can start accepting UGC, you need a site with which users can interact. For this example, let\u2019s start with a stripped-down version of a <a href=\"https:\/\/www.w3schools.com\/w3css\/tryit.asp?filename=tryw3css_templates_clothing_store&amp;stacked=h\">W3Schools<\/a> template. Without images, it looks like this:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_600,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/shopping-page.png\" alt=\"e-commerce page\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1200\" height=\"689\"\/><\/p>\n<h2>Accepting UGC<\/h2>\n<p>Accepting UGC can be as easy as pasting in the code for the Cloudinary upload widget. We\u2019ve done all the heavy lifting for you to ensure a smooth sail for your user uploads. You can add that handy user interface to almost any site by providing only minimal information with JavaScript.<\/p>\n<p>Let\u2019s say you want users to be able to directly upload to your e-commerce site videos that show the unboxing process of your products. The most obvious thing to do first is to add a button to trigger the upload widget. The code below places the button\u2014however unpolished it might look right now\u2014in the navbar at the top of the page:<\/p>\n<p><code>&lt;button id=&quot;upload_widget&quot; class=&quot;cloudinary-button&quot;&gt;Upload files&lt;\/button&gt;<\/code><\/p>\n<p>Right now, the button merely acts as a placeholder. To connect it with Cloudinary, add the script of the Cloudinary upload widget and bind the button click to a function that triggers the widget to your HTML, as follows:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>&lt;script src=&quot;https:\/\/upload-widget.cloudinary.com\/global\/all.js&quot; type=&quot;text\/javascript&quot;&gt;&lt;\/script&gt;  \n\n\n\n&lt;script type=&quot;text\/javascript&quot;&gt;  \nvar myWidget = cloudinary.createUploadWidget({\n  cloudName: 'my_cloud_name', \n  uploadPreset: 'my_preset'}, (error, result) =&gt; { \n    if (!error &amp;&amp; result &amp;&amp; result.event === &quot;success&quot;) { \n      console.log('Done! Here is the image info: ', result.info); \n    }\n  }\n)\n\n\n\ndocument.getElementById(&quot;upload_widget&quot;).addEventListener(&quot;click&quot;, function(){\n    myWidget.open();\n  }, false);\n&lt;\/script&gt;\n<\/code><\/pre>\n<p>With the script styles defined, your button now looks like this:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_600,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/upload-button.png\" alt=\"Upload button\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1200\" height=\"684\"\/><\/p>\n<p>Clicking the button causes the modal to appear, but the widget would fail to load. To fix that, connect the widget to your Cloudinary account.<\/p>\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>If you haven\u2019t created a Cloudinary account yet, <a href=\"https:\/\/cloudinary.com\/users\/register\/free\">do that now<\/a>\u2014it\u2019s free! Enjoy a generous use limit with no expiration date.<\/p><\/div>\n<p>Log in to your account, click the <strong>Settings<\/strong> icon at the top, and then click the <strong>Upload<\/strong> tab. Scroll down to <strong>Upload presets<\/strong>.<\/p>\n<p>First, create a new upload preset by clicking <strong>Add upload preset<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/ugc-upload-preset.png\" alt=\"Add upload preset\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1400\" height=\"732\"\/><\/p>\n<p>This will take you to a new page, where you can edit the details of the preset. You can change the name if you like, but be sure to set Signing Mode to Unsigned, as shown in the screenshot above.<\/p>\n<p>You also have the option to enable <a href=\"https:\/\/cloudinary.com\/guides\/automations\/automated-content-moderation\">automated content moderation<\/a>. If you click <strong>Upload Control<\/strong> on the side panel, you can select your moderation add-on of choice. We\u2019ll go more into detail later in this article, but for now, you can just select Amazon Rekognition and leave the default values.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/ugc-upload-control.png\" alt=\"Upload control\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1400\" height=\"1127\"\/><\/p>\n<p>Click <strong>Save<\/strong>, and you\u2019ll be taken back to the page that indexes all your upload presets. Next, copy the name of the unsigned upload preset that you just created. This wraps up our work in the Cloudinary console, so let\u2019s head back to our codebase.<\/p>\n<p>In the script you added earlier, create an upload widget with this code:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>var myWidget = cloudinary.createUploadWidget({\n  cloudName: 'my_cloud_name', \n  uploadPreset: 'my_preset'}, (error, result) =&gt; { \n    if (!error &amp;&amp; result &amp;&amp; result.event === &quot;success&quot;) { \n      console.log('Done! Here is the image info: ', result.info); \n    }\n  }\n)\n<\/code><\/pre>\n<p>Be sure to replace the variables <code>my_cloud_name<\/code> and  <code>my_preset<\/code> with your account\u2019s cloud and preset values, which are displayed on the dashboard. Afterward, simplify the error logging. The code would then read like this:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>var myWidget = cloudinary.createUploadWidget({\n  cloudName: 'my_cloud_name', uploadPreset: 'my_preset'}, \n  (error, result) =&gt; { console.log(error, result) })\n<\/code><\/pre>\n<p>Note that configuring your upload widget to accept unsigned uploads as described above is not ideal for production applications. Bad actors can inspect your page and programmatically upload content to your Cloudinary account with your cloudName and uploadPreset variables, bypassing the settings you might have in the upload widget for content types or simply overloading your storage.<\/p>\n<p>To mitigate that risk, set up signed uploads instead to allow only authorized ones. Rather than revealing the <code>uploadPreset<\/code> variable, signed uploads use a combination of a public API key and a unique identifier as an upload signature. For details on the configuration procedure, see the <a href=\"https:\/\/cloudinary.com\/documentation\/upload_widget\">Cloudinary documentation<\/a>.<\/p>\n<h2>Moderating UGC<\/h2>\n<p>The internet can be a scary place, and chances are that you don\u2019t want to host potentially offensive or harmful content. However, manually checking UGC, especially video, could be a cumbersome, astronomical task. Fortunately, Cloudinary can automatically moderate UGC for you, filtering inappropriate content and malicious files, such as computer viruses.<\/p>\n<p>Toward that end, Cloudinary leverages Amazon Web Services (AWS) Rekognition as an add-on, which, by means of deep learning and with only minimal configuration on your part, analyzes videos within your application or website. Follow these steps to set up the AWS Rekognition add-on:<\/p>\n<ol>\n<li>\n<p>Click the <strong>Add-ons<\/strong> tab in the Cloudinary console:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/add-on.png\" alt=\"Add-ons\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1400\" height=\"670\"\/><\/p>\n<\/li>\n<li>\n<p>Register for the add-on tier you desire. The free tier offers 50 free moderations per month.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/rekognition-ai-moderation.png\" alt=\"Rekognition\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1400\" height=\"770\"\/><\/p>\n<\/li>\n<\/ol>\n<p>Earlier, we managed moderation in the Cloudinary console when we created the upload widget. This is often sufficient, but Cloudinary also offers the ability to do this sensitive and potentially custom logic on the server side. Thanks to <a href=\"https:\/\/cloudinary.com\/documentation\/how_to_integrate_cloudinary#2_configure_your_sdk\">Cloudinary\u2019s SDKs<\/a> for all major frameworks, this a cinch to do.<\/p>\n<p>Once you\u2019ve installed the appropriate SDK, uploading to Cloudinary from your server-side code takes only a few codelines, such as the following in Ruby:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>Cloudinary::Uploader.upload(&quot;my_file.mp4&quot;,\n  :resource_type =&gt; &quot;video&quot;, \n  :moderation =&gt; &quot;aws_rek_video&quot;)\n<\/code><\/pre>\n<p>This code uploads a file called <code>my_file.mp4<\/code> to Cloudinary and specifies AWS Rekognition as the moderation provider. You can also identify content types and confidence levels to customize your moderation setup, as explained in the <a href=\"https:\/\/cloudinary.com\/documentation\/aws_rekognition_video_moderation_addon#request_video_moderation\">documentation<\/a>.<\/p>\n<p>Because processing video is resource intensive, moderation takes place asynchronously. Upon completion, the Rekognition add-on sends a JSON response, which your business logic can then parse and decide what to do in case of potentially offensive UGC.<\/p>\n<h2>Making UGC Shoppable<\/h2>\n<p>Gratifyingly, <a href=\"https:\/\/cloudinary.com\/glossary\/shoppable-video\">shoppable videos<\/a> are included in Cloudinary\u2019s standard video-player package, meaning that you can share videos and tag sections with links to products for sale. As an example, see the shopping cart icon in the top-right corner of the video below of a woman wearing sunglasses.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/shoppable-video_image.jpg\" alt=\"Shoppable video\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1400\" height=\"787\"\/><\/p>\n<p>Visitors interested in something they see on the screen can click the shopping cart icon. Let\u2019s say instead of the sunglasses, the handbag catches someone\u2019s eye. With a click on the icon, the visitor would see the product listings along with the related images:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/image\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Web_Assets\/blog\/shoppable-video-player.jpg\" alt=\"Shoppable video\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1400\" height=\"793\"\/><\/p>\n<p>A single click on a product would send visitors to the configured product link, where they can make purchases.<\/p>\n<p>After embedding the Cloudinary video player, you can configure it for shoppable video with the following code:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>shoppable: {\n    startState: &quot;openOnPlay&quot;,\n    autoClose: 2,\n    showPostPlayOverlay: true,\n    width: &quot;15%&quot;,\n    bannerMsg: &quot;Start shopping for your outfit&quot;,\n    toggleIcon:\n    &quot;https:\/\/res.cloudinary.com\/demo\/image\/upload\/docs\/trolley&quot;,\n    transformation: {\n    quality: &quot;auto:eco&quot;,\n    fetch_format: &quot;auto&quot;,\n    crop: &quot;pad&quot;,\n    aspect_ratio: &quot;1&quot;\n    },\n    products: [ \/*products array*\/ ]\n<\/code><\/pre>\n<p>The <code>products<\/code> array tells the video player what products to link to and where to highlight them in the video. For details on the procedure, see the <a href=\"https:\/\/cloudinary.com\/documentation\/video_player_shoppable_videos#configuring_the_shoppable_ui\">documentation<\/a>.<\/p>\n<h2>Enhancing Content With Cloudinary<\/h2>\n<p>The year 2020, which saw a meteoric surge in online purchases due to the pandemic-induced restrictions, proved that e-commerce is here to stay. As explosive growth bolsters this market, UGC helps your products stand out.<\/p>\n<p>From unboxing to lifestyle, your customers\u2019 videos are a valuable marketing multiplier for you. Besides enabling you to accept them with a user- and developer-friendly upload tool, Cloudinary also saves you time and ensures your content\u2019s legitimacy with automatic moderation through an add-on. Above all, with Cloudinary, you can display UGC in a shoppable format, maximizing the UGC\u2019s effectiveness in generating sales.<\/p>\n<p>Doubtless, your site stands to benefit from one or all of Cloudinary\u2019s handy tools, which help you enhance user experience as your audience browses and uploads video, enjoys brand-friendly content, shops right from your videos, and engages with your site. Do <a href=\"https:\/\/cloudinary.com\/users\/register\/free\">sign up<\/a> to try Cloudinary\u2019s tools\u2014for free.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":22498,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[300,303,305],"class_list":["post-22497","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-user-generated-content","tag-video","tag-video-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Making User-Generated Content (UGC) Shoppable With Cloudinary<\/title>\n<meta name=\"description\" content=\"With Cloudinary&#039;s effective tools and SDKs, you can upload user-generated videos, automatically moderate them, and make them shoppable on e-commerce sites.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Making UGC Shoppable With Cloudinary\" \/>\n<meta property=\"og:description\" content=\"With Cloudinary&#039;s effective tools and SDKs, you can upload user-generated videos, automatically moderate them, and make them shoppable on e-commerce sites.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-23T16:00:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-19T23:31:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1540\" \/>\n\t<meta property=\"og:image:height\" content=\"847\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Making UGC Shoppable With Cloudinary\",\"datePublished\":\"2021-08-23T16:00:16+00:00\",\"dateModified\":\"2026-02-19T23:31:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary\"},\"wordCount\":5,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA\",\"keywords\":[\"User-Generated Content\",\"Video\",\"Video API\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2021\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary\",\"url\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary\",\"name\":\"Making User-Generated Content (UGC) Shoppable With Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA\",\"datePublished\":\"2021-08-23T16:00:16+00:00\",\"dateModified\":\"2026-02-19T23:31:57+00:00\",\"description\":\"With Cloudinary's effective tools and SDKs, you can upload user-generated videos, automatically moderate them, and make them shoppable on e-commerce sites.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA\",\"width\":1540,\"height\":847},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Making UGC Shoppable With Cloudinary\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Making User-Generated Content (UGC) Shoppable With Cloudinary","description":"With Cloudinary's effective tools and SDKs, you can upload user-generated videos, automatically moderate them, and make them shoppable on e-commerce sites.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary","og_locale":"en_US","og_type":"article","og_title":"Making UGC Shoppable With Cloudinary","og_description":"With Cloudinary's effective tools and SDKs, you can upload user-generated videos, automatically moderate them, and make them shoppable on e-commerce sites.","og_url":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary","og_site_name":"Cloudinary Blog","article_published_time":"2021-08-23T16:00:16+00:00","article_modified_time":"2026-02-19T23:31:57+00:00","og_image":[{"width":1540,"height":847,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary"},"author":{"name":"","@id":""},"headline":"Making UGC Shoppable With Cloudinary","datePublished":"2021-08-23T16:00:16+00:00","dateModified":"2026-02-19T23:31:57+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary"},"wordCount":5,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA","keywords":["User-Generated Content","Video","Video API"],"inLanguage":"en-US","copyrightYear":"2021","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary","url":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary","name":"Making User-Generated Content (UGC) Shoppable With Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA","datePublished":"2021-08-23T16:00:16+00:00","dateModified":"2026-02-19T23:31:57+00:00","description":"With Cloudinary's effective tools and SDKs, you can upload user-generated videos, automatically moderate them, and make them shoppable on e-commerce sites.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA","width":1540,"height":847},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/making_ugc_shoppable_with_cloudinary#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Making UGC Shoppable With Cloudinary"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725948\/Web_Assets\/blog\/making_ugc_shoppable-1_2249883d3a\/making_ugc_shoppable-1_2249883d3a.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/22497","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=22497"}],"version-history":[{"count":7,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/22497\/revisions"}],"predecessor-version":[{"id":39817,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/22497\/revisions\/39817"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/22498"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=22497"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=22497"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=22497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}