Link Creation
Generate smart links programmatically in your iOS app
Generating a link
Use generateLink to create a smart link with metadata, payload data, and tracking parameters:
Swift
Grovs.generateLink(
title: "Check out this product",
subtitle: "Limited time offer",
imageURL: "https://example.com/image.jpg",
data: ["productId": "12345", "screen": "product_detail"],
tags: ["promotion", "share"],
customRedirects: nil,
showPreviewiOS: true,
showPreviewAndroid: nil,
trackingCampaign: "spring_sale",
trackingSource: "in_app",
trackingMedium: "share_button"
) { url in
guard let url = url else { return }
print("Generated link: \(url)")
}Parameters
| Parameter | Type | Description |
|---|---|---|
title | String? | Link preview title |
subtitle | String? | Link preview subtitle |
imageURL | String? | Link preview image URL |
data | [String: Any]? | Custom payload delivered on deep link open |
tags | [String]? | Tags for filtering and analytics |
customRedirects | CustomRedirects? | Override default redirect behavior |
showPreviewiOS | Bool? | Show link preview on iOS (uses dashboard default if nil) |
showPreviewAndroid | Bool? | Show link preview on Android (uses dashboard default if nil) |
trackingCampaign | String? | UTM campaign parameter |
trackingSource | String? | UTM source parameter |
trackingMedium | String? | UTM medium parameter |
Sharing the link
A common pattern is to present a share sheet after generating a link:
Swift
Grovs.generateLink(
title: "Share this",
data: ["itemId": "abc"]
) { url in
guard let url = url else { return }
let activityVC = UIActivityViewController(activityItems: [url], applicationActivities: nil)
self.present(activityVC, animated: true)
}