<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mohamed Gani</title>
    <description>The latest articles on DEV Community by Mohamed Gani (@mohamed_gani_y8).</description>
    <link>https://dev.to/mohamed_gani_y8</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3566207%2F3bd46746-5fec-45cb-8166-e368c201a363.png</url>
      <title>DEV Community: Mohamed Gani</title>
      <link>https://dev.to/mohamed_gani_y8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mohamed_gani_y8"/>
    <language>en</language>
    <item>
      <title>Publish and Monetize Your Games on Y8.com</title>
      <dc:creator>Mohamed Gani</dc:creator>
      <pubDate>Wed, 15 Oct 2025 08:44:27 +0000</pubDate>
      <link>https://dev.to/mohamed_gani_y8/how-to-submit-your-game-to-y8com-and-integrate-the-y8-sdk-39bn</link>
      <guid>https://dev.to/mohamed_gani_y8/how-to-submit-your-game-to-y8com-and-integrate-the-y8-sdk-39bn</guid>
      <description>&lt;p&gt;If you're a game developer looking to publish your games on Y8.com and earn revenue, this quick guide will help you get started.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧩 Step 1: Create an Account and Upload Your Game&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To submit a game:&lt;br&gt;
👉 Go to &lt;a href="https://developer.y8.com/" rel="noopener noreferrer"&gt;https://developer.y8.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll need a Y8 developer account.&lt;br&gt;
After logging in, you can upload your game package directly through this page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💰 Step 2: Choose Your Revenue Share Program&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Y8 offers two types of revenue share models:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- AFP (AdSense for Platforms)&lt;/strong&gt; — You get paid directly by Google through your own AdSense account.&lt;br&gt;
&lt;strong&gt;- Y8 Managed Partnership (YMP)&lt;/strong&gt; — You send Y8 invoices, and the payment is handled manually.&lt;/p&gt;

&lt;p&gt;YMP is the default partnership, while AFP is available to eligible&lt;br&gt;
developers.&lt;/p&gt;

&lt;p&gt;If you're interested in AFP, contact Y8 at &lt;strong&gt;&lt;a href="mailto:developers@y8.com"&gt;developers@y8.com&lt;/a&gt;&lt;/strong&gt; to&lt;br&gt;
learn about eligibility and the application process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Step 3: Get Your Game Credentials&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before integrating the Y8 SDK, open your game in the &lt;strong&gt;Y8 Developer Portal&lt;/strong&gt; and go to &lt;strong&gt;SDK Initialization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Under Credentials, you can find the IDs required for SDK integration:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Game ID&lt;/strong&gt; — Identifies your application. Always required.&lt;br&gt;
&lt;strong&gt;App ID&lt;/strong&gt; — Identifies your game to Y8 platform services. Required for advertising&lt;/p&gt;

&lt;p&gt;Copy these credentials from the Developer Portal and use them when configuring the Y8 SDK.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎮 Step 4: Integrate the Y8 SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Y8 SDK supports multiple platforms, including &lt;strong&gt;JavaScript, Unity, Construct 3, and Haxe&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For complete SDK details and API examples, see the &lt;a href="https://docs.y8.com/" rel="noopener noreferrer"&gt;Y8 SDK Documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For a quick overview, here's a JavaScript example.&lt;/p&gt;

&lt;p&gt;Include the Y8 SDK in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; section of your HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://cdn.y8.com/minimal-sdk/2-0/y8.min.js"&lt;/span&gt; &lt;span class="na"&gt;async&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initialize the SDK after it has loaded:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;y8Sdk&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;y8sdk.ready&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;y8Sdk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;y8&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sdk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;appConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;appId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;app id&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;autoLogin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;adConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;gameId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;game id&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;preloadAdBreaks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;on&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;sound&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;on&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;onReady&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="nx"&gt;y8Sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;appConfig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;adConfig&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;y8Sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;onAuth&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;once&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Handle the case where the SDK already loaded&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y8&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y8&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;emitReadyEvent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y8&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;emitReadyEvent&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Display Ads
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;showAd()&lt;/code&gt; to request an ad break:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;y8Sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;showAd&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;start&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;              &lt;span class="c1"&gt;// start | pause | next | browse | reward&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;start-game&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

    &lt;span class="na"&gt;beforeAd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Pause your game&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;

    &lt;span class="na"&gt;afterAd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Resume your game&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;

    &lt;span class="na"&gt;beforeReward&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;showAdFn&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Rewarded ads only&lt;/span&gt;
        &lt;span class="nf"&gt;showAdFn&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;

    &lt;span class="na"&gt;adDismissed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Player skipped or dismissed the ad&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;

    &lt;span class="na"&gt;adViewed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Reward the player after a rewarded ad is viewed&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;

    &lt;span class="na"&gt;adBreakDone&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;info&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Called when the ad break is complete&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For rewarded ads, grant the reward from &lt;code&gt;adViewed&lt;/code&gt;, not simply when the ad is requested.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Platforms
&lt;/h3&gt;

&lt;p&gt;The Y8 SDK is also available for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Unity WebGL&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Construct 3&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Haxe&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See the &lt;a href="https://docs.y8.com/" rel="noopener noreferrer"&gt;Y8 SDK Documentation&lt;/a&gt; for platform-specific installation instructions and examples.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Step 5: Request Review and Go Live&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you've completed your game setup, SDK integration, and testing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Save your changes&lt;/strong&gt; in the Developer Portal.&lt;/li&gt;
&lt;li&gt; Click &lt;strong&gt;Request Review&lt;/strong&gt; to submit your game to the Y8 team.&lt;/li&gt;
&lt;li&gt; Check the &lt;strong&gt;Feedback&lt;/strong&gt; section for review updates or requests from
the Y8 team.&lt;/li&gt;
&lt;li&gt; If changes are requested, update your game and submit it for review
again.&lt;/li&gt;
&lt;li&gt; Once your game is approved, it can go &lt;strong&gt;live on Y8.com&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; With advertising properly integrated and monetization enabled, your
game can begin generating advertising revenue.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Useful Links&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://developer.y8.com/" rel="noopener noreferrer"&gt;Y8 Developer Portal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://docs.y8.com/" rel="noopener noreferrer"&gt;Y8 SDK Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/Y8Games/y8-afp-ads-sdk-javascript/" rel="noopener noreferrer"&gt;Y8 JavaScript SDK Example&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/Y8Games/unity-sdk-lightweight/releases" rel="noopener noreferrer"&gt;Y8 Unity SDK&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/Y8Games/y8-construct3-sdk" rel="noopener noreferrer"&gt;Y8 Construct 3 SDK Example&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/Y8Games/Y8-haxe-sdk" rel="noopener noreferrer"&gt;Y8 Haxe SDK&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;br&gt;
With Y8’s SDK integration, your game can easily monetize across HTML5, Construct 3, and Unity WebGL — all while reaching millions of players worldwide.&lt;/p&gt;

&lt;p&gt;Start uploading, integrate ads, and grow your revenue today!&lt;/p&gt;

</description>
      <category>ads</category>
      <category>gamedev</category>
      <category>adsense</category>
    </item>
  </channel>
</rss>
