<!doctype html>
<html class="no-js" lang="id">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="author" content="PT Ruang Raya Indonesia" />
<meta name="description" content="" />
<meta name="generator" content="HubSpot" />
<title>Ruangguru - T&C Daily Challenge</title>
<link rel="shortcut icon" href="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/favicon60x60-3.png" />
<meta property="og:description" content="" />
<meta property="og:title" content="Ruangguru - T&C Daily Challenge" />
<meta name="twitter:description" content="" />
<meta name="twitter:title" content="Ruangguru - T&C Daily Challenge" />
<style>
a.cta_button {
-moz-box-sizing: content-box !important;
-webkit-box-sizing: content-box !important;
box-sizing: content-box !important;
vertical-align: middle;
}
.hs-breadcrumb-menu {
list-style-type: none;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
.hs-breadcrumb-menu-item {
float: left;
padding: 10px 0px 10px 10px;
}
.hs-breadcrumb-menu-divider:before {
content: '›';
padding-left: 10px;
}
.hs-featured-image-link {
border: 0;
}
.hs-featured-image {
float: right;
margin: 0 0 20px 20px;
max-width: 50%;
}
@media (max-width: 568px) {
.hs-featured-image {
float: none;
margin: 0;
width: 100%;
max-width: 100%;
}
}
.hs-screen-reader-text {
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute !important;
width: 1px;
}
</style>
<!-- Added by GoogleAnalytics integration -->
<script>
var _hsp = (window._hsp = window._hsp || []);
_hsp.push([
'addPrivacyConsentListener',
function (consent) {
if (consent.allowed || (consent.categories && consent.categories.analytics)) {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
(i[r] =
i[r] ||
function () {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-49650255-1', 'auto');
ga('send', 'pageview');
}
},
]);
</script>
<!-- /Added by GoogleAnalytics integration -->
<link rel="canonical" href="https://www.ruangguru.com/promo/jdid" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script>
(function (h, e, a, t, m, p) {
m = e.createElement(a);
m.async = !0;
m.src = t;
p = e.getElementsByTagName(a)[0];
p.parentNode.insertBefore(m, p);
})(window, document, 'script', 'https://u.heatmap.it/log.js');
</script>
<meta name="google-site-verification" content="VJAn1g6wmtTZPpTXh-B4xoSFEkUi5jcV74xQSr6jnOM" />
<script>
document.querySelector('meta[name="author"]').setAttribute('content', 'Ruangguru Tech Team');
</script>
<meta name="publisher" content="PT Ruang Raya Indonesia" />
<!-- Global site tag (gtag.js) - Google Analytics -->
<!--
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-49650255-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-49650255-1');
</script>
-->
<!-- Google Tag Manager -->
<script>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-PVNLZFT');
</script>
<!-- End Google Tag Manager -->
<meta property="og:url" content="https://www.ruangguru.com/promo/jdid" />
<meta name="twitter:card" content="summary" />
<meta http-equiv="content-language" content="id" />
<link rel="stylesheet" href="https://cdn-web-2.ruangguru.com/landing-page-web/public/assets/common/layout.min.css" />
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/5323714088/1618893349680/Coded_files/Custom/page/RuangguruV3_Style/normalize.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/5323787087/1669695959030/Coded_files/Custom/page/RuangguruV3_Style/NewStyleRGV3.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/5323738539/1593574553715/Coded_files/Custom/page/RuangguruV3_Style/header.min.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/5410595088/1593574548768/Coded_files/Custom/page/RuangguruV3_Style/beasiswa.min.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/5507306785/1593574549077/Coded_files/Custom/page/RuangguruV3_Style/JababekaNewStyle.min.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/5559484378/1620367352652/Coded_files/Custom/page/RuangguruV3_Style/topup_rgdb.min.css"
/>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick-theme.min.css" />
<script type="module" crossorigin src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/promo/jdid/assets/index-Dqv5PPZA.js"></script>
</head>
<body class="hs-content-id-6251559319 hs-landing-page hs-page" style="">
<div class="header-container-wrapper">
<div class="header-container container-fluid"></div>
<!--end header -->
</div>
<!--end header wrapper -->
<div class="body-container-wrapper">
<div class="body-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1">
<div class="row-fluid">
<div class="span12 widget-span widget-type-cell jab-upload_background" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-2">
<div class="row-fluid">
<div class="span12 widget-span widget-type-cell tab-center" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-3">
<div class="row-fluid">
<div class="span12 widget-span widget-type-cell jab-form_background" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-4">
<div class="row-fluid">
<div class="span12 widget-span widget-type-rich_text page-center" style="" data-widget-type="rich_text" data-x="0" data-w="12">
<div class="cell-wrapper layout-widget-wrapper">
<span
id="hs_cos_wrapper_module_1516336730346370"
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text"
style=""
data-hs-cos-general-type="widget"
data-hs-cos-type="rich_text"
>
<h2 style="text-align: center"><img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/mobile-copy-11.png" alt="" /></h2>
<p
style="text-align: center; font-size: 25px; font-weight: 600; font-style: normal; font-stretch: normal; line-height: 1.2; letter-spacing: normal; color: #2eb5c0"
>
<strong><em>Daily Challenge</em></strong>
</p>
<div style="text-align: left">
<ol>
<li>
<span style="font-weight: 400; font-size: 15px">
Periode Daily Challenge berhadiah e-voucher JD.id dan pulsa ialah dari tanggal
<strong>1 Oktober - 1 November 2018.</strong>
</span>
</li>
</ol>
<ol start="2">
<li>
<span style="font-weight: 400; font-size: 15px">
Daily Challenge ini dapat diakses oleh seluruh siswa SD, SMP, dan SMA yang telah memiliki aplikasi dan akun Ruangguru yang telah terverifikasi. Peserta
Daily Challenge dihimbau untuk membuat akun Ruangguru di dalam aplikasi (bukan media sosial) untuk memudahkan dalam konfirmasi pemenang.
</span>
</li>
</ol>
<ol start="3">
<li>
<span style="font-weight: 400; font-size: 15px">
Sistem akan menghitung jumlah jawaban benar (score combo) sepanjang permainan. Hanya user tercepat dengan score terbanyak di setiap jenjang di hari tersebut
yang berhak mendapatkan hadiah
<strong>pulsa 25 RIBU rupiah</strong>
dan hadiah tambahan
<strong>e-voucher JD.ID sebesar 25 RIBU rupiah</strong>
(dengan min. pembelian sebesar 150 RIBU rupiah).
</span>
</li>
</ol>
<ol start="4">
<li>
<span style="font-weight: 400; font-size: 15px">
Ruangguru berhak untuk mendiskualifikasi user yang diyakini (i) menggunakan bot (ii) membuat profil palsu (iii) memasukan data yang salah dan (iv) melakukan
kecurangan atau hal-hal yang dinilai mencurigakan lainnya.
</span>
</li>
</ol>
</div>
<ol start="5">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">
Hadiah pulsa dan e-voucher untuk pemenang di setiap kelas akan dikirimkan ke nomor handphone dan email user yang TERDAFTAR di PROFILE. Tim Ruangguru akan
melakukan konfirmasi nomor dan meminta data terkait untuk keperluan verifikasi. Apabila user memasukkan nomor yang salah, Ruangguru memiliki hak penuh untuk
tidak memberikan hadiah atau mengganti pemenang di hari tersebut.
</span>
</div>
</li>
</ol>
<ol start="6">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">
User hanya bisa menang SATU KALI dalam seminggu. Apabila user menang berturut- turut dalam seminggu maka hadiah hanya akan diberikan sekali pada saat user
menang pertama kali.
</span>
</div>
</li>
</ol>
<ol start="7">
<li>
<div style="text-align: left"><span style="font-weight: 400; font-size: 15px">User yang sama juga TIDAK DAPAT menang di lebih dari 1 jenjang.</span></div>
</li>
</ol>
<ol start="8">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">
Apabila user terpilih sebagai pemenang, pihak Ruangguru akan menghubungi user untuk konfirmasi maksimal 3 hari kerja.
</span>
</div>
</li>
</ol>
<ol start="9">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">Pengiriman hadiah akan dilakukan H+1 setelah user diumumkan sebagai pemenang.</span>
</div>
</li>
</ol>
</span>
</div>
<!--end layout-widget-wrapper -->
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->
</div>
<!--end body -->
</div>
<!--end body wrapper -->
<!-- HubSpot performance collection script -->
<script defer src="https://static.hsappstatic.net/content-cwv-embed/static-1.240/embed.js"></script>
<!-- Start of HubSpot Analytics Code -->
<script type="text/javascript">
var _hsq = _hsq || [];
_hsq.push(['setContentType', 'landing-page']);
_hsq.push(['setCanonicalUrl', 'https:\/\/www.ruangguru.com\/promo\/jdid']);
_hsq.push(['setPageId', '6251559319']);
_hsq.push([
'setContentMetadata',
{
contentPageId: 6251559319,
legacyPageId: '6251559319',
contentFolderId: null,
contentGroupId: null,
abTestId: null,
languageVariantId: 6251559319,
languageCode: 'id',
},
]);
</script>
<script type="text/javascript">
var hsVars = {
render_id: '231be321-0522-4c01-a5be-904a82b55d26',
ticks: 1684630030150,
page_id: 6251559319,
content_group_id: 0,
portal_id: 2828691,
app_hs_base_url: 'https://app.hubspot.com',
cp_hs_base_url: 'https://cp.hubspot.com',
language: 'id',
analytics_page_type: 'landing-page',
analytics_page_id: '6251559319',
category_id: 1,
folder_id: 0,
is_hubspot_user: false,
};
</script>
<script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>
<!-- Load CSS for all versions -->
<script>
// CSS loading function available for all versions
function loadFloatingCSS() {
// Check if CSS is already loaded
if (document.getElementById('fb-component-css')) {
return;
}
// Create and append CSS style block to head
const style = document.createElement('style');
style.id = 'fb-component-css';
style.textContent = `
.bantuan-container {
position: relative;
}
.bantuan-element {
position: fixed;
z-index: 999;
display: flex;
align-items: flex-end;
justify-content: flex-end;
cursor: pointer;
transition: all 0.6s ease;
}
.bantuan-top {
bottom: 11rem;
right: 2rem;
}
.bantuan-bottom {
bottom: 2rem;
right: 2rem;
}
.bantuan-top-2 {
bottom: 15rem;
right: 2rem;
}
.bantuan-top-3 {
bottom: 19rem;
right: 2rem;
}
.bantuan-bottom-2 {
bottom: 5rem;
right: 2rem;
}
.bantuan-bottom-3 {
bottom: 8rem;
right: 2rem;
}
@media (min-width: 768px) {
.bantuan-element img {
width: auto;
transition: all 0.4s ease;
}
.bantuan-top img {
width: 140px;
}
.bantuan-bottom img {
width: 140px;
}
.bantuan-top-2 img,
.bantuan-top-3 img {
width: 140px;
}
.bantuan-bottom-2 img,
.bantuan-bottom-3 img {
width: 140px;
}
.bantuan-element.clicked {
bottom: 9rem;
right: 2.5rem;
}
.bantuan-element.clicked img {
width: auto;
height: 64px;
}
}
@media (max-width: 767px) {
.bantuan-top {
bottom: 8rem;
right: 1rem;
align-items: center;
}
.bantuan-bottom {
bottom: 2rem;
right: 1.25rem;
align-items: center;
}
.bantuan-top-2 {
bottom: 12rem;
right: 1rem;
align-items: center;
}
.bantuan-top-3 {
bottom: 16rem;
right: 1rem;
align-items: center;
}
.bantuan-bottom-2 {
bottom: 5rem;
right: 1.25rem;
align-items: center;
}
.bantuan-bottom-3 {
bottom: 8rem;
right: 1.25rem;
align-items: center;
}
.bantuan-element img {
width: auto;
}
.bantuan-top img,
.bantuan-top-2 img,
.bantuan-top-3 img {
width: 96px;
}
.bantuan-bottom img,
.bantuan-bottom-2 img,
.bantuan-bottom-3 img {
width: 96px;
}
}
.bantuan-element:hover {
transform: scale(1.05);
}
.bantuan-element img {
max-width: 100%;
height: auto;
}
`;
document.head.appendChild(style);
}
// Load CSS immediately
loadFloatingCSS();
</script>
<div id="bantuan-divs-container" style="position: relative" data-product="ruangguru" data-table=""></div>
<script>
class FloatingDivsComponent {
constructor(product = 'ruangguru', table = 'rg_promo_banner') {
this.container = document.getElementById('bantuan-divs-container');
this.floatingElements = [];
this.product = product;
this.table = table;
// Configuration
this.config = {
baseApiUrl: 'https://gw.ruangguru.com/api/v3/rdb/p_ddgy8hjx5dxsqx/rg_banner/views/',
apiKey: 'vLyK3dJrDBRmOwueX2OJXibMkgsUbBk0WS4ua2p1',
maxElements: 2,
zIndexBase: 100,
};
// Build dynamic API URL based on table parameter
this.config.apiUrl = this.buildApiUrl();
this.init();
}
buildApiUrl() {
const baseUrl = this.config.baseApiUrl;
const tableName = this.table || 'rg_promo_banner';
const queryParams =
'offset=0&limit=99999&sort=rankPosition&where=(type,eq,floating)~and(showIn,anyof,landingPage)~and(hide,is,false)~and(product,eq,' +
this.product +
')&nested%5Bcta%5D%5Bfields%5D=Id,name,ctaId,imageUrl,ctaLink,targetUrl';
return `${baseUrl}${tableName}?${queryParams}`;
}
async init() {
try {
await this.fetchFloatingElements();
this.renderFloatingElements();
} catch (error) {
console.error('Failed to initialize floating divs component:', error);
}
}
async fetchFloatingElements() {
try {
const options = {
method: 'GET',
headers: {
'xc-token': this.config.apiKey || 'vLyK3dJrDBRmOwueX2OJXibMkgsUbBk0WS4ua2p1',
},
};
const urlNoco = this.config.apiUrl;
const response = await fetch(urlNoco, options);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
this.floatingElements = this.processApiResponse(data);
} catch (error) {
console.error('Error fetching floating elements:', error);
throw error;
}
}
processApiResponse(data) {
if (!data || !data.list || !Array.isArray(data.list)) {
return [];
}
// Ensure we only get maximum 2 elements
const limitedElements = data.list.slice(0, this.config.maxElements);
return limitedElements;
}
renderFloatingElements() {
if (!this.container || this.floatingElements.length === 0) {
return;
}
// Additional safeguard: ensure we never render more than maxElements
const elementsToRender = this.floatingElements.slice(0, this.config.maxElements);
// Clean up existing elements and their event listeners
this.cleanupExistingElements();
// Clear existing content
this.container.innerHTML = '';
elementsToRender.forEach((element, index) => {
const floatingDiv = this.createFloatingDiv(element, index);
this.container.appendChild(floatingDiv);
});
}
cleanupExistingElements() {
// Clear existing elements (no need for event listener cleanup with CSS approach)
const existingElements = this.container.querySelectorAll('[data-floating-element]');
existingElements.forEach(element => {
element.remove();
});
}
createFloatingDiv(element, index) {
const div = document.createElement('div');
const cta = element.cta[0]; // Use the first CTA
// Add data attribute for cleanup tracking
div.setAttribute('data-floating-element', 'true');
// Apply CSS classes based on rankPosition
const positionClass = this.getPositionClass(element.rankPosition, index);
div.className = `bantuan-element ${positionClass}`;
div.style.zIndex = this.config.zIndexBase + index;
// Create the link and image
const link = document.createElement('a');
link.href = 'https://cta.ruangguru.com/' + cta.ctaId || '#';
link.target = '_blank';
// Add tracking attributes
link.setAttribute('data-tracking-event-type', 'landing_page__core__item_click');
link.setAttribute(
'data-tracking-context',
JSON.stringify({
product_name: this.product,
cta_action: 'redirection',
cta_action_detail: link.href,
item_type: 'floating',
item_name: element.name || 'Floating element',
item_category: 'payment',
item_position: index,
item_serial: null,
section_type: 'floating_item',
section_position: 'body',
section_name: 'floating_item',
})
);
const img = document.createElement('img');
img.src = element.imageUrl + '?h=200&convert=webp';
img.alt = element.name || 'Floating element';
img.loading = 'lazy';
// Add click tracking
link.addEventListener('click', () => {
this.trackClick(element, cta);
});
link.appendChild(img);
div.appendChild(link);
return div;
}
getPositionClass(rankPosition, index) {
// Define positioning classes based on rankPosition
if (rankPosition === 1) {
return 'bantuan-top'; // Top position
} else if (rankPosition === 2) {
return 'bantuan-bottom'; // Bottom position
} else {
// For additional elements, distribute them evenly
return `bantuan-${index % 2 === 0 ? 'top' : 'bottom'}-${Math.floor(index / 2) + 1}`;
}
}
trackClick(element, cta) {
// Implement click tracking logic here
console.log('Floating element clicked:', {
elementId: element.Id,
elementName: cta.name,
ctaId: cta.ctaId,
targetUrl: cta.targetUrl,
});
}
// Public method to manually refresh
async refresh() {
try {
await this.fetchFloatingElements();
this.renderFloatingElements();
} catch (error) {
console.error('Failed to refresh floating elements:', error);
throw error;
}
}
// Public method to get current floating elements
getFloatingElements() {
return [...this.floatingElements];
}
}
// Initialize the component when DOM is ready
document.addEventListener('DOMContentLoaded', () => {
// Get product and table parameters from data attributes
const container = document.getElementById('bantuan-divs-container');
const product = container.getAttribute('data-product') || 'ruangguru';
const table = container.getAttribute('data-table') || 'rg_promo_banner';
new FloatingDivsComponent(product, table);
});
// Export for use in other modules if needed
if (typeof module !== 'undefined' && module.exports) {
module.exports = FloatingDivsComponent;
}
</script>
<!-- Tracker -->
<script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>
<script src="https://unpkg.com/analytics@0.8.1/dist/analytics.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/analytics-plugin-trackable/dist/analytics-plugin-trackable.min.js"></script>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N8DPXH6" height="0" width="0" style="display: none; visibility: hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<script type="text/javascript" defer>
/* Initialize analytics */
var Analytics = _analytics.init({
app: 'brainAcademyLandingPage',
debug: false,
plugins: [analyticsTrackable()],
});
Analytics.ready(function () {
Analytics.page();
});
</script>
<!-- Generated by the HubSpot Template Builder - template version 1.03 -->
</body>
</html>