Edgio

Log File Delivery

Log files provide granular data for various types of events. Once log data is collected and aggregated into log files, they are then delivered to your Amazon S3 bucket.
Ad log data is delivered separately from the log events discussed in this article. Learn more.
Alternatively, use reports on encoding, storage, and playback to understand how your bill was calculated and to gain insight into how your content was consumed.
Key information
  • If log data cannot be delivered (e.g., invalid credentials), we will send you an email notification and attempt to upload them again at a later time. Please disable log pushing or fix the access credentials as soon as possible.
    Email notifications are not sent more than once per 24 hour period.
  • Undelivered log files may be deleted after 14 days. Once a log file is erased, the data is lost and the associated events cannot be recovered.
  • Upon successfully delivering a log file, it will be erased from our system and cannot be regenerated.
  • Log data may contain sensitive information about your viewers (e.g., a viewer’s IP address). Although it is possible to obtain this information via an in-house media platform, you should protect the privacy of your users by treating all log data as confidential information.
  • Configure your S3 bucket to be private. You may not configure log delivery to a public S3 bucket.
  • Playback session IDs are generated by our system when a user begins playing encrypted content. Each session persists until the user closes their web browser / device playback environment or until the session is inactive for a long time period. This means that a single session may represent the playback of multiple assets and/or channels.

Enabling Log Delivery

Log data is pushed from our system to your Amazon S3 bucket. This requires that you provide the following information from the Log Pushing page (login required).
From the main menu, navigate to Settings > Log Pushing.
OptionDescription
AWS Access KeySpecify an Amazon access key ID for a dedicated user account that only has write permissions to the desired AWS S3 bucket.
AWS Secret Access KeySpecify an Amazon secret access key for a dedicated user account that only has write permissions to the desired AWS S3 bucket.
S3 Bucket NameSpecify the name of the private S3 bucket to which logs will be delivered.
Key PrefixSpecify the virtual log file storage location and/or a prefix that will be added to each object delivered to your bucket.
Key information
  • Log delivery requires an Amazon S3 bucket. You may either use an existing private S3 bucket or create a new one via the AWS Management Console.
    Learn more about Getting Started with Amazon Simple Storage Service.
  • Do not send us credentials for an administrator account. Instead, you should create a dedicated user account that only has write permissions to the S3 bucket.
    Use the AWS Management Console to create user credentials and to verify that the user is authorized to create and upload objects.
    Learn more about AWS Identity and Access Management.
  • Log delivery is only allowed to a private S3 bucket.
    Use of a public S3 bucket may be cause for account termination.
  • Once enabled, logs will be delivered immediately and will continue to be delivered until it is disabled. Expect many small log files per day, since they are continuously generated.
    Logs are not delivered in sequential order. Rather, they are delivered as soon as they are processed.

Log Files

Log files are gzip-compressed plain text files with unique file names.

File Naming Convention

The naming convention for log files includes a prefix that categorizes objects by hour and then by event type.
Although the file extension is csv, fields are tab-separated.
Syntax
version=###/ exec_dt=YYYYMMDDhh/event_type=Event Type/part-Count-UUID.c000.csv.gz
The above date is only loosely tied to the data contained within a log file. Do not assume that all of the events contained within a log file occurred on that date.
Example
version=001/exec_dt=2023010810/event_type=slice_played/part-00000-3608d733-e96c-4575-8784-41154246e830.c000.csv.gz
In this example, a file called part-00000-3608d733-e96c-4575-8784-41154246e830.c000.csv.gz will be stored in the following virtual directory: version=001/exec_dt=2023010810/event_type=slice_played.

Log Data

Key information
  • Events are reported below the format version and commented lines. Each line represents a single event.
  • Each line is composed of tab-separated values.
  • Empty values are represented by -.
  • The first 3 fields in every line are:
    NameDescription
    DateIdentifies the date (UTC) on which the event occurred.
    Syntax: YYYY-MM-DD
    TimeIdentifies the approximate time (UTC) at which the event occurred.
    An approximate time is reported due to latency in log collection and processing.

    Syntax: hh:mm:ss
    Event nameIdentifies the type of event. Learn more.
  • Log entries are not guaranteed to be listed in sequential order. However, they are typically aggregated within a few minutes of each other.
  • The set of fields that will be reported after the initial 3 fields varies by event type. Learn more.

Sample Log File

12020-03-10 16:48:11 slice_played 24089701c7894902aebc3f1bd209ae2e 103 - - Roku/DVP-9.20 (519.20E04806A) - - 2b9fa9bd64804331b8da74c054b3cd67 - - - 0.8343682004336305 Spirit Games - - -
2
32020-03-10 16:52:58 slice_played 080ca7672c1043599818cd823cb7e144 252 - - Roku/DVP-9.20 (289.20E04804A) - - 60614f69a767462aabe6152611d73aa1 - - - 0.636021907119814 My Fiancé - - -

Log Events

This section details log events and their fields.
Certain events support custom log fields. Each event type indicates the set of objects from which custom log fields may be added.

ad_beacon_sent

Indicates that an event beacon was sent to an ad server.
FieldDescription
group IDIndicates an ID that identifies multiple URLs that correspond to a single event. For example, multiple impressions may be sent to various ad servers (e.g., Google Ad Manager, FreeWheel) for a single ad.
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).
ad asset IDIndicates the asset ID corresponding to the ad that was played.
Value for non-ads (e.g., slot impression): -
event descriptionIndicates the type of event. Valid values are:
videoview | slotimpression | defaultimpression | start | firstquartile | midpoint | thirdquartile | complete
ad break positionIndicates the zero-based position of the ad break.
Syntax: [pre | mid | post].{Position}
Example: The following sample value identifies the second mid-roll ad: mid.1
ad index in break/podIndicates the zero-based index for the ad in the ad break / ad pod. For example, 1 indicates the second position in the ad break.
Return value for events without ad breaks: -1
ad IDIndicates the ad ID provided by the ad server. FreeWheel defines this ID via ads/ad@adId.
Default value (no ad ID): -
creative ID (FreeWheel only)Indicates the creative ID returned by FreeWheel via ad/creatives/creative@creativeId.
Default value (no creative ID): -
urlIndicates the event’s URL.
HTTP StatusIndicates the HTTP status code for the response from the ad server.

ad_request_error

Indicates that an error occurred when making an HTTP request to the ad server.
FieldDescription
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).
asset IDIndicates the asset ID corresponding to the asset that was played.
ad break positionIndicates the zero-based position of the ad break.
Syntax: [pre | mid | post] {Position}
Example: The following sample value identifies the second mid-roll ad: mid.1
ad request dataReturns either of the following:
  • Freewheel: Indicates the smartXML payload sent to FreeWheel during the request.
  • Other Third-Party Ad Servers: Indicates the VAST or VMAP request URL.
error descriptionIndicates the description or error event generated by the exception.
slicer build typeProvides the type and operating system for the Slicer that processed the requested content.
Example: slicer_linux_64
channel IDIndicates a channel ID when an ad was requested during the playback of a live channel.
Default value: -
event IDIndicates an event ID when an ad was requested during the playback of a live event.
Default value: -

asset_deleted

Indicates that an asset was deleted.
FieldDescription
asset IDIndicates the asset ID corresponding to the asset that was deleted.
causeIndicates the reason why the asset was deleted. For example, an asset may be manually deleted, automatically deleted due to an auto-expiration policy, or automatically deleted because an error occurred during the slicing job.

asset_play_started

Indicates that a viewer initiated the playback of live or VOD content.
FieldDescription
asset IDIndicates the asset ID corresponding to the asset that was played.
user IPIndicates the IP address of the playback device.
player user agentIndicates the player’s user agent as reported by the User-Agent request header.
player referrer URLIndicates the referrer as reported by the Referer request header.
channel IDIndicates a channel ID if a live channel was played.
Default value: -
asset is adIndicates whether the asset was an ad. Valid values are:
  • 0: Normal content
  • 1: Ad
euidIndicates the external user ID provided in the playback URL.
Default value: -
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).
playing owner IDIdentifies the owner of shared content by user ID.
Return value for your content: -
If your user ID is returned by this field, then your content was played from another account (e.g., an ad or a shared library).
event IDIndicates an event ID if a live event was played.
Default value: -
beam_descriptionEnhanced Logs Only
Indicates the description for an asset, live channel, or live event.
beam_external_idEnhanced Logs Only
Indicates the external ID assigned to an asset, live channel, or live event.
time_created_as_epochEnhanced Logs Only
Indicates the timestamp, in Unix time (milliseconds), that an asset, live channel, or live event was created.
beam_durationEnhanced Logs Only
Indicates the duration for an asset, live channel, or live event.
Fields marked as Enhanced Logs Only will only be included when you have enabled enhanced logs. If you previously enabled custom log fields for the legacy version of log file delivery, then enhanced logs will be automatically enabled. Otherwise, please contact our technical support.

channel_deleted

Indicates that the live channel was deleted.
FieldDescription
channel IDIdentifies the live channel that was deleted by its channel ID.
causeIdentifies the user that deleted the channel by their user ID.

channel_ping

Indicates that the viewer continued to watch the live channel. This event, which is triggered every 10 minutes during the playback of a live channel, allows us to estimate simultaneous viewers during live playback.
Time is divided into ten-minute intervals that are known as buckets. During live playback, a single channel_ping event is triggered once per bucket. Each bucket is assigned a unique number starting from 0. Bucket 0 refers to the Unix epoch (00:00:00 on January 1, 1970 UTC), bucket 1 starts 10 minutes after that, and so on.
FieldDescription
channel IDIdentifies a live channel by its channel ID.
asset IDIndicates the asset ID corresponding to the asset that was played.
bucket numberIdentifies the number assigned to the bucket during which playback occurred.
user IPIndicates the IP address of the playback device.
player user agentIndicates the player’s user agent as reported by the User-Agent request header.
player referrer URLIndicates the referrer as reported by the Referer request header.
euidIndicates the external user ID provided in the playback URL.
Default value: -
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).

channel_play_started

Indicates that a viewer initiated the playback of a live channel.
FieldDescription
user IPIndicates the IP address of the playback device.
player user agentIndicates the player’s user agent as reported by the User-Agent request header.
player referrer URLIndicates the referrer as reported by the Referer request header.
euidIndicates the external user ID provided in the playback URL.
Default value: -
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).

drm_error

Indicates that a DRM-related error occurred. For example, a request from a player that uses a deprecated Content Decryption Module (CDM) will generate this type of error.
FieldDescription
beam IDIndicates the asset ID corresponding to the asset, live channel, or live event that triggered the DRM error.
drm_typeIdentifies the DRM solution. Valid values are: fairplay | widevine | playready
event_error_messageIndicates the DRM error message.
An error log event is generated for errors that are unrelated to DRM.

drm_key_read

Indicates that a DRM key was read. This event occurs when a player requests a DRM license.
FieldDescription
timestampIndicates the timestamp, in Unix time (milliseconds), that the DRM key was read.
beam IDIndicates the asset ID corresponding to the asset, live channel, or live event that triggered the DRM license request.
playing owner IDIdentifies the owner of shared content by user ID.
Return value for your content: -
If your user ID is returned by this field, then your content was played from another account (e.g., an ad or a shared library).
user IPIndicates the IP address of the playback device.
player user agentIndicates the player’s user agent as reported by the User-Agent request header.
slicer build typeProvides the type and operating system for the Slicer that processed the requested content.
Example: slicer_linux_64
beam descriptionIndicates the description for an asset, live channel, or live event.

error

Indicates that an input error occurred. For example, the player may have requested an invalid playback URL.
FieldDescription
formatTypeThis field is reserved for future use. It currently returns 0.
subTypeThis field is reserved for future use. It currently returns web.
URLIndicates the playback URL that caused the error.
user IPIndicates the IP address of the playback device.
HTTP codeIndicates the status code (e.g., 404) for the response to the playback URL.
user agentIndicates the player’s user agent as reported by the User-Agent request header.
messageProvides a short description of why the error occurred.

event_copied

Indicates that a live event was copied.
FieldDescription
event IDIdentifies a live event by its event ID.
causeIndicates the user ID for the user that copied the live event.

event_ping

Indicates that the viewer continued to watch the live event. This event, which is triggered every 10 minutes during the playback of a live event, allows us to estimate simultaneous viewers during live playback.
Time is divided into 10 minute intervals that are known as buckets. During live playback, a single event_ping event is triggered once per bucket. Each bucket is assigned a unique number starting from 0. Bucket 0 refers to the Unix epoch (00:00:00 on January 1, 1970 UTC), bucket 1 starts 10 minutes after that, and so on.
FieldDescription
event IDIdentifies a live event by its event ID.
asset IDIndicates the asset ID corresponding to the asset that was played.
bucket numberIdentifies the number assigned to the bucket during which playback occurred.
user IPIndicates the IP address of the playback device.
player user agentIndicates the player’s user agent as reported by the User-Agent request header.
player referrer URLIndicates the referrer as reported by the Referer request header.
euidIndicates the external user ID provided in the playback URL.
Default value: -
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).

event_play_started

Indicates that a user started watching a live event.
FieldDescription
event IDIdentifies a live event by its event ID.
user IPIndicates the IP address of the playback device.
player user agentIndicates the player’s user agent as reported by the User-Agent request header.
player referrer URLIndicates the referrer as reported by the Referer request header.
euidIndicates the external user ID provided in the playback URL.
Default value: -
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).

session_created

Indicates that a new playback session was created.
FieldDescription
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).
content IDIndicates a channel ID, asset ID, or event ID for the playback session.
content typeIndicates the type of content that was played, Valid values are: asset | channel | event
playing owner IDIdentifies the owner of shared content by user ID.
Return value for your content: -
If your user ID is returned by this field, then your content was played from another account (e.g., an ad or a shared library).
user agentIndicates the player’s user agent as reported by the User-Agent request header.
euidIndicates the external user ID provided in the playback URL.
Default value: -
refererIndicates the referrer as reported by the Referer request header.
user IPIndicates the IP address of the playback device.

slice_played

Indicates that a single temporal slice of media was delivered. Each slice represents approximately 4 seconds of media. The timestamp corresponds to time at which the slice was delivered to the player.
FieldDescription
asset IDIndicates the asset ID corresponding to the asset that was played.
slice numberIdentifies a slice using a zero-based number.
is liveIndicates whether the slice corresponds to a live channel or a live event. Valid values are:
  • 0: VOD
  • 1: Live channel or live event
user IPIndicates the IP address of the playback device.
player user agentIndicates the player’s user agent as reported by the User-Agent request header.
player referrer URLIndicates the referrer as reported by the Referer request header.
euidIndicates the external user ID provided in the playback URL.
Default value: -
session IDIndicates a unique playback session ID.
Learn more about this playback session (session_created).
playing owner IDIdentifies the owner of shared content by user ID.
Return value for your content: -
If your user ID is returned by this field, then your content was played from another account (e.g., an ad or a shared library).
channel IDIndicates a channel ID when the slice was played in the context of a live channel.
Default value: -
event IDIndicates an event ID when the slice was played in the context of a live event.
Default value:-
duration of content deliveredIndicates either the duration of the video segment that was delivered or the byte range corresponding to the duration of the requested content.
beam_descriptionEnhanced Logs Only
Indicates the description for an asset, live channel, or live event.
beam_external_idEnhanced Logs Only
Indicates the external ID assigned to an asset, live channel, or live event.
time_created_as_epochEnhanced Logs Only
Indicates the timestamp, in Unix time (milliseconds), that an asset, live channel, or live event was created.
beam_durationEnhanced Logs Only
Indicates the duration for an asset, live channel, or live event.
ray_letterIdentifies the quality of the ray corresponding to the current slice by its letter.
Fields marked as Enhanced Logs Only will only be included when you have enabled enhanced logs. If you previously enabled custom log fields for the legacy version of log file delivery, then enhanced logs will be automatically enabled. Otherwise, please contact technical support.

slicing_began

Indicates that an asset was created due to the start of either a live or VOD slicing job.
FieldDescription
job typeValid values are: live | vod
asset IDIndicates the asset ID corresponding to the new asset.
external IDIndicates the external ID corresponding to the new asset.
Default value: -
channel IDIndicates a channel ID if a live channel was played.
Default value: -
descriptionIndicates the description assigned to the new asset.
Default value: -
slicer build typeProvides the type and operating system for the Slicer that processed the requested content.
Example: slicer_linux_64
slicer versionIndicates the slicer’s version number.
event IDIndicates an event ID if a live event was played.
Default value: -

slicing_ended

Indicates that the slicing job finished.
FieldDescription
asset IDIndicates the asset ID corresponding to the last asset in the slicing job.
had errorsIndicates whether an error occurred. Valid values are:
  • 0: No errors occurred.
  • 1: An error occurred.
slicesIndicates the number of slices that were delivered for encoding.

Format History

Log file format is tracked via version numbers defined within the prefix assigned to your log file. This version number is incremented whenever we add a new event type or field. Upon incrementing the log file version, we will deliver both versions for a limited time period. Take advantage of this window to update your code to process log data from the new virtual directory and to account for the new event type(s) and/or field(s).
Your code should either raise a proper error or ignore unknown event types and fields.
Format history is provided below.
VersionDescription
001Initial release