# Companion

object Companion

## Functions

| Name | Summary |
|---|---|
| [arrival](/developers/references/android/id-frak-sdk-tracking/interaction/companion/arrival/) | fun [arrival](/developers/references/android/id-frak-sdk-tracking/interaction/companion/arrival/)(referrerWallet: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)?, referrerClientId: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)?, referrerMerchantId: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)?, referralTimestamp: [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)?): [Interaction](/developers/references/android/id-frak-sdk-tracking/interaction/)<br>A referral arrival. Built for you by [id.frak.sdk.AppLinkApi.handleReferral](/developers/references/android/id-frak-sdk/applinkapi/handlereferral/); tracking one yourself for a link the SDK already handled double-counts it, as the `arrival` schema carries no idempotency key. |
| [custom](/developers/references/android/id-frak-sdk-tracking/interaction/companion/custom/) | fun [custom](/developers/references/android/id-frak-sdk-tracking/interaction/companion/custom/)(customType: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)): [Interaction](/developers/references/android/id-frak-sdk-tracking/interaction/)<br>Anything the three built-in shapes do not cover. [customType](/developers/references/android/id-frak-sdk-tracking/interaction/companion/custom/) is free-form; the route's schema is the authority, so an unrecognised value comes back as a 4xx.<br>fun [custom](/developers/references/android/id-frak-sdk-tracking/interaction/companion/custom/)(customType: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), data: [Map](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;): [Interaction](/developers/references/android/id-frak-sdk-tracking/interaction/)<br>[data](/developers/references/android/id-frak-sdk-tracking/interaction/companion/custom/) is sent verbatim as the event's `data` object.<br>fun [custom](/developers/references/android/id-frak-sdk-tracking/interaction/companion/custom/)(customType: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), data: [Map](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html)&lt;[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html), [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)&gt;, idempotencyKey: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)?): [Interaction](/developers/references/android/id-frak-sdk-tracking/interaction/) |
| [sharing](/developers/references/android/id-frak-sdk-tracking/interaction/companion/sharing/) | fun [sharing](/developers/references/android/id-frak-sdk-tracking/interaction/companion/sharing/)(): [Interaction](/developers/references/android/id-frak-sdk-tracking/interaction/)<br>A share, timestamped at enqueue. What the sharing sheet reports when the user shares.<br>fun [sharing](/developers/references/android/id-frak-sdk-tracking/interaction/companion/sharing/)(purchaseId: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)?): [Interaction](/developers/references/android/id-frak-sdk-tracking/interaction/)<br>A share tied to a purchase, timestamped at enqueue.<br>fun [sharing](/developers/references/android/id-frak-sdk-tracking/interaction/companion/sharing/)(sharingTimestamp: [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)?, purchaseId: [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)?): [Interaction](/developers/references/android/id-frak-sdk-tracking/interaction/)<br>A share with an explicit timestamp and/or the purchase it followed. [sharingTimestamp](/developers/references/android/id-frak-sdk-tracking/interaction/companion/sharing/) is Unix SECONDS; null is stamped at enqueue, so a queued event reports when the share happened rather than when it was delivered. |