#30MenitBisa Instagram Challenge
Cara Ikutan #30MenitBisa Instagram Challenge
-
Belajar di
ruangbelajar 30
menit setiap hari
-
Post
Rapor Ruangguru kamu di akun Instagram pribadi
-
Tag
Official Account Ruangguru @ruangguru dan sertakan
hashtag
#RaporRuangguru
dan
#30MenitBisa
-
Tulis di
caption
bagaimana serunya belajar menggunakan Aplikasi Ruangguru
-
Sertakan kode referral kamu di
caption
-
Mention
10 teman kamu di dalam
caption
Syarat & Ketentuan #30MenitBisa Instagram Challenge
-
Sudah berlangganan di Aplikasi Ruangguru
-
Wajib
follow
Official Account Ruangguru @ruangguru
-
Akun peserta tidak boleh
private account
dan
post
tidak boleh dihapus hingga periode tantangan selesai
-
Mengikuti seluruh cara ikutan #30MenitBisa Instagram Challenge
-
Konten tidak boleh mengandung unsur SARA atau menjatuhkan pihak tertentu
-
Pihak Ruangguru dapat mengubah ketentuan tantangan tanpa pemberitahuan sebelumnya
<!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>Syarat dan Ketentuan | #30MenitBisa Instagram 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="Syarat dan Ketentuan | #30MenitBisa Instagram Challenge" />
<meta name="twitter:description" content="" />
<meta name="twitter:title" content="Syarat dan Ketentuan | #30MenitBisa Instagram 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/30-menit-bisa" />
<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/30-menit-bisa" />
<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/30-menit-bisa/assets/index-Dqv5PPZA.js"></script>
</head>
<body class="hs-content-id-6183230214 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>
<div style="text-align: center">
<p
style="
text-align: center;
font-size: 22px;
font-weight: 600;
font-style: normal;
font-stretch: normal;
line-height: 1.2;
letter-spacing: normal;
color: #2eb5c0;
"
>
<strong><em>#30MenitBisa Instagram Challenge</em></strong>
</p>
</div>
<div style="text-align: left; padding-left: 30px"><strong>Cara Ikutan #30MenitBisa Instagram Challenge</strong></div>
<div style="text-align: left">
<ol>
<li>
<span style="font-weight: 400; font-size: 15px">
Belajar di
<strong>ruangbelajar 30</strong>
menit setiap hari
</span>
</li>
</ol>
<ol start="2">
<li>
<span style="font-weight: 400; font-size: 15px">
<em>Post</em>
Rapor Ruangguru kamu di akun Instagram pribadi
</span>
</li>
</ol>
<ol start="3">
<li>
<span style="font-weight: 400; font-size: 15px">
<em>Tag</em>
Official Account Ruangguru @ruangguru dan sertakan
<em>hashtag</em>
<strong>#RaporRuangguru</strong>
dan
<strong>#30MenitBisa</strong>
</span>
</li>
</ol>
<ol start="4">
<li>
<span style="font-weight: 400; font-size: 15px">
Tulis di
<em>caption</em>
bagaimana serunya belajar menggunakan Aplikasi Ruangguru
</span>
</li>
</ol>
</div>
<ol start="5">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">
Sertakan kode referral kamu di
<em>caption</em>
</span>
</div>
</li>
</ol>
<ol start="6">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">
<em>Mention</em>
10 teman kamu di dalam
<em>
caption
<br />
<br />
</em>
</span>
</div>
</li>
</ol>
<div style="text-align: left; padding-left: 30px"><strong>Syarat & Ketentuan #30MenitBisa Instagram Challenge</strong></div>
<ol start="1">
<li>
<div style="text-align: left"><span style="font-weight: 400; font-size: 15px">Sudah berlangganan di Aplikasi Ruangguru</span></div>
</li>
</ol>
<ol start="2">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">
Wajib
<em>follow</em>
Official Account Ruangguru @ruangguru
</span>
</div>
</li>
</ol>
<ol start="3">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">
Akun peserta tidak boleh
<em>private account</em>
dan
<em>post</em>
tidak boleh dihapus hingga periode tantangan selesai
</span>
</div>
</li>
</ol>
<ol start="4">
<li>
<div style="text-align: left"><span style="font-weight: 400; font-size: 15px">Mengikuti seluruh cara ikutan #30MenitBisa Instagram Challenge</span></div>
</li>
</ol>
<ol start="5">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">Konten tidak boleh mengandung unsur SARA atau menjatuhkan pihak tertentu</span>
</div>
</li>
</ol>
<ol start="6">
<li>
<div style="text-align: left">
<span style="font-weight: 400; font-size: 15px">Pihak Ruangguru dapat mengubah ketentuan tantangan tanpa pemberitahuan sebelumnya</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\/30-menit-bisa']);
_hsq.push(['setPageId', '6183230214']);
_hsq.push([
'setContentMetadata',
{
contentPageId: 6183230214,
legacyPageId: '6183230214',
contentFolderId: null,
contentGroupId: null,
abTestId: null,
languageVariantId: 6183230214,
languageCode: 'id',
},
]);
</script>
<script type="text/javascript">
var hsVars = {
render_id: '01ca5331-604c-4da8-90b9-d41fa4c949f0',
ticks: 1684630017630,
page_id: 6183230214,
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: '6183230214',
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>