Reporting and logging

cpCode

Required. A Content Provider (CP) code is how traffic through this configuration gets tracked for reporting and billing.

{
  "name": "cpCode",
  "options": {
    "enableDefaultContentProviderCode": true
  }
}

The template opts into your contract's default CP code so a new environment version is valid without you having to look one up. To pin a specific code, set enableDefaultContentProviderCode to false and supply the code.

{
  "name": "cpCode",
  "options": {
    "enableDefaultContentProviderCode": false,
    "value": {
      "id": 12345
    }
  }
}

Pin a code when either of these applies:

  • Granularity. Billing and reporting merge when configurations share a CP code. Use a distinct
    code to keep this configuration's data separate.
  • Log Delivery Service (LDS). If you plan to enable LDS, the code can't be active on another configuration on the production network. Sharing with staging configurations is fine.

edgeScapeTemplate

{
  "name": "edgeScapeTemplate",
  "options": {
    "enabled": false
  }
}

EdgeScape identifies a user's location, network, and connection speed and forwards it to your origin in the X-Akamai-Edgescape request header, so you can serve localized content. It ships off because it only helps if your origin actually reads the header, and enabling it unconditionally changes what your origin sees on every request.

When you enable it, requestType becomes available — CLIENT_REQ (the default), ESI_FRAGMENT, or EW_SUBREQUEST.

📘

If your origin caches content based on these header values, consult your Akamai team to make sure your caching configuration is optimized for geolocation.

report

{
  "name": "report",
  "options": {
    "logHost": false,
    "logReferer": false,
    "logUserAgent": false,
    "logAcceptLanguage": false,
    "logCookies": "OFF",
    "logCustomLogField": false,
    "logEdgeIP": false,
    "logXForwardedFor": false
  }
}

This setting selects which request details the Log Delivery Service (LDS) includes in your logs. All fields ship off: logs are opt-in per field, so you decide what request data leaves the platform rather than inheriting a set you didn't choose.

Turn on what you need. logCookies takes OFF, ALL, or SOME; with SOME, add a cookies array naming them. With logCustomLogField set to true, customLogField lets you capture a specific header or variable.

Configuring this setting doesn't start log delivery. You also need to activate the service: in Akamai Control Center, go to Analytics & monitor > Log Delivery, filter by your CP code, then Action > Start a log delivery > New.

🚧

LDS takes 24–48 hours to activate, and logs can't be collected retroactively. Set it up well
before a production launch.

enhancedDebug

{
  "name": "enhancedDebug",
  "options": {
    "enableDebug": true,
    "debugKey": "",
    "disablePragma": true,
    "generateGrn": true
  }
}

Enhanced Debug is the current, secure way to diagnose requests, replacing Pragma debugging. It uses a time-limited authentication token derived from a secret key you define, so debug output can't be requested by anyone who simply knows the header name.

OptionShips asWhy
enableDebugtrueDiagnostics available from the start. The other three options are only available while this is true.
debugKey""An automatically generated 64-byte hex string, used both to validate the debug auth token and to generate it. Reusing one key across your configurations is a reasonable practice.
disablePragmatrueLegacy Pragma debugging is off, so debug data isn't exposed to unauthenticated requests. Only enable Pragma during a transition, until your tooling uses Enhanced Debug.
generateGrntrueReturns a Global Request Number on responses even when a request isn't being debugged, which is what lets you correlate a user report with platform logs after the fact.