Contents

ChangeDetails

Field-level change record for a single API entity within a transaction.

Declaration

object ChangeDetails

Properties

NameTypeDescription
transactionIdstring

The unique identifier for the transaction that produced this change record.

detailIdstring

A unique identifier for this specific entity change within the transaction.

eventTypeAuditEventType

The type of change operation performed. See AuditEventType.

entityTypestring

The API entity type that changed, matching the name of the API entity in the Apple Ads Platform API (for example, Campaign, AdGroup, Keyword). Not a closed enum. See Change History Endpoints for the entity types this endpoint reports on.

entityIdstring

The platform ID of the entity that changed (for example, a campaign ID or ad group ID).

eventTimedate-time

The UTC timestamp of when the change occurred, in ISO 8601 format.

userTypeAuditUserType

The category of actor that performed the change. See AuditUserType for possible values. Read-only.

modifiedBystring

The identifier of the user or service that performed the change. We don’t expose user email, only modifiedBy. Read-only.

entityMetaDataChangeDetails.EntityMetaData

A key-value map of entity metadata captured at the time of the change (for example, entity name, parent IDs). See ChangeDetails.EntityMetaData. Keys and values are strings and vary by entity type. Read-only.

details[ActivityDetail]

An array of ActivityDetail objects. Each entry contains a changes array of field change objects, where every entry captures one field that changed in the transaction. Read-only.

Overview

Each ChangeDetails record represents one entity’s complete change history for a single transaction. The details array contains ActivityDetail objects, each of which holds a changes array of field change objects capturing the field name, oldValues, and newValues.

Example

{
  "transactionId": "998877665",
  "detailId": "AdGroup.555666777.998877665",
  "eventType": "UPDATE",
  "entityType": "AdGroup",
  "entityId": "555666777",
  "eventTime": "2025-03-15T14:30:00.000Z",
  "userType": "CUSTOMER",
  "modifiedBy": "111222333",
  "entityMetaData": {
    "name": "AwayFinder iOS - New Users 18-34",
    "campaignId": "444555666"
  },
  "details": [
    {
      "transactionId": "998877665",
      "changes": [
        {
          "field": "status",
          "oldValues": [
            "ENABLED"
          ],
          "newValues": [
            "PAUSED"
          ]
        }
      ]
    }
  ]
}

Discussion

Relationship to AuditSummary

The ChangeDetails object is the field-level expansion of an AuditSummary row. The count field on a summary row tells you how many field change entries to expect across all ActivityDetail objects in details.

`entityMetaData` vs `metas`

The ChangeDetails always populates entityMetaData (when metadata is available) regardless of the request’s options.metadata setting. It represents a point-in-time snapshot of key entity attributes captured at change time. This differs from the metas field on AuditSummary, which the request’s options.metadata query option controls.

Understand `oldValues` and `newValues`

Both fields are string arrays. For scalar fields, each array contains a single element. For array-valued fields, each array represents the full set of values before and after the change. Interpretation by event type:

eventType

oldValues

newValues

CREATE

Empty []

Values at creation

UPDATE

Previous value(s)

Updated value(s)

DELETE

Last known value(s)

Typically empty [], but may contain system-managed values (for example, deletion flag, status, transaction ID) set at delete time

Topics

Dictionaries

See Also