Kakao Moment Ads
Kakao provides a real Pixel, mobile SDK, and server-side Conversion API. Conversion API is separate from the Kakao Moment campaign API. It uses a Pixel & SDK Track ID and a token from the Pixel & SDK console.
Kakao currently supports Conversion API performance measurement for KakaoTalk mobile Bizboard and Display ads. Treat other surfaces as unsupported until Kakao confirms support. Conversion API guide
Account and access
- Create a Kakao Account.
- Convert it to an integrated Kakao Business account and accept the Kakao Business terms. Moment concepts
- Create an ad account in Kakao Business. An advertiser or agency can create it. Business information is used for tax invoices. Moment concepts
- Open Business tools > Pixel & SDK and create a Pixel & SDK. Copy its Track ID. A member can request access to an existing tracker. Pixel & SDK guide
- Link the Pixel & SDK to the ad account. One ad account can link up to 100 trackers. Tracker linkage API
Moment campaign API access has a separate gate. Register an app, switch it to a Biz app, verify the app owner's identity, and request Moment API permission. Register a business redirect URI and the required business consent items. Use a Business token for these management calls. Moment API concepts
Conversion API access has a separate token flow. Open Pixel & SDK detail > Settings > Issue token. Only the Pixel & SDK master can view Settings. Choose an expiry, then copy the token before closing the dialog. Kakao permits up to five tokens and does not show a token again. Conversion API guide
Use these adapter secret names:
KAKAO_MOMENT_PIXEL_ID # public Track ID
KAKAO_MOMENT_CAPI_TOKEN # private Conversion API token
KAKAO_MOMENT_ACCESS_TOKEN # private Moment Business token
KAKAO_MOMENT_AD_ACCOUNT_ID # Moment ad account ID
Do not use the Moment Business token for Conversion API.
Web Pixel
Load the script in the page head before calling kakaoPixel. Use Kakao's documented HTTPS origin and the Track ID from KAKAO_MOMENT_PIXEL_ID. Web Pixel installation
<script type="text/javascript" charset="UTF-8"
src="https://t1.daumcdn.net/kas/static/kp.js"></script>
<script>
kakaoPixel("<KAKAO_MOMENT_PIXEL_ID>").pageView();
</script>
Send pageView() on every web page. Send conversion methods only when the action completes. Send purchase() after a confirmed payment.
const pixel = kakaoPixel(import.meta.env.KAKAO_MOMENT_PIXEL_ID);
pixel.pageView();
pixel.completeRegistration();
pixel.search({ keyword: "<query>" });
pixel.viewContent();
pixel.addToCart();
pixel.addToWishList();
pixel.viewCart();
pixel.participation(); // lead or potential customer
pixel.signUp(); // service application
pixel.purchase({
total_quantity: "1",
total_price: "500",
currency: "KRW",
products: [{
id: "sku123", name: "Example product", quantity: "1",
price: "500", brand: "Example brand"
}]
});
Purchase fields are optional. Use an ISO 4217 three-letter currency code. Kakao defaults an omitted currency to KRW. Product quantity and price are strings in the current guide. Web event reference
Kakao supports a string tag after an event or a tag field in an event object. Configure the same tag in the Pixel & SDK console. Code-only tags do not create the matching custom-event audience. Pixel & SDK guide
App SDK
Install the Kakao SDK for iOS or Android, or use a supported MMP. Use the same Pixel & SDK Track ID. Kakao documents AppInstall, AppLaunch, app purchase, and registration events. Do not use web Pixel code in an app server. Pixel & SDK
Event mapping
The first column is the hub event. The second column is the verified Kakao standard name for Pixel and SDK. Use the v1.8 PDF for CAPI wire mapping.
| Hub event | Kakao Pixel/SDK name |
|---|---|
| page_view | PageView |
| view_content | ViewContent |
| lead | Participation |
| signup | CompleteRegistration |
| purchase | Purchase |
| begin_checkout | UNMAPPED |
| subscription_start | SignUp only for service application |
| refund | UNMAPPED |
Kakao also defines Search, AddToCart, AddToWishlist, ViewCart, SignUp, AppInstall, and AppLaunch. SignUp means a service application. It does not mean ordinary account registration. Pixel event list
Conversion API
Kakao Conversion API sends first-party events from the advertiser server. Kakao matches users with SHA-256 hashed email hem and hashed phone hpn. Kakao does not accept internal customer IDs, account IDs, addresses, or birth dates as replacement identifiers. Conversion API guide
The public guide links Kakao Conversion API integration guide v1.8.pdf. That PDF contains the request URL, authentication header, required fields, event codes, timestamp rules, and body schema. The accessible official page does not expose that contract. The Moment API reference lists no CAPI send route. Therefore:
UNVERIFIED: Do not guess the Conversion API endpoint, auth header, token prefix, required fields, event codes, timestamp unit, or JSON body. Copy them from the linked v1.8 PDF or obtain Kakao confirmation before implementation. Do not send CAPI data to https://apis.moment.kakao.com. That host documents Moment management APIs. Moment API reference
The CAPI guide verifies these contract boundaries:
- Use the Pixel & SDK Track ID.
- Issue the private token from Pixel & SDK Settings.
- Send only consented marketing data.
- Send only SHA-256 hashed hem and hpn for direct user matching.
- Expect customer matching to fail when neither email nor phone is present.
- Use the existing Pixel & SDK when possible. More events increase the learning seed for optimization. Conversion API guide
Normalize in ad-conversion-hub before hashing. Use trim and lowercase for email. Use the hub's current country-code rules for phone. Do not hash a value twice. Require measurement consent before dispatch. Require ad_user_data consent before adding hem or hpn.
Deduplication
Kakao does not document an advertiser-controlled event_id, eventID, order-number, or other CAPI deduplication field in the accessible guide text. Kakao says it internally removes duplicate Pixel and CAPI conversions when it builds the final Moment ad performance report. The Pixel & SDK dashboard can show both raw sends. Conversion API FAQ
Keep the hub event_id in the dispatch log. Do not put it into an undocumented Kakao field. Send Pixel and CAPI twins with the same business event data. Verify deduplication in the final integrated report, not only in the dashboard.
Kakao Click ID
The click parameter is kclid. Enable Kakao Click ID for a supported campaign. Kakao adds kclid to the landing URL. The Pixel stores it in a first-party cookie and uses it on later conversion events. Kakao Click ID
The official guide does not state a fixed cookie lifetime. The TTL is therefore UNVERIFIED. Store first-touch and most-recent kclid in first-party storage under the hub retention policy. Do not invent a 7-day or 30-day TTL.
Kakao does not support kclid for app landings or web landings with redirects. It supports only listed campaign types and goals. A redirect can discard the parameter before the Pixel sees it. Click ID limitations
Tracking quirks
- CAPI events without email or phone can arrive but cannot complete normal customer matching for conversion measurement.
- Sending both identifiers improves match rate. Kakao says phone matching is usually more accurate than email matching.
- CAPI performance measurement currently covers KakaoTalk mobile Bizboard and Display. Do not assume other surfaces use CAPI.
- The integrated report removes Pixel/CAPI duplicates. It is a next-day custom report, not a real-time dashboard.
- Moment conversion reports expose separate one-day and seven-day metrics, including conv_purchase_1d and conv_purchase_7d.
- A conversion campaign needs the Pixel & SDK objective ID. An installed tracker that is not linked to the ad account cannot optimize that campaign. Moment metrics · Campaign API
Verification
- Request proof: record the redacted CAPI response. A successful request does not prove that Kakao counted the event.
- Platform proof: open Pixel & SDK detail > Dashboard. Filter the source to Conversion API. Inspect event history and customer-match rate. Conversion API guide
- Business proof: on the next day, download the integrated Moment report. Compare deduplicated Purchase results with succeeded payment-provider charges. Moment reports
Use Pixel Helper for client proof. It shows event calls, parameters, page URL, event URL, send time, and load time. Pixel Helper does not prove server delivery. Pixel Helper
Common pitfalls
- Use the Pixel CAPI token for CAPI. Use the Business token for Moment API calls.
- Copy the CAPI token before closing its dialog. Kakao does not show it again.
- Load kp.js before calling kakaoPixel().
- Put the Pixel in web pages and the SDK in apps. They are not server modules.
- Use CompleteRegistration for account signup and SignUp for service application.
- Send SHA-256 hem and hpn, never raw email or phone.
- Do not invent a CAPI event_id or send CAPI to the Moment Open API host.
- Do not treat dashboard raw duplicates as final report duplicates.
- Do not treat missing kclid as proof that a purchase was not from Kakao.
- Do not use a non-ISO currency. An omitted currency means KRW.
- Set action_source and app fields only after confirming the v1.8 schema.
Security
Keep KAKAO_MOMENT_CAPI_TOKEN and KAKAO_MOMENT_ACCESS_TOKEN in the deployment secret store. Never put tokens in browser code, URLs, logs, tests, screenshots, or commits. Load kp.js only from Kakao's HTTPS origin.
Apply the hub consent gate before hashing. Do not log raw identity values, hem, or hpn. Redact tokens and event payloads from retry logs.
Use ad-conversion-hub for canonical events, consent, hashing, click capture, retry policy, dispatch isolation, and payment reconciliation. Use this skill for Kakao console gates, names, Pixel methods, CAPI limits, and report behavior.