---
title: "startImpression(_:completionHandler:)"
framework: storekit
role: symbol
role_heading: Type Method
path: "storekit/skadnetwork/startimpression(_:completionhandler:)"
---

# startImpression(_:completionHandler:)

Indicates that your app is presenting a view-through ad to the user.

## Declaration

```swift
class func startImpression(_ impression: SKAdImpression, completionHandler completion: (@Sendable ((any Error)?) -> Void)? = nil)
```

```swift
class func startImpression(_ impression: SKAdImpression) async throws
```

## Parameters

- `impression`: An instance of doc://com.apple.storekit/documentation/StoreKit/SKAdImpression with the properties set for the view-through ad that you’re presenting.
- `completion`: The callback handler you provide to handle any tasks relevant to the start of the ad impression.

## Mentioned in

Generating the signature to validate view-through ads Signing and providing ads SKAdNetwork 2.2 release notes

## Discussion

Discussion Call this method when you start presenting the view-through ad to the user. If you call startImpression(_:completionHandler:) more than once for the same advertised app before calling endImpression(_:completionHandler:), the latest impression overwrites the earlier impression. Call endImpression(_:completionHandler:) when the impression ends and is no longer visible to the user. note: To ensure that SKAdNetwork records the impression, call endImpression(_:completionHandler:) after the impression ends, regardless of whether startImpression(_:completionHandler:) returns an error in the completion handler.

## See Also

### Signing view-through ads

- [Generating the signature to validate view-through ads](storekit/generating-the-signature-to-validate-view-through-ads.md)
- [SKAdImpression](storekit/skadimpression.md)
- [endImpression(_:completionHandler:)](storekit/skadnetwork/endimpression(_:completionhandler:).md)
