<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -",
    "visionOS: 1.0.0 - 1.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARSessionDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(pl)ARSessionDelegate"
  },
  "title" : "ARSessionDelegate"
}
-->

# ARSessionDelegate

Methods you can implement to receive captured video frame images and tracking state from an AR session.

```
protocol ARSessionDelegate : ARSessionObserver
```

## Overview

Implement this protocol if you need to work directly with [`ARFrame`](/documentation/ARKit/ARFrame) objects captured by the session or directly follow changes to the session’s set of tracked [`ARAnchor`](/documentation/ARKit/ARAnchor) objects. Typically, you adopt this protocol when building a custom view for displaying AR content—if you display content with SceneKit or SpriteKit, the [`ARSCNViewDelegate`](/documentation/ARKit/ARSCNViewDelegate) and [`ARSKViewDelegate`](/documentation/ARKit/ARSKViewDelegate) protocols provide similar information and integrate with those technologies.

This protocol extends the [`ARSessionObserver`](/documentation/ARKit/ARSessionObserver) protocol, so your session delegate can also implement those methods to respond to changes in session status.

## Topics

### Receiving Camera Frames

[`session(_:didUpdate:)`](/documentation/ARKit/ARSessionDelegate/session(_:didUpdate:)-9v2kw)

Provides a newly captured camera image and accompanying AR information to the delegate.

### Handling Content Updates

[`session(_:didAdd:)`](/documentation/ARKit/ARSessionDelegate/session(_:didAdd:))

Tells the delegate that one or more anchors have been added to the session.

[`session(_:didUpdate:)`](/documentation/ARKit/ARSessionDelegate/session(_:didUpdate:)-3qtt8)

Tells the delegate that the session has adjusted the properties of one or more anchors.

[`session(_:didRemove:)`](/documentation/ARKit/ARSessionDelegate/session(_:didRemove:))

Tells the delegate that one or more anchors have been removed from the session.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)