# Canada to Indonesia Digital Marketing Agency

> Canada to Indonesia digital marketing agency guide: consent-first lead generation, bilingual content, and WhatsApp follow-up. Plan your Indonesia entry

- URL: https://medikabyte.com/canada-to-indonesia-digital-marketing-agency/
- Diperbarui: 2026-10-16
- Penulis: Adtyaa
- Penerbit: ADTYAA (B2B digital agency)

Skip to content

[**ADTYAA** Technology & Digital Systems](https://medikabyte.com/)

**EN**

**ID**

**中文**

Consultation

[Capabilities](https://medikabyte.com/#capabilities)
[Expertise](https://medikabyte.com/#expertise)
[Approach](https://medikabyte.com/#approach)
[Proof](https://medikabyte.com/#proof)
[About](https://medikabyte.com/#about)
[Essentials](https://medikabyte.com/essentials/)
Consultation

# Canada to Indonesia Digital Marketing Agency: *Consent-First Lead Generation*

By Adtyaa 9 October 2026 8 min read

Canada to Indonesia digital marketing works best when it starts with permission. Canadian companies already earn consent before they reach out, and that habit is exactly what Indonesian buyers reward. I build lead generation around it, so your pipeline can grow in Jakarta’s daytime while Toronto, Calgary, and Vancouver are asleep.

![Two colleagues reviewing a Canada to Indonesia digital marketing plan on a laptop in front of a wall of sticky notes](https://medikabyte.com/wp-content/uploads/2026/10/Canada-to-Indonesia-Digital-Marketing-Agency-Guide.jpg)

Planning a consent-first Indonesia entry, one step at a time.

## Canada to Indonesia digital marketing: a market that rewards good manners

Indonesia gives you an online audience of about 229 million people, according to [APJII](https://apjii.or.id), and a business culture built on courtesy and personal relationships. A polite first message, a named contact, and a quick reply on WhatsApp go a long way. In summer Jakarta is eleven hours ahead of Toronto and fourteen ahead of Vancouver, so I run campaigns during Indonesian business hours and leave a clear summary waiting for your morning.

Canadian exporters can also draw on the [Trade Commissioner Service](https://www.tradecommissioner.gc.ca) alongside this work, and I keep the digital side moving in step.

## CASL-compliant lead generation Indonesia: consent that travels well

Canadian rules are strict about commercial messages, and that discipline is an advantage abroad. For Canada to Indonesia digital marketing, I build consent capture into every form and WhatsApp opt-in, so you can show who agreed to what, and when.

| Rule | What it covers | What I build |
| --- | --- | --- |
| CASL | Commercial electronic messages | Clear consent, sender identification, and an easy unsubscribe |
| PIPEDA | Personal information in commercial activity | Forms that state their purpose and tidy data handling |
| Quebec Law 25 | Privacy for Quebec residents | Privacy notices and data-request routines for Quebec contacts |
| Indonesia’s Law No. 27 of 2022 | Personal data of Indonesian residents | Recorded consent on forms and WhatsApp |

The Government of Canada explains the anti-spam rules at [fightspam.gc.ca](https://fightspam.gc.ca), and the same clarity carries into your Indonesian follow-ups.

## Cross-border digital marketing agency Canada Indonesia: one editorial standard for three languages

Canadian teams already manage English and French with care. As your cross-border digital marketing agency Canada Indonesia partner, I bring the same discipline to Bahasa Indonesia, so what your Indonesian visitors read is as polished as what your Canadian ones do.

1. A shared glossary for product names, titles, and key terms.
2. Copy written natively in Bahasa Indonesia, never run through a translator.
3. An English summary of every page and ad, so your team always knows what is live.
4. A native editor’s final review before anything goes out.

## Canadian companies expanding to Indonesia: marketing from first click to first call

Each step in the funnel asks for a little permission and gives something useful back. That is how trust grows with Indonesian buyers, and it keeps your Canadian compliance record clean.

| Step | Where | What the visitor sees |
| --- | --- | --- |
| Ad click | Search or social ad | A clear promise that matches the landing page |
| Landing page | Indonesian page | A short consent line next to the form |
| WhatsApp | Opt-in message | A friendly confirmation that asks permission to continue |
| Follow-up | Email or WhatsApp | A relevant message with an easy opt-out |
| Meeting | Calendar invite | A named contact and a clear agenda |

## Digital marketing agency for Canadian exporters in Indonesia: how I work

I take care of the Indonesian pages, the search and social campaigns, tracking, and monthly reporting in English, while your team keeps the sales conversation. If you want an Indonesia market entry digital strategy Canada leadership can sign off, I begin with a written proposal that sets scope and milestones, and the [approach](https://medikabyte.com/#approach) shows how an engagement runs.

- Indonesian landing pages built for speed and clarity.
- Google and Meta campaigns with consent-aware tracking.
- A monthly English report, with a short call timed for your morning.

### Ready for Canada to Indonesia digital marketing?

Your Indonesian pipeline can fill while Toronto sleeps. Send your offer, your time zone, and the audience you want to reach, and I will reply within 24 hours with a written proposal.

[Map my Indonesia entry](https://wa.me/6281411188809) Send a project brief

## Canada to Indonesia digital marketing: frequently asked questions

**Can you work from French source materials?**

Yes. Your French and English materials are welcome as source content, and I deliver in English and Bahasa Indonesia.

**Which Canadian time zone is easiest to coordinate with?**

Eastern, at eleven hours behind Jakarta in summer, leaves the friendliest overlap. Western teams work from the written summary and a short call.

**Does WhatsApp fit a consent-first process?**

Yes. The opt-in message asks permission before anything else, and every contact can leave with a single reply.

**When will the first enquiries arrive?**

Once pages and tracking are live, paid search often produces first enquiries within the first weeks, while SEO builds over several months. Your proposal sets the timeline.

Project brief

## Share your requirement.

Describe what you are building, what is not performing, or what needs to improve. I will review the brief and respond within 24 hours.

WhatsApp / Phone [0814 111 888 09](tel:+6281411188809)

Email [hallo@adtyaa.cloud](mailto:hallo@adtyaa.cloud)

Base **Jakarta, Indonesia**

Location

## Find us on Google Maps.

In-person meetings are by appointment. Please message first so a time can be confirmed.

### DJURAGAN IKLAN ID

Founded by ADTYAA

Jl. Green Pramuka City No.9 13, RT.13/RW.9, Rawasari, Kec. Cempaka Putih, Kota Jakarta Pusat, DKI Jakarta 10570

#### Opening hours

Mon, Wed to Sat 08:00 – 21:30

Tuesday 08:00 – 21:00

Sunday 09:00 – 21:30

[Get directions](https://www.google.com/maps/dir/?api=1&destination=-6.1883766,106.8732792&destination_place_id=ChIJKcjnOqb1aS4RfbYD_EKMv84)
[Chat on WhatsApp](https://wa.me/6281411188809)
[Call now](tel:+6281411188809)

Build what your business depends on.

## Let’s build something worth depending on.

One accountable technology partner across engineering, growth, security, and digital infrastructure.

Request a consultation [Explore capabilities](https://medikabyte.com/#capabilities)

[**ADTYAA**](https://medikabyte.com/)

Digital Systems & Technology Consultancy

Aditya

Founder & Technology Strategist

Djuragan Iklan

Navigate

- [Capabilities](https://medikabyte.com/#capabilities)
- [Expertise](https://medikabyte.com/#expertise)
- [Approach](https://medikabyte.com/#approach)
- [About](https://medikabyte.com/#about)
- Location
- Contact

Capabilities

- [Software Engineering](https://medikabyte.com/#capabilities)
- [Digital Engineering](https://medikabyte.com/#capabilities)
- [Growth Systems](https://medikabyte.com/#capabilities)
- [Security & Infrastructure](https://medikabyte.com/#capabilities)
- [Medical SEO](https://medikabyte.com/#medical)
- [Custom Plugins](https://medikabyte.com/essentials/)
- [Custom Themes](https://medikabyte.com/essentials/)
- [Add-ons & Care Plans](https://medikabyte.com/essentials/)

Contact

[WhatsApp](https://wa.me/6281411188809)
[hallo@adtyaa.cloud](mailto:hallo@adtyaa.cloud)
Jakarta, Indonesia

ADTYAA

© 2026 ADTYAA. All rights reserved.

[Essentials](https://medikabyte.com/essentials/)

[Chat on WhatsApp](https://wa.me/6281411188809)

var D = {"skip":["Skip to content","Lewati ke konten","跳到主要内容"],"menu":["Menu","Menu","菜单"],"lang.group":["Language","Bahasa","语言"],"nav.cap":["Capabilities","Keahlian","核心能力"],"nav.work":["Expertise","Spesialisasi","行业专长"],"nav.app":["Approach","Pendekatan","合作流程"],"nav.proof":["Proof","Bukti","实绩"],"nav.about":["About","Tentang","关于"],"nav.ess":["Essentials","Essentials","Essentials"],"nav.cta":["Consultation","Konsultasi","预约咨询"],"nav.contact":["Contact","Kontak","联系我们"],"bag.aria":["ADTYAA Essentials: services, themes, plugins, and add-ons","ADTYAA Essentials: jasa, tema, plugin, dan add-on","ADTYAA Essentials：服务、主题、插件与附加服务"],"hero.cta1":["Request a consultation","Jadwalkan konsultasi","预约咨询"],"hero.cta2":["Explore capabilities","Jelajahi keahlian","了解核心能力"],"hero.role":["Founder & Technology Strategist","Founder & Technology Strategist","创始人 · 技术战略顾问"],"cap4.title":["Software Engineering","Software Engineering","软件工程"],"cap1.title":["Digital Engineering","Digital Engineering","数字工程"],"cap2.title":["Growth Systems","Growth Systems","增长体系"],"cap3.title":["Security & Infrastructure","Security & Infrastructure","安全与基础设施"],"opt.med":["Medical SEO","SEO Medis","医疗 SEO"],"opt.other":["Other / Not sure yet","Lainnya / Belum yakin","其他 / 尚未确定"],"contact.label":["Project brief","Brief proyek","项目简报"],"contact.title":["Share your requirement.","Sampaikan kebutuhan Anda.","请告诉我们您的需求。"],"contact.copy":["Describe what you are building, what is not performing, or what needs to improve. I will review the brief and respond within 24 hours.","Jelaskan apa yang sedang Anda bangun, apa yang belum berjalan optimal, atau apa yang perlu ditingkatkan. Saya akan mempelajari brief dan merespons dalam 24 jam.","请描述您正在构建的内容、表现不佳之处或需要改进的方面。我会审阅简报并在 24 小时内回复，咨询以英文进行。"],"contact.wa":["WhatsApp / Phone","WhatsApp / Telepon","WhatsApp / 电话"],"contact.loc":["Base","Lokasi","所在地"],"contact.city":["Jakarta, Indonesia","Jakarta, Indonesia","印度尼西亚 · 雅加达"],"form.name":["Name *","Nama *","姓名 *"],"form.email":["Email","Email","邮箱"],"form.wa":["WhatsApp","WhatsApp","WhatsApp"],"form.url":["Website","Website","网站"],"form.service":["Capability *","Keahlian *","所需能力 *"],"form.choose":["Choose a capability","Pilih keahlian","请选择能力方向"],"form.eng":["Engagement","Jenis kerja sama","合作类型"],"form.time":["Timeline","Target waktu","时间安排"],"form.choose2":["Choose one","Pilih salah satu","请选择"],"form.msg":["Project / problem","Proyek / masalah","项目 / 问题"],"form.sendwa":["Send via WhatsApp","Kirim lewat WhatsApp","通过 WhatsApp 发送"],"form.sendmail":["Send via email","Kirim lewat email","通过邮件发送"],"form.note":["Your brief opens in WhatsApp or your email application. Nothing is stored on this page.","Brief Anda terbuka di WhatsApp atau aplikasi email, siap dikirim. Tidak ada data yang disimpan di halaman ini.","您的简报将在 WhatsApp 或邮件应用中打开，供您发送。本页面不会保存任何数据。"],"eng.1":["One-time fix or setup","Perbaikan atau setup sekali jalan","一次性修复或设置"],"eng.2":["Full project","Proyek penuh","完整项目"],"eng.3":["Ongoing monthly support","Dukungan bulanan berkelanjutan","持续月度支持"],"eng.4":["Not sure yet","Belum yakin","尚未确定"],"time.1":["As soon as possible","Secepatnya","尽快"],"time.2":["Within 1 month","Dalam 1 bulan","1 个月内"],"time.3":["Within 3 months","Dalam 3 bulan","3 个月内"],"time.4":["Flexible","Fleksibel","灵活"],"f.err":["Please enter your name and choose a capability first.","Isi nama dan pilih keahlian terlebih dahulu.","请先填写姓名并选择能力方向。"],"f.okwa":["Opening WhatsApp...","Membuka WhatsApp...","正在打开 WhatsApp…"],"f.okmail":["Opening your email application...","Membuka aplikasi email Anda...","正在打开邮件应用…"],"m.name":["Name","Nama","Name"],"m.email":["Email","Email","Email"],"m.wa":["WhatsApp","WhatsApp","WhatsApp"],"m.url":["Website","Website","Website"],"m.service":["Capability","Keahlian","Capability"],"m.eng":["Engagement","Jenis kerja sama","Engagement"],"m.time":["Timeline","Target waktu","Timeline"],"m.msg":["Message","Pesan","Message"],"m.subject":["Project enquiry","Permintaan proyek","Project enquiry"],"loc.label":["Location","Lokasi","地点"],"loc.title":["Find us on Google Maps.","Temukan kami di Google Maps.","在 Google 地图上找到我们。"],"loc.lead":["In-person meetings are by appointment. Please message first so a time can be confirmed.","Pertemuan langsung dengan janji temu. Kirim pesan terlebih dahulu agar waktunya dapat dikonfirmasi.","现场会面需提前预约。请先发送消息以确认时间。"],"loc.founded":["Founded by ADTYAA","Founded by ADTYAA","由 ADTYAA 创立"],"loc.hours":["Opening hours","Jam operasional","营业时间"],"loc.d1":["Mon, Wed to Sat","Sen, Rab sampai Sab","周一、周三至周六"],"loc.d2":["Tuesday","Selasa","周二"],"loc.d3":["Sunday","Minggu","周日"],"loc.dir":["Get directions","Petunjuk arah","获取路线"],"loc.wa":["Chat on WhatsApp","Chat via WhatsApp","通过 WhatsApp 洽谈"],"loc.call":["Call now","Telepon sekarang","立即致电"],"loc.map":["DJURAGAN IKLAN ID on Google Maps","DJURAGAN IKLAN ID di Google Maps","DJURAGAN IKLAN ID 的 Google 地图位置"],"final.label":["Build what your business depends on.","Bangun sistem yang diandalkan bisnis Anda.","构建您的业务所依赖的系统。"],"final.title":["Let's build something worth depending on.","Mari bangun sesuatu yang layak diandalkan.","让我们共同构建值得依赖的系统。"],"final.copy":["One accountable technology partner across engineering, growth, security, and digital infrastructure.","Satu partner teknologi yang akuntabel untuk engineering, growth, keamanan, dan infrastruktur digital.","一个对结果负责的技术合作方，覆盖工程、增长、安全与数字基础设施。"],"foot.nav":["Navigate","Navigasi","导航"],"foot.cap":["Capabilities","Keahlian","核心能力"],"foot.con":["Contact","Kontak","联系"],"foot.plugins":["Custom Plugins","Plugin Kustom","定制插件"],"foot.themes":["Custom Themes","Tema Kustom","定制主题"],"foot.addons":["Add-ons & Care Plans","Add-on & Paket Perawatan","附加服务与维护计划"],"foot.rights":["All rights reserved.","Hak cipta dilindungi.","保留所有权利。"],"dock.group":["Quick contact","Kontak cepat","快速联系"],"dock.wa":["Chat on WhatsApp","Chat via WhatsApp","通过 WhatsApp 洽谈"],"dock.maps":["Open in Google Maps","Buka di Google Maps","在 Google 地图中打开"],"dock.call":["Call now","Telepon sekarang","立即致电"],"wa.general":["Hi Adtyaa, I found your guide on Canada to Indonesia Digital Marketing and I'd like to discuss a cross-border growth project.","Hi Adtyaa, I found your guide on Canada to Indonesia Digital Marketing and I'd like to discuss a cross-border growth project.","Hi Adtyaa, I found your guide on Canada to Indonesia Digital Marketing and I'd like to discuss a cross-border growth project."],"wa.article":["Hi Adtyaa, I read your guide on Canada to Indonesia Digital Marketing and I'd like to request a proposal for entering Indonesia from Canada.","Hi Adtyaa, I read your guide on Canada to Indonesia Digital Marketing and I'd like to request a proposal for entering Indonesia from Canada.","Hi Adtyaa, I read your guide on Canada to Indonesia Digital Marketing and I'd like to request a proposal for entering Indonesia from Canada."],"a.home":["Home","Beranda","首页"],"a.crumb":["Canada to Indonesia Digital Marketing Agency","Canada to Indonesia Digital Marketing Agency","加拿大至印尼数字营销机构"],"a.h1a":["Canada to Indonesia Digital Marketing Agency:","Canada to Indonesia Digital Marketing Agency:","加拿大至印尼数字营销机构："],"a.h1b":["Consent-First Lead Generation","Lead Generation Berbasis Persetujuan","以授权为先的线索获取"],"a.m1":["By Adtyaa","Oleh Adtyaa","作者：Adtyaa"],"a.m2":["9 October 2026","9 Oktober 2026","2026 年 10 月 9 日"],"a.m3":["8 min read","Baca 8 menit","阅读约 8 分钟"],"a.toc":["In this article","Dalam artikel ini","本文内容"],"a.img.alt":["Two colleagues reviewing a Canada to Indonesia digital marketing plan on a laptop in front of a wall of sticky notes","Dua rekan meninjau rencana Canada to Indonesia digital marketing di laptop di depan dinding catatan tempel","两位同事在贴满便利贴的墙前，用笔记本电脑查看加拿大至印尼数字营销方案"],"a.img.cap":["Planning a consent-first Indonesia entry, one step at a time.","Merencanakan masuk ke Indonesia yang mengutamakan persetujuan, selangkah demi selangkah.","一步一步规划以授权为先的印尼市场进入。"],"cta.b1":["Map my Indonesia entry","Petakan masuknya saya ke Indonesia","规划我的印尼市场进入路径"],"cta.b2":["Send a project brief","Kirim brief proyek","提交项目简报"],"au.name":["Adtyaa, Founder of [DJURAGAN IKLAN ID<\/a>","Adtyaa, Founder of](https://maps.app.goo.gl/YRw1yaWB5xfHcjwq5) [DJURAGAN IKLAN ID<\/a>","Adtyaa，](https://maps.app.goo.gl/YRw1yaWB5xfHcjwq5) [DJURAGAN IKLAN ID<\/a> 创始人"],"au.bio":["Builds websites, SEO, and paid advertising for Canadian companies growing in Indonesia.","Membangun website, SEO, dan iklan berbayar untuk perusahaan Kanada yang bertumbuh di Indonesia.","为在印尼发展的加拿大企业构建网站、SEO 与付费广告。"],"au.cta":["Map my Indonesia entry","Petakan masuknya saya ke Indonesia","规划我的印尼市场进入路径"],"au.alt":["Adtyaa, author of the Canada to Indonesia Digital Marketing guide","Adtyaa, penulis panduan Canada to Indonesia Digital Marketing","Adtyaa，Canada至印尼数字营销指南作者"],"c1":["Canada to Indonesia digital marketing works best when it starts with permission. Canadian companies already earn consent before they reach out, and that habit is exactly what Indonesian buyers reward. I build lead generation around it, so your pipeline can grow in Jakarta's daytime while Toronto, Calgary, and Vancouver are asleep.","Canada to Indonesia digital marketing paling efektif bila dimulai dari izin. Perusahaan Kanada sudah terbiasa meminta persetujuan sebelum menghubungi, dan kebiasaan itulah yang dihargai pembeli Indonesia. Saya membangun lead generation di sekitarnya, sehingga pipeline Anda bisa tumbuh di siang hari Jakarta sementara Toronto, Calgary, dan Vancouver sedang tidur.","加拿大至印尼数字营销（Canada to Indonesia digital marketing）以征得许可为起点时效果最好。加拿大企业本就习惯先取得同意再联系对方，而印尼买家恰恰看重这一点。我围绕它构建线索获取，让您的销售管道在雅加达的白天持续增长，而多伦多、卡尔加里与温哥华正在休息。"],"c2":["Canada to Indonesia digital marketing: a market that rewards good manners","Canada to Indonesia digital marketing: pasar yang menghargai sopan santun","加拿大至印尼数字营销：一个看重礼数的市场"],"c3":["Indonesia gives you an online audience of about 229 million people, according to](https://maps.app.goo.gl/YRw1yaWB5xfHcjwq5) [APJII<\/a>, and a business culture built on courtesy and personal relationships. A polite first message, a named contact, and a quick reply on WhatsApp go a long way. In summer Jakarta is eleven hours ahead of Toronto and fourteen ahead of Vancouver, so I run campaigns during Indonesian business hours and leave a clear summary waiting for your morning.","Indonesia memberi Anda audiens online sekitar 229 juta orang menurut](https://apjii.or.id) [APJII<\/a>, dan budaya bisnis yang dibangun di atas sopan santun serta hubungan personal. Pesan pertama yang santun, kontak bernama, dan balasan cepat di WhatsApp sangat membantu. Pada musim panas Jakarta sebelas jam lebih awal dari Toronto dan empat belas jam dari Vancouver, sehingga saya menjalankan kampanye pada jam kerja Indonesia dan meninggalkan ringkasan yang jelas untuk pagi hari Anda.","据](https://apjii.or.id) [APJII<\/a> 统计，印尼拥有约 2.29 亿在线受众，商业文化建立在礼貌与个人关系之上。一条礼貌的首次信息、一位具名联系人，以及在 WhatsApp 上的快速回复，都会大有帮助。夏季雅加达比多伦多早 11 小时、比温哥华早 14 小时，因此我在印尼工作时间内运行广告活动，并为您的早晨留下清晰的摘要。"],"c4":["Canadian exporters can also draw on the](https://apjii.or.id) [Trade Commissioner Service<\/a> alongside this work, and I keep the digital side moving in step.","Eksportir Kanada juga dapat memanfaatkan](https://www.tradecommissioner.gc.ca) [Trade Commissioner Service<\/a> berdampingan dengan pekerjaan ini, dan saya menjaga sisi digitalnya tetap berjalan seirama.","加拿大出口企业还可同时借助](https://www.tradecommissioner.gc.ca) [Trade Commissioner Service<\/a>，我会让数字层面的工作与之同步推进。"],"c5":["CASL-compliant lead generation Indonesia: consent that travels well","Lead generation Indonesia patuh CASL: persetujuan yang berlaku di mana saja","符合 CASL 的印尼线索获取：随处通用的授权"],"c6":["Canadian rules are strict about commercial messages, and that discipline is an advantage abroad. For Canada to Indonesia digital marketing, I build consent capture into every form and WhatsApp opt-in, so you can show who agreed to what, and when.","Aturan Kanada ketat soal pesan komersial, dan disiplin itu menjadi keunggulan di luar negeri. Untuk Canada to Indonesia digital marketing, saya membangun pencatatan persetujuan ke dalam setiap formulir dan opt-in WhatsApp, sehingga Anda dapat menunjukkan siapa yang setuju atas apa, dan kapan.","加拿大对商业信息的规则十分严格，这种纪律在海外反而是优势。在加拿大至印尼数字营销中，我把授权记录嵌入每一份表单与 WhatsApp 订阅，让您能够出示谁在何时同意了什么。"],"c7":["Rule","Aturan","规则"],"c8":["What it covers","Cakupan","涵盖内容"],"c9":["What I build","Yang saya bangun","我的实施方式"],"c10":["CASL","CASL","CASL"],"c11":["Commercial electronic messages","Pesan elektronik komersial","商业电子信息"],"c12":["Clear consent, sender identification, and an easy unsubscribe","Persetujuan yang jelas, identifikasi pengirim, dan unsubscribe yang mudah","明确授权、发件人标识与便捷的退订"],"c13":["PIPEDA","PIPEDA","PIPEDA"],"c14":["Personal information in commercial activity","Informasi pribadi dalam kegiatan komersial","商业活动中的个人信息"],"c15":["Forms that state their purpose and tidy data handling","Formulir yang menyatakan tujuannya dan pengelolaan data yang rapi","说明用途的表单与规范的数据处理"],"c16":["Quebec Law 25","UU 25 Quebec","魁北克第 25 号法案"],"c17":["Privacy for Quebec residents","Privasi penduduk Quebec","魁北克居民的隐私"],"c18":["Privacy notices and data-request routines for Quebec contacts","Pemberitahuan privasi dan prosedur permintaan data untuk kontak Quebec","面向魁北克联系人的隐私声明与数据请求流程"],"c19":["Indonesia's Law No. 27 of 2022","UU Nomor 27 Tahun 2022 Indonesia","印尼 2022 年第 27 号法律"],"c20":["Personal data of Indonesian residents","Data pribadi penduduk Indonesia","印尼居民的个人数据"],"c21":["Recorded consent on forms and WhatsApp","Persetujuan tercatat pada formulir dan WhatsApp","表单与 WhatsApp 上留存的授权记录"],"c22":["How consent is built into Indonesian campaigns","Cara persetujuan dibangun ke dalam kampanye Indonesia","授权如何融入印尼营销活动"],"c23":["The Government of Canada explains the anti-spam rules at](https://www.tradecommissioner.gc.ca) [fightspam.gc.ca<\/a>, and the same clarity carries into your Indonesian follow-ups.","Pemerintah Kanada menjelaskan aturan anti-spam di](https://fightspam.gc.ca) [fightspam.gc.ca<\/a>, dan kejelasan yang sama terbawa ke tindak lanjut Indonesia Anda.","加拿大政府在](https://fightspam.gc.ca) [fightspam.gc.ca<\/a> 说明反垃圾信息规则，同样的清晰度也延续到您的印尼跟进环节。"],"c24":["Cross-border digital marketing agency Canada Indonesia: one editorial standard for three languages","Cross-border digital marketing agency Canada Indonesia: satu standar editorial untuk tiga bahasa","加拿大—印尼跨境数字营销机构：三种语言，同一编辑标准"],"c25":["Canadian teams already manage English and French with care. As your cross-border digital marketing agency Canada Indonesia partner, I bring the same discipline to Bahasa Indonesia, so what your Indonesian visitors read is as polished as what your Canadian ones do.","Tim Kanada sudah terbiasa mengelola bahasa Inggris dan Prancis dengan cermat. Sebagai mitra cross-border digital marketing agency Canada Indonesia Anda, saya membawa disiplin yang sama ke Bahasa Indonesia, sehingga yang dibaca pengunjung Indonesia Anda sama rapinya dengan yang dibaca pengunjung Kanada.","加拿大团队本就习惯细致地管理英语和法语。作为您的加拿大—印尼跨境数字营销机构（cross-border digital marketing agency Canada Indonesia）合作伙伴，我把同样的纪律带到印尼语上，让印尼访客读到的内容与加拿大访客一样精致。"],"c26":["A shared glossary for product names, titles, and key terms.","Glosarium bersama untuk nama produk, jabatan, dan istilah kunci.","统一的产品名称、职衔与关键术语词汇表。"],"c27":["Copy written natively in Bahasa Indonesia, never run through a translator.","Copy ditulis secara natural dalam Bahasa Indonesia, bukan hasil mesin penerjemah.","以印尼语原生撰写文案，而非机器翻译。"],"c28":["An English summary of every page and ad, so your team always knows what is live.","Ringkasan bahasa Inggris untuk setiap halaman dan iklan, agar tim Anda selalu tahu apa yang tayang.","每个页面与广告都附英文摘要，让您的团队随时了解上线内容。"],"c29":["A native editor's final review before anything goes out.","Tinjauan akhir editor penutur asli sebelum apa pun tayang.","任何内容发布前，由母语编辑做最终审校。"],"c30":["Canadian companies expanding to Indonesia: marketing from first click to first call","Perusahaan Kanada yang berekspansi ke Indonesia: pemasaran dari klik pertama hingga panggilan pertama","拓展印尼的加拿大企业：从首次点击到首次通话的营销"],"c31":["Each step in the funnel asks for a little permission and gives something useful back. That is how trust grows with Indonesian buyers, and it keeps your Canadian compliance record clean.","Setiap langkah dalam funnel meminta sedikit izin dan memberi sesuatu yang berguna sebagai balasannya. Begitulah kepercayaan tumbuh bersama pembeli Indonesia, dan itu menjaga catatan kepatuhan Kanada Anda tetap bersih.","漏斗中的每一步都先征求一点许可，再回馈一些有价值的东西。这正是与印尼买家建立信任的方式，也让您的加拿大合规记录保持干净。"],"c32":["Step","Langkah","步骤"],"c33":["Where","Di mana","位置"],"c34":["What the visitor sees","Yang dilihat pengunjung","访客看到的内容"],"c35":["Ad click","Klik iklan","点击广告"],"c36":["Search or social ad","Iklan search atau sosial","搜索或社交广告"],"c37":["A clear promise that matches the landing page","Janji yang jelas dan sesuai dengan landing page","与落地页一致的明确承诺"],"c38":["Landing page","Landing page","落地页"],"c39":["Indonesian page","Halaman Indonesia","印尼语页面"],"c40":["A short consent line next to the form","Satu baris persetujuan singkat di samping formulir","表单旁的简短授权说明"],"c41":["WhatsApp","WhatsApp","WhatsApp"],"c42":["Opt-in message","Pesan opt-in","订阅确认消息"],"c43":["A friendly confirmation that asks permission to continue","Konfirmasi ramah yang meminta izin untuk melanjutkan","询问是否继续的友好确认"],"c44":["Follow-up","Tindak lanjut","跟进"],"c45":["Email or WhatsApp","Email atau WhatsApp","邮件或 WhatsApp"],"c46":["A relevant message with an easy opt-out","Pesan relevan dengan opt-out yang mudah","内容相关且易于退订的消息"],"c47":["Meeting","Pertemuan","会议"],"c48":["Calendar invite","Undangan kalender","日历邀请"],"c49":["A named contact and a clear agenda","Kontak bernama dan agenda yang jelas","具名联系人与清晰议程"],"c50":["Where consent happens in the funnel","Di mana persetujuan terjadi dalam funnel","漏斗中授权发生的位置"],"c51":["Digital marketing agency for Canadian exporters in Indonesia: how I work","Digital marketing agency untuk eksportir Kanada di Indonesia: cara saya bekerja","面向加拿大出口企业的印尼数字营销机构：我的工作方式"],"c52":["I take care of the Indonesian pages, the search and social campaigns, tracking, and monthly reporting in English, while your team keeps the sales conversation. If you want an Indonesia market entry digital strategy Canada leadership can sign off, I begin with a written proposal that sets scope and milestones, and the](https://fightspam.gc.ca) [approach<\/a> shows how an engagement runs.","Saya mengurus halaman Indonesia, kampanye search dan sosial, pelacakan, dan pelaporan bulanan dalam bahasa Inggris, sementara tim Anda memegang percakapan penjualan. Bila Anda menginginkan strategi digital masuk pasar Indonesia yang dapat disetujui pimpinan Kanada, saya mulai dengan proposal tertulis yang menetapkan lingkup dan milestone, dan](https://medikabyte.com/#approach) [pendekatan kami<\/a> menunjukkan bagaimana kerja sama berjalan.","我负责印尼语页面、搜索与社交广告、追踪以及英文月报，而销售沟通仍由您的团队掌握。如果您需要加拿大管理层能够批准的印尼市场进入数字策略（Indonesia market entry digital strategy Canada），我会先出具书面方案，列明范围与里程碑，](https://medikabyte.com/#approach) [合作流程<\/a>展示了合作如何推进。"],"c53":["Indonesian landing pages built for speed and clarity.","Landing page Indonesia yang dibangun untuk kecepatan dan kejelasan.","注重速度与清晰度的印尼语落地页。"],"c54":["Google and Meta campaigns with consent-aware tracking.","Kampanye Google dan Meta dengan pelacakan yang sadar persetujuan.","配合授权记录的 Google 与 Meta 广告活动。"],"c55":["A monthly English report, with a short call timed for your morning.","Laporan bulanan berbahasa Inggris, dengan panggilan singkat yang dijadwalkan pada pagi hari Anda.","英文月报，并在您的上午安排一次简短通话。"],"c56":["Ready for Canada to Indonesia digital marketing?","Siap untuk Canada to Indonesia digital marketing?","准备好开展加拿大至印尼数字营销了吗？"],"c57":["Your Indonesian pipeline can fill while Toronto sleeps. Send your offer, your time zone, and the audience you want to reach, and I will reply within 24 hours with a written proposal.","Pipeline Indonesia Anda bisa terisi saat Toronto tidur. Kirimkan penawaran, zona waktu, dan audiens yang ingin dijangkau, dan saya akan membalas dalam 24 jam dengan proposal tertulis.","当多伦多入睡时，您的印尼销售管道正在充盈。请发送您的产品方案、所在时区与希望触达的受众，我将在 24 小时内回复书面方案。"],"c58":["Canada to Indonesia digital marketing: frequently asked questions","Canada to Indonesia digital marketing: pertanyaan yang sering diajukan","加拿大至印尼数字营销：常见问题"],"c59":["Can you work from French source materials?","Bisakah Anda bekerja dari materi sumber berbahasa Prancis?","能否基于法语素材开展工作？"],"c60":["Yes. Your French and English materials are welcome as source content, and I deliver in English and Bahasa Indonesia.","Bisa. Materi Prancis dan Inggris Anda diterima sebagai sumber konten, dan saya mengerjakannya dalam bahasa Inggris dan Bahasa Indonesia.","可以。法语与英语素材都可作为原始内容，我以英语和印尼语交付。"],"c61":["Which Canadian time zone is easiest to coordinate with?","Zona waktu Kanada mana yang paling mudah dikoordinasikan?","加拿大哪个时区最容易协调？"],"c62":["Eastern, at eleven hours behind Jakarta in summer, leaves the friendliest overlap. Western teams work from the written summary and a short call.","Timur, dengan selisih sebelas jam dari Jakarta pada musim panas, memberi irisan yang paling nyaman. Tim Barat bekerja dari ringkasan tertulis dan panggilan singkat.","东部时区在夏季比雅加达晚 11 小时，重叠时段最友好；西部团队则依靠书面摘要与简短通话。"],"c63":["Does WhatsApp fit a consent-first process?","Apakah WhatsApp cocok dengan proses yang mengutamakan persetujuan?","WhatsApp 适合以授权为先的流程吗？"],"c64":["Yes. The opt-in message asks permission before anything else, and every contact can leave with a single reply.","Cocok. Pesan opt-in meminta izin lebih dulu, dan setiap kontak dapat berhenti dengan satu balasan.","适合。订阅确认消息先征求许可，任何联系人只需回复一条消息即可退出。"],"c65":["When will the first enquiries arrive?","Kapan enquiry pertama masuk?","首批询盘何时到来？"],"c66":["Once pages and tracking are live, paid search often produces first enquiries within the first weeks, while SEO builds over several months. Your proposal sets the timeline.","Setelah halaman dan pelacakan tayang, paid search sering menghasilkan enquiry pertama dalam beberapa minggu pertama, sedangkan SEO menguat dalam beberapa bulan. Proposal Anda menetapkan jadwalnya.","页面与追踪上线后，付费搜索通常在最初几周内就能带来首批询盘，SEO 则需数月累积。时间表会在您的方案中确定。"]}; var LI = { en: 0, id: 1, zh: 2 }; var L = "en"; var PHONE = "6281411188809", MAIL = "hallo@adtyaa.cloud";](https://medikabyte.com/#approach)

function $(sel, ctx) { return Array.prototype.slice.call((ctx || root).querySelectorAll(sel)); } function byId(id) { return document.getElementById(id); } function t(key, lang) { var e = D[key]; if (!e) { return key; } var v = e[LI[lang || L]]; return (v === undefined || v === "") ? e[0] : v; } function msgLang() { return "en"; } function waUrl(m) { return "https://wa.me/" + PHONE + "?text=" + encodeURIComponent(m); }

/* ---------- language (EN default, ID, 中文) ---------- */ var scLoaded = false; function loadSC() { if (scLoaded) { return; } scLoaded = true; var l = document.createElement("link"); l.rel = "stylesheet"; l.href = "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap"; document.head.appendChild(l); } function apply() { if (L === "zh") { loadSC(); } document.documentElement.setAttribute("lang", L === "zh" ? "zh-Hans" : L); root.setAttribute("data-l", L); $("[data-i18n]").forEach(function (el) { el.textContent = t(el.getAttribute("data-i18n")); }); $("[data-i18n-html]").forEach(function (el) { el.innerHTML = t(el.getAttribute("data-i18n-html")); }); $("[data-i18n-alt]").forEach(function (el) { el.setAttribute("alt", t(el.getAttribute("data-i18n-alt"))); }); $("[data-i18n-title]").forEach(function (el) { el.setAttribute("title", t(el.getAttribute("data-i18n-title"))); }); $("[data-i18n-aria]").forEach(function (el) { el.setAttribute("aria-label", t(el.getAttribute("data-i18n-aria"))); }); $("[data-wa]").forEach(function (el) { el.setAttribute("href", waUrl(t(el.getAttribute("data-wa"), msgLang()))); }); $("[data-lang]").forEach(function (b) { b.setAttribute("aria-pressed", b.getAttribute("data-lang") === L ? "true" : "false"); }); var st = byId("fs"); if (st) { st.textContent = ""; st.classList.remove("err"); } }

root.addEventListener("click", function (e) { var b = e.target.closest ? e.target.closest("[data-lang]") : null; if (!b) { return; } L = b.getAttribute("data-lang"); apply(); });

(function initLang() { var pick = null; try { var q = new URLSearchParams(window.location.search || "").get("lang"); if (q && LI[q] !== undefined) { pick = q; } } catch (x) {} if (pick) { L = pick; } })();

/* ---------- header + mobile menu ---------- */ var hd = byId("hd"), bg = byId("bg"), mn = byId("mn"); var bar = root.querySelector(".prog span"); var ticking = false; function onScroll() { ticking = false; if (hd) { hd.classList.toggle("sc", window.scrollY > 8); } if (bar) { var h = document.documentElement.scrollHeight - window.innerHeight; var p = h > 0 ? Math.min(1, Math.max(0, window.scrollY / h)) : 0; bar.style.transform = "scaleX(" + p.toFixed(4) + ")"; } } window.addEventListener("scroll", function () { if (!ticking) { ticking = true; window.requestAnimationFrame(onScroll); } }, { passive: true }); onScroll();

function closeMenu() { if (mn) { mn.classList.remove("on"); } if (bg) { bg.setAttribute("aria-expanded", "false"); } } if (bg && mn) { bg.addEventListener("click", function () { var on = mn.classList.toggle("on"); bg.setAttribute("aria-expanded", on ? "true" : "false"); }); mn.addEventListener("click", function (e) { if (e.target.closest && e.target.closest("a")) { closeMenu(); } }); } document.addEventListener("keydown", function (e) { if (e.key === "Escape") { closeMenu(); } }); window.addEventListener("resize", function () { if (window.innerWidth > 1000) { closeMenu(); } });

/* ---------- contact form (no server) ---------- */ var form = byId("cf"); if (form) { var fs = byId("fs"); var val = function (id) { var el = byId(id); return el ? el.value.trim() : ""; }; var optText = function (id) { var el = byId(id); if (!el || !el.value) { return ""; } var key = el.options[el.selectedIndex].getAttribute("data-i18n"); return key ? t(key, msgLang()) : el.options[el.selectedIndex].text; }; var setStatus = function (key, err) { fs.textContent = key ? t(key) : ""; fs.classList.toggle("err", !!err); }; var validate = function () { var ok = true; ["f-name", "f-service"].forEach(function (id) { var el = byId(id), bad = !el.value.trim(); el.setAttribute("aria-invalid", bad ? "true" : "false"); if (bad) { ok = false; } }); return ok; }; var compose = function () { var ml = msgLang(), lines = [t("wa.general", ml), ""]; var add = function (k, v) { if (v) { lines.push(t(k, ml) + ": " + v); } }; add("m.name", val("f-name")); add("m.email", val("f-email")); add("m.wa", val("f-wa")); add("m.url", val("f-url")); add("m.service", optText("f-service")); add("m.eng", optText("f-eng")); add("m.time", optText("f-time")); var m = val("f-msg"); if (m) { lines.push(""); lines.push(t("m.msg", ml) + ":"); lines.push(m); } return lines.join("\n"); }; byId("send-wa").addEventListener("click", function () { if (!validate()) { setStatus("f.err", true); return; } setStatus("f.okwa", false); window.open(waUrl(compose()), "_blank", "noopener"); }); byId("send-mail").addEventListener("click", function () { if (!validate()) { setStatus("f.err", true); return; } setStatus("f.okmail", false); var subject = t("m.subject", msgLang()) + " - " + val("f-name"); window.location.href = "mailto:" + MAIL + "?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(compose()); }); form.addEventListener("submit", function (e) { e.preventDefault(); byId("send-wa").click(); }); ["f-name", "f-service"].forEach(function (id) { var el = byId(id); var clear = function () { if (el.value.trim()) { el.setAttribute("aria-invalid", "false"); } }; el.addEventListener("input", clear); el.addEventListener("change", clear); }); }

apply();

/* ---------- motion (respects reduced motion) ---------- */ var reduce = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;

/* ---------- particle field (article header + final CTA) ---------- */ function initFx(host) { if (!host) { return; } var cv = document.createElement("canvas"); cv.className = "fx"; cv.setAttribute("aria-hidden", "true"); host.insertBefore(cv, host.firstChild); var ctx = cv.getContext("2d"); if (!ctx) { return; } var W = 1, H = 1, stars = [], dust = [], nodes = [], mx = -9999, my = -9999, onScreen = true; var sprite = document.createElement("canvas"); sprite.width = sprite.height = 48; var sg = sprite.getContext("2d"), grad = sg.createRadialGradient(24, 24, 0, 24, 24, 24); grad.addColorStop(0, "rgba(255,243,209,1)"); grad.addColorStop(.25, "rgba(230,200,140,.55)"); grad.addColorStop(1, "rgba(201,164,92,0)"); sg.fillStyle = grad; sg.fillRect(0, 0, 48, 48); function rnd(a, b) { return a + Math.random() * (b - a); } function seed() { var a = W * H, i; stars = []; dust = []; nodes = []; for (i = 0; i < Math.round(a / 9000); i++) { stars.push({ x: rnd(0, W), y: rnd(0, H), r: rnd(.3, 1.05), p: rnd(0, 6.28), s: rnd(.5, 1.6) }); } for (i = 0; i < Math.round(Math.min(46, 16 + a / 42000)); i++) { dust.push({ x: rnd(0, W), y: rnd(0, H), r: rnd(1.4, 3.6), vy: rnd(.1, .38), vx: rnd(-.07, .07), a: rnd(.25, .65), p: rnd(0, 6.28) }); } for (i = 0; i < Math.round(Math.min(64, Math.max(20, a / 24000))); i++) { nodes.push({ x: rnd(0, W), y: rnd(0, H), vx: rnd(-.12, .12), vy: rnd(-.1, .1) }); } } function size() { var r = host.getBoundingClientRect(), dpr = Math.min(window.devicePixelRatio || 1, 2); W = Math.max(1, r.width); H = Math.max(1, r.height); cv.width = Math.round(W * dpr); cv.height = Math.round(H * dpr); ctx.setTransform(dpr, 0, 0, dpr, 0, 0); seed(); draw(0, true); } function draw(t, still) { var i, j, n, m, dx, dy, d, al; ctx.clearRect(0, 0, W, H); for (i = 0; i < stars.length; i++) { n = stars[i]; al = .2 + .6 * (.5 + .5 * Math.sin(t * .001 * n.s + n.p)); ctx.fillStyle = "rgba(243,232,205," + (al * .75).toFixed(3) + ")"; ctx.beginPath(); ctx.arc(n.x, n.y, n.r, 0, 6.2832); ctx.fill(); } for (i = 0; i < nodes.length; i++) { n = nodes[i]; if (!still) { n.x += n.vx; n.y += n.vy; if (n.x < -10) { n.x = W + 10; } else if (n.x > W + 10) { n.x = -10; } if (n.y < -10) { n.y = H + 10; } else if (n.y > H + 10) { n.y = -10; } } for (j = i + 1; j < nodes.length; j++) { m = nodes[j]; dx = n.x - m.x; dy = n.y - m.y; if (dx > 150 || dx < -150 || dy > 150 || dy < -150) { continue; } d = Math.sqrt(dx * dx + dy * dy); if (d < 150) { ctx.strokeStyle = "rgba(217,188,130," + ((1 - d / 150) * .2).toFixed(3) + ")"; ctx.lineWidth = .7; ctx.beginPath(); ctx.moveTo(n.x, n.y); ctx.lineTo(m.x, m.y); ctx.stroke(); } } dx = n.x - mx; dy = n.y - my; d = Math.sqrt(dx * dx + dy * dy); if (d < 190) { ctx.strokeStyle = "rgba(246,231,189," + ((1 - d / 190) * .5).toFixed(3) + ")"; ctx.lineWidth = .9; ctx.beginPath(); ctx.moveTo(n.x, n.y); ctx.lineTo(mx, my); ctx.stroke(); } ctx.fillStyle = "rgba(230,205,150,.7)"; ctx.beginPath(); ctx.arc(n.x, n.y, 1.25, 0, 6.2832); ctx.fill(); } for (i = 0; i < dust.length; i++) { n = dust[i]; if (!still) { n.y -= n.vy; n.x += n.vx + Math.sin(t * .0006 + n.p) * .12; if (n.y < -12) { n.y = H + 12; n.x = rnd(0, W); } } ctx.globalAlpha = n.a * (.65 + .35 * Math.sin(t * .0012 + n.p)); ctx.drawImage(sprite, n.x - n.r * 3, n.y - n.r * 3, n.r * 6, n.r * 6); } ctx.globalAlpha = 1; } function loop(ts) { if (onScreen && !document.hidden) { draw(ts, false); } window.requestAnimationFrame(loop); } size(); if ("ResizeObserver" in window) { new ResizeObserver(function () { size(); }).observe(host); } else { window.addEventListener("resize", size); } if (reduce) { return; } if ("IntersectionObserver" in window) { new IntersectionObserver(function (es) { es.forEach(function (en) { onScreen = en.isIntersecting; }); }, { rootMargin: "100px" }).observe(host); } host.addEventListener("pointermove", function (e) { var r = host.getBoundingClientRect(); mx = e.clientX - r.left; my = e.clientY - r.top; }); host.addEventListener("pointerleave", function () { mx = -9999; my = -9999; }); window.requestAnimationFrame(loop); } initFx(root.querySelector(".ah")); initFx(root.querySelector(".final")); if (reduce || !("IntersectionObserver" in window)) { return; } if (!document.body.classList.contains("elementor-editor-active")) { root.classList.add("js"); var rv = new IntersectionObserver(function (es) { es.forEach(function (en) { if (!en.isIntersecting) { return; } en.target.classList.add("in"); rv.unobserve(en.target); }); }, { threshold: 0, rootMargin: "0px 0px -6% 0px" }); $(".rv").forEach(function (el) { rv.observe(el); }); } })();

tetap bisa diseleksi/disalin. */ (function(){ 'use strict'; if(window.__cgOn)return;window.__cgOn=1; if(document.body&&document.body.classList.contains('elementor-editor-active'))return;

var doc=document,root=doc.documentElement; var EDITABLE="input,textarea,select,[contenteditable='true']"; var COPYABLE='.cm,address'; var WM_MS=5000; /* lama watermark tampil setelah screenshot terdeteksi */ var wm=null,wmTimer=0;

root.classList.add('cg-on');

function inEditable(el){return !!(el&&el.closest&&el.closest(EDITABLE))} function block(e){e.preventDefault()}

/* ---------- Watermark screenshot ---------- */ function showWatermark(){ if(!wm){ if(!doc.body)return; wm=doc.createElement('div'); wm.className='cg-wm'; wm.setAttribute('aria-hidden','true'); doc.body.appendChild(wm); } root.classList.add('cg-shot'); clearTimeout(wmTimer); wmTimer=setTimeout(function(){root.classList.remove('cg-shot')},WM_MS); }

/* ---------- Print ---------- */ function printOn(){root.classList.add('cg-print')} function printOff(){root.classList.remove('cg-print')} window.addEventListener('beforeprint',printOn); window.addEventListener('afterprint',printOff); if(window.matchMedia){ var mq=window.matchMedia('print'); var onMq=function(e){e.matches?printOn():printOff()}; if(mq.addEventListener)mq.addEventListener('change',onMq); else if(mq.addListener)mq.addListener(onMq); }

/* ---------- Mouse / seleksi ---------- */ doc.addEventListener('contextmenu',function(e){ if(!inEditable(e.target))block(e); });

doc.addEventListener('dragstart',block);

doc.addEventListener('selectstart',function(e){ var t=e.target&&e.target.nodeType===1?e.target:(e.target&&e.target.parentElement); if(inEditable(t)||(t&&t.closest&&t.closest(COPYABLE)))return; block(e); });

/* ---------- Keyboard ---------- */ doc.addEventListener('keydown',function(e){ var k=e.code,mod=e.ctrlKey||e.metaKey,stop=false;

/* Screenshot: PrintScreen, Cmd+Shift+3/4/5/6 (Mac), Win+Shift+S */ if(k==='PrintScreen'||e.key==='PrintScreen'|| (e.metaKey&&e.shiftKey&&(k==='Digit3'||k==='Digit4'||k==='Digit5'||k==='Digit6'||k==='KeyS'))){ showWatermark(); }

if(k==='F12'){ stop=true; }else if(mod&&!e.altKey&&(k==='KeyP'||(!e.shiftKey&&(k==='KeyS'||k==='KeyU')))){ stop=true; /* Ctrl/Cmd + P (print), S, U */ }else if( (mod&&e.shiftKey&&(k==='KeyI'||k==='KeyJ'||k==='KeyC'))|| /* Ctrl/Cmd + Shift + I, J, C */ (e.metaKey&&e.altKey&&(k==='KeyI'||k==='KeyJ'||k==='KeyC'||k==='KeyU')) /* Cmd + Option + I, J, C, U (Mac) */ ){ stop=true; } if(stop){block(e);e.stopPropagation()} },true);

/* Di Windows, PrintScreen sering hanya mengirim keyup */ doc.addEventListener('keyup',function(e){ if(e.code==='PrintScreen'||e.key==='PrintScreen')showWatermark(); },true);

/* Desktop saja: bila panel dev tools terbuka (docked), bersihkan console saat jendela di-resize */ if(window.matchMedia&&window.matchMedia('(hover:hover) and (pointer:fine)').matches){ var raf=0; window.addEventListener('resize',function(){ if(raf)return; raf=requestAnimationFrame(function(){ raf=0; if((window.outerWidth-window.innerWidth>200||window.outerHeight-window.innerHeight>260)&&window.console&&console.clear){console.clear()} }); },{passive:true}); } }());
