## Related terms

- mobile\-sdk
- campaign

See the [glossary](/glossary.md) for definitions.

---

# Campaigns


### SyneriseSource


This enum contains values which describe the source of campaign.

**Declared In:**  
`com.synerise.sdk.injector.callback.SyneriseSource`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-42">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-42-0" data-tab-group="tabgrp-42" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-42-1" data-tab-group="tabgrp-42">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-42-0" data-tab-group="tabgrp-42" data-tab-active="true">

```Java
public enum SyneriseSource
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-42-1" data-tab-group="tabgrp-42">

```Kotlin
public enum SyneriseSource
```

</div>
</div>


**Values:**

| Property | Description |
| --- | --- |
| **SIMPLE_PUSH** | Simple push campaign |
| **IN_APP_MESSAGE** | Overlay in-app message campaign |
| **INLINE_IN_APP_MESSAGE** | Inline in-app message campaign |



---
---

### Campaign


Class model for campaigns.

**Declared In:**  
`com.synerise.sdk.injector.net.model.Campaign`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-43">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-43-0" data-tab-group="tabgrp-43" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-43-1" data-tab-group="tabgrp-43">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-43-0" data-tab-group="tabgrp-43" data-tab-active="true">

```Java
public class Campaign implements Serializable
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-43-1" data-tab-group="tabgrp-43">

```Kotlin
class Campaign : Serializable
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **hashId** | String | no | - | Campaign hash ID |
| **variantId** | int | no | - | Campaign variant's ID |
| **title** | String | no | - | Campaign title |
| **type** | String | no | - | Campaign type |



<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method retrieves a value for the `hashId` parameter.


<pre><code class="language-java">public String getHashId()</code></pre>


---

This method retrieves a value for the `variantId` parameter.


<pre><code class="language-java">public int getVariantId()</code></pre>


---

This method retrieves a value for the `title` parameter.


<pre><code class="language-java">public String getTitle()</code></pre>


---

This method retrieves a value for the `type` parameter.


<pre><code class="language-java">public String getType()</code></pre>


---



---
---

### SimpleNotification


Class model for simple notification.

**Declared In:**  
`com.synerise.sdk.injector.net.model.push.notification.SimpleNotification`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-44">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-44-0" data-tab-group="tabgrp-44" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-44-1" data-tab-group="tabgrp-44">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-44-0" data-tab-group="tabgrp-44" data-tab-active="true">

```Java
public class SimpleNotification implements Serializable
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-44-1" data-tab-group="tabgrp-44">

```Kotlin
class SimpleNotification : Serializable
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **title** | String | no | - | Notification title |
| **body** | String | no | - | Notification body |




<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method checks if the notification has a title.


<pre><code class="language-java">public boolean hasTitle()</code></pre>


---

This method retrieves a value for the `title` parameter (notification title).


<pre><code class="language-java">public String getTitle()</code></pre>


---

This method checks if the notification has a body.


<pre><code class="language-java">public boolean hasBody()</code></pre>


---

This method retrieves a value for the `body` parameter (notification body).


<pre><code class="language-java">public String getBody()</code></pre>


---



---
---

### NotificationInfo


Model with information about a Synerise push notification delivered to `OnNotificationListener`

**Declared In:**  
`com.synerise.sdk.injector.callback.model.NotificationInfo`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-45">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-45-0" data-tab-group="tabgrp-45" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-45-1" data-tab-group="tabgrp-45">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-45-0" data-tab-group="tabgrp-45" data-tab-active="true">

```Java
public class NotificationInfo
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-45-1" data-tab-group="tabgrp-45">

```Kotlin
public class NotificationInfo
```

</div>
</div>


#### Values

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **campaignHashId** | String | no | - | Identifier of the notification campaign. |
| **campaignTitle** | String | no | - | Title of the notification campaign. |
| **payload** | HashMap<String, String> | no | - | Payload of the notification. |

**Initializers:**  

Constructor:


<pre><code class="language-java">public NotificationInfo(String hashId, String title, HashMap&lt;String, String&gt; payload)</code></pre>


**Methods:**  

This method retrieves the value of the `campaignHashId` parameter.


<pre><code class="language-java">public String getCampaignHashId()</code></pre>


---

This method defines the value of the `campaignHashId` parameter.


<pre><code class="language-java">public void setCampaignHashId(String campaignHashId)</code></pre>


---

This method retrieves the value of the `CampaignTitle` parameter.


<pre><code class="language-java">public String getCampaignTitle()</code></pre>


---

This method defines the value of the `CampaignTitle` parameter.


<pre><code class="language-java">public void setCampaignTitle(String campaignTitle)</code></pre>


---

This method retrieves the contents of the `payload` parameter.


<pre><code class="language-java">public HashMap&lt;String, String&gt; getPayload()</code></pre>


---

This method defines the contents of the `payload` parameter.


<pre><code class="language-java">public void setPayload(HashMap&lt;String, String&gt; payload)</code></pre>


---



---
---

### PushRegistrationOrigin


This enum contains values for the `origin` parameter of push registration listener methods.

**Declared In:**  
`com.synerise.sdk.core.types.enums`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-46">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-46-0" data-tab-group="tabgrp-46" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-46-1" data-tab-group="tabgrp-46">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-46-0" data-tab-group="tabgrp-46" data-tab-active="true">

```Java
public enum PushRegistrationOrigin
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-46-1" data-tab-group="tabgrp-46">

```Kotlin
public enum PushRegistrationOrigin
```

</div>
</div>


**Values:**  

| Property | Value | Description |
| --- | --- | --- |
| **APP_STARTED** | "APP_STARTED" | After a `client.applicationStarted` event is sent. |
| **CLIENT_CONTEXT_CHANGE** | "CLIENT_CONTEXT_CHANGE" | After the client context changes. |
| **PERIODIC_JOB** | "PERIODIC_JOB" | After a periodic job of a background task starts. |
| **SECURITY_REASON** | "SECURITY_REASON" | After a security threat |

**Methods:**  
There are no methods.

---



---
---

### SilentCommand


Class model for silent command.

**Declared In:**  
`com.synerise.sdk.injector.SilentCommand`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-47">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-47-0" data-tab-group="tabgrp-47" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-47-1" data-tab-group="tabgrp-47">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-47-0" data-tab-group="tabgrp-47" data-tab-active="true">

```Java
public class SilentCommand implements Validable
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-47-1" data-tab-group="tabgrp-47">

```Kotlin
class SilentCommand : Validable
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **className** | String | no | - | Class name |
| **methodName** | String | no | - | Method name |
| **methodParameterList** | List<[MethodParameter](/developers/mobile-sdk/class-reference/android/campaigns#methodparameter)> | no | - | Method parameters |



<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method retrieves a value of the `className` parameter.


<pre><code class="language-java">public String getClassName()</code></pre>


---

This method retrieves a value of the `methodName` parameter.


<pre><code class="language-java">public String getMethodName()</code></pre>


---

This method retrieves a list of values of the `methodParameters` parameter.


<pre><code class="language-java">public List&lt;MethodParameter&gt; getMethodParameterList()</code></pre>


---



---
---

### MethodParameter


Class model for method parameter.

**Declared In:**  
`com.synerise.sdk.injector.MethodParameter`

**Declaration:**  

<pre><code class="language-java">class MethodParameter implements Validable</code></pre>



<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

In Android SDK 6.16.1, `MethodParameter` is package-private. You can't reference this class directly in your application code, for example when iterating over the list returned by `SilentCommand.getMethodParameterList()`

</div></div></div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **className** | String | no | - | Class name |
| **value** | Object | no | - | Parameter value |
| **position** | int | no | - | Parameter position |



<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method retrieves a value of the `className` parameter.


<pre><code class="language-java">public String getClassName()</code></pre>


---

This method retrieves a value of the `value` parameter.


<pre><code class="language-java">public Object getValue()</code></pre>


---

This method retrieves a value of the `position` parameter.


<pre><code class="language-java">public int getPosition()</code></pre>


---



---
---

### InAppMessageData


Model for in-app messaging communication. 

**Declared In:**  
com.synerise.sdk.injector.inapp.InAppMessageData

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-48">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-48-0" data-tab-group="tabgrp-48" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-48-1" data-tab-group="tabgrp-48">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-48-0" data-tab-group="tabgrp-48" data-tab-active="true">

```Java
public class InAppMessageData
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-48-1" data-tab-group="tabgrp-48">

```Kotlin
class InAppMessageData
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **campaignHash** | String | no | Identifier of the in-app message campaign. |
| **variantId** | String | no | Identifier of the in-app message campaign variant. |
| **additionalParameters** | HashMap<String, Object> | yes | Parameters additionally provided by the campaign. |
| **url** | String | yes | URL value from the action of the activity. |
| **deeplink** | String | yes | Deep link value from the action of the activity. |
| **isTest** | Boolean | no | Specifies if the object is from a test campaign. |


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters. The getter for `isTest` is `getTest()`, not `isTest()`

</div></div></div>


**Initializers:**  

Constructor:


<pre><code class="language-java">public InAppMessageData(String campaignHash, String variantId, HashMap&lt;String, Object&gt; additionalParameters, Boolean isTest)</code></pre>


**Methods:**  

| Method | Return type |
| --- | --- |
| **getCampaignHash()** | String |
| **getVariantId()** | String |
| **getAdditionalParameters()** | HashMap<String, Object> |
| **getUrl()** | String |
| **getDeepLink()** | String |
| **getTest()** | Boolean |
| **getType()** | InAppType |



---
---

### OnInAppListener


Listener for overlay in-app message events. Set it with [`Injector.setOnInAppListener(listener)`](/developers/mobile-sdk/method-reference/android/campaigns#set-in-app-listener).

**Declared In:**  
com.synerise.sdk.injector.inapp.OnInAppListener

**Related To:**  
[InAppMessageData](/developers/mobile-sdk/class-reference/android/campaigns#inappmessagedata)  
[InAppCustomMethodCompletion](/developers/mobile-sdk/class-reference/android/campaigns#inappcustommethodcompletion)  

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-49">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-49-0" data-tab-group="tabgrp-49" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-49-1" data-tab-group="tabgrp-49">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-49-0" data-tab-group="tabgrp-49" data-tab-active="true">

```Java
public abstract class OnInAppListener implements IInAppListener
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-49-1" data-tab-group="tabgrp-49">

```Kotlin
abstract class OnInAppListener : IInAppListener
```

</div>
</div>


**Methods:**

You must implement all methods except `onCustomMethod`.

| Method | Return type | Description |
| --- | --- | --- |
| **shouldShow(InAppMessageData)** | boolean | Called after an in-app message is loaded, when the SDK asks for permission to show it |
| **onShown(InAppMessageData)** | void | Called after an in-app message appears |
| **onDismissed(InAppMessageData)** | void | Called after an in-app message disappears |
| **onContextFromAppRequired(InAppMessageData)** | HashMap&lt;String, Object&gt; | Called on a background thread when the SDK needs per-message context for rendering |
| **onHandledOpenUrl(InAppMessageData)** | void | Called when `SRInApp.openUrl(url)` is used in an in-app message |
| **onHandledOpenDeepLink(InAppMessageData)** | void | Called when `SRInApp.openDeeplink(url)` is used in an in-app message |
| **onCustomAction(String, HashMap&lt;String, Object&gt;, InAppMessageData)** | void | Called when `SRInApp.handleCustomAction(name, params)` is used in an in-app message |
| **onCustomMethod(String, HashMap&lt;String, Object&gt;, InAppMessageData, InAppCustomMethodCompletion)** | void | Called when `SRInApp.customMethod(name, params)` is used in an in-app message. Resolve `completion` exactly once. If you don't override this method, the default implementation fails the completion with `onCustomMethod not implemented` |



---
---

### InlineInAppMessageData


Model for inline in-app message data.

**Declared In:**  
com.synerise.sdk.injector.inapp.inline.InlineInAppMessageData

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-50">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-50-0" data-tab-group="tabgrp-50" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-50-1" data-tab-group="tabgrp-50">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-50-0" data-tab-group="tabgrp-50" data-tab-active="true">

```Java
public class InlineInAppMessageData
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-50-1" data-tab-group="tabgrp-50">

```Kotlin
class InlineInAppMessageData
```

</div>
</div>


**Properties:**

| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **campaignHash** | String | no | Identifier of the inline in-app message campaign |
| **variantId** | String | no | Identifier of the inline in-app message campaign variant |
| **placementKey** | String | no | Placement key configured in the campaign |
| **additionalParameters** | Map&lt;String, Object&gt; | yes | Additional parameters provided by the campaign. Returns an unmodifiable map |
| **isTest** | boolean | no | Specifies whether the object is from a test campaign |


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Methods:**  
There are only getters for the above properties.



---
---

### InlineInAppSize


Model representing the size of an inline in-app message, reported through the `onSizeChanged` callback when the content calls `SRInApp.setComponentSize(width, height)`.

**Declared In:**  
com.synerise.sdk.injector.inapp.inline.InlineInAppSize

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-51">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-51-0" data-tab-group="tabgrp-51" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-51-1" data-tab-group="tabgrp-51">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-51-0" data-tab-group="tabgrp-51" data-tab-active="true">

```Java
public class InlineInAppSize
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-51-1" data-tab-group="tabgrp-51">

```Kotlin
class InlineInAppSize
```

</div>
</div>


**Properties:**

| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **widthDp** | float | no | Width in density-independent pixels (dp) |
| **heightDp** | float | no | Height in density-independent pixels (dp) |
| **widthPx** | int | no | Width in physical pixels |
| **heightPx** | int | no | Height in physical pixels |
| **widthScreenRatio** | float | no | Width as a fraction of the device screen width (0 to 1) |
| **heightScreenRatio** | float | no | Height as a fraction of the device screen height (0 to 1) |


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>




---
---

### InlineInAppView


View that hosts an inline in-app message. Create it with [`Injector.createInlineInAppView(placementKey)`](/developers/mobile-sdk/method-reference/android/campaigns#create-inline-in-app-view) or declare it in XML with the `placementKey` attribute.

**Declared In:**  
com.synerise.sdk.injector.inapp.ui.inline.InlineInAppView

**Related To:**  
[InlineInAppMessageData](/developers/mobile-sdk/class-reference/android/campaigns#inlineinappmessagedata)  
[InlineInAppSize](/developers/mobile-sdk/class-reference/android/campaigns#inlineinappsize)  
[OnInlineInAppViewListener](/developers/mobile-sdk/class-reference/android/campaigns#oninlineinappviewlistener)  

**Inherits From:**  
FrameLayout

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-52">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-52-0" data-tab-group="tabgrp-52" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-52-1" data-tab-group="tabgrp-52">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-52-0" data-tab-group="tabgrp-52" data-tab-active="true">

```Java
public class InlineInAppView extends FrameLayout
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-52-1" data-tab-group="tabgrp-52">

```Kotlin
class InlineInAppView : FrameLayout
```

</div>
</div>


**Methods:**

| Method | Return type | Description |
| --- | --- | --- |
| **getIdentifier()** | String | Returns the application-defined identifier of the view |
| **setIdentifier(String)** | void | Sets a free-form identifier on the view |
| **getPlacementKey()** | String | Returns the placement key assigned to the view |
| **setPlacementKey(String)** | void | Sets the placement key |
| **isRendered()** | boolean | Returns whether an inline in-app message campaign is currently rendered |
| **getData()** | [InlineInAppMessageData](/developers/mobile-sdk/class-reference/android/campaigns#inlineinappmessagedata) | Returns the data of the currently rendered campaign, or null |
| **render()** | void | Triggers on-demand rendering |
| **release()** | void | Destroys the WebView and unregisters the view from the SDK |
| **setOnInlineInAppViewListener(OnInlineInAppViewListener)** | void | Sets the per-view lifecycle listener |



---
---

### OnInlineInAppListener


Listener for global inline in-app message events. Set it with [`Injector.setOnInlineInAppListener(listener)`](/developers/mobile-sdk/method-reference/android/campaigns#set-inline-in-app-listener).

**Declared In:**  
com.synerise.sdk.injector.inapp.inline.OnInlineInAppListener

**Related To:**  
[InlineInAppMessageData](/developers/mobile-sdk/class-reference/android/campaigns#inlineinappmessagedata)  
[InAppCustomMethodCompletion](/developers/mobile-sdk/class-reference/android/campaigns#inappcustommethodcompletion)  

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-53">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-53-0" data-tab-group="tabgrp-53" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-53-1" data-tab-group="tabgrp-53">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-53-0" data-tab-group="tabgrp-53" data-tab-active="true">

```Java
public interface OnInlineInAppListener
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-53-1" data-tab-group="tabgrp-53">

```Kotlin
interface OnInlineInAppListener
```

</div>
</div>


**Methods:**

| Method | Return type | Description |
| --- | --- | --- |
| **onInlineInAppAvailable(InlineInAppView, InlineInAppMessageData)** | void | Called when the SDK creates a ready-to-display view after an event-based trigger for a placement with no attached view |
| **onContextFromAppRequired(InlineInAppMessageData)** | Map&lt;String, Object&gt; | Called on a background thread when the SDK needs per-message context for rendering |
| **onOpenedUrl(InlineInAppMessageData, String)** | void | Called when `SRInApp.openUrl(url)` is used in an inline in-app message |
| **onOpenedDeepLink(InlineInAppMessageData, String)** | void | Called when `SRInApp.openDeeplink(url)` is used in an inline in-app message |
| **onCustomAction(InlineInAppMessageData, String, Map&lt;String, Object&gt;)** | void | Called when `SRInApp.handleCustomAction(name, params)` is used in an inline in-app message |
| **onCustomMethod(String, HashMap&lt;String, Object&gt;, InlineInAppMessageData, InAppCustomMethodCompletion)** | void | Called when `SRInApp.customMethod(name, params)` is used in an inline in-app message. Resolve `completion` exactly once |



---
---

### OnInlineInAppViewListener


Per-view listener for the lifecycle of an inline in-app message. Set it with [`InlineInAppView.setOnInlineInAppViewListener(listener)`](/developers/mobile-sdk/class-reference/android/campaigns#inlineinappview).

**Declared In:**  
com.synerise.sdk.injector.inapp.inline.OnInlineInAppViewListener

**Related To:**  
[InlineInAppMessageData](/developers/mobile-sdk/class-reference/android/campaigns#inlineinappmessagedata)  
[InlineInAppSize](/developers/mobile-sdk/class-reference/android/campaigns#inlineinappsize)  

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-54">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-54-0" data-tab-group="tabgrp-54" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-54-1" data-tab-group="tabgrp-54">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-54-0" data-tab-group="tabgrp-54" data-tab-active="true">

```Java
public interface OnInlineInAppViewListener
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-54-1" data-tab-group="tabgrp-54">

```Kotlin
interface OnInlineInAppViewListener
```

</div>
</div>


**Methods:**

| Method | Return type | Description |
| --- | --- | --- |
| **onProcessingStarted()** | void | Called when the SDK starts processing a campaign for this view |
| **onLoaded(InlineInAppMessageData)** | void | Called when the inline in-app message content is loaded for the first time |
| **onUpdated(InlineInAppMessageData)** | void | Called when the inline in-app message content is updated with a new campaign |
| **onFailed(InlineInAppMessageData, String)** | void | Called when the inline in-app message content fails to load or render |
| **onSizeChanged(InlineInAppMessageData, InlineInAppSize)** | void | Called when the content requests a size change |
| **onRemove(InlineInAppMessageData)** | void | Called when the content requests removal from the view hierarchy |



---
---

### InAppCustomMethodCompletion


Completion handler for custom methods invoked from in-app message content. Resolve it exactly once with `success` or `failure`; the first resolution wins and subsequent calls are ignored.

**Declared In:**  
com.synerise.sdk.injector.inapp.InAppCustomMethodCompletion

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-55">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-55-0" data-tab-group="tabgrp-55" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-55-1" data-tab-group="tabgrp-55">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-55-0" data-tab-group="tabgrp-55" data-tab-active="true">

```Java
public interface InAppCustomMethodCompletion
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-55-1" data-tab-group="tabgrp-55">

```Kotlin
interface InAppCustomMethodCompletion
```

</div>
</div>


**Methods:**

| Method | Return type | Description |
| --- | --- | --- |
| **success(Object)** | void | Reports successful completion. The result must be JSON-serializable |
| **failure(String)** | void | Reports a failure with an error message |



---
---

### SyneriseMethod

Enum with a list of SDK methods that can be called from JavaScript in an in-app.

See [Using in-app template builder](/docs/campaign/in-app-messages/creating-inapp-templates/creating-inapp-template#use-a-mobile-sdk-method)

---
---

## Removed symbols
---

### <del>SynerisePushResponse</del> {#synerisepushresponse}

| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:red">Removed in:</span> | n/a | 6.0.0 | n/a | n/a |



Class model for SynerisePushResponse.

**Declared In:**  
`com.synerise.sdk.injector.net.model.push.notification.SynerisePushResponse`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-56">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-56-0" data-tab-group="tabgrp-56" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-56-1" data-tab-group="tabgrp-56">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-56-0" data-tab-group="tabgrp-56" data-tab-active="true">

```Java
public class SynerisePushResponse
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-56-1" data-tab-group="tabgrp-56">

```Kotlin
class SynerisePushResponse
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **contentAvailable** | Boolean | no | - | Informs if content is available |
| **data** | SynerisePush | no | - | Synerise push data |
| **notification** | [SimpleNotification](/developers/mobile-sdk/class-reference/android/campaigns#simplenotification) | no | - | Synerise simple notification |



<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method checks if content is available.


<pre><code class="language-java">public boolean isContentAvailable()</code></pre>


---

This method retrieves a value for the `data` parameter.


<pre><code class="language-java">public SyneriseData getData()</code></pre>


---

This method retrieves a value for the `notification` parameter.


<pre><code class="language-java">public SimpleNotification getNotification()</code></pre>


---

This method checks if the push is a simple push.


<pre><code class="language-java">public boolean isSimplePush()</code></pre>


---



---
---

### <del>TemplateBanner</del> {#templatebanner}

| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:red">Removed in:</span> | n/a | 6.0.0 | n/a | n/a |



Class model for banners.

**Declared In:**  
`com.synerise.sdk.injector.net.model.push.banner.TemplateBanner`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-57">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-57-0" data-tab-group="tabgrp-57" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-57-1" data-tab-group="tabgrp-57">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-57-0" data-tab-group="tabgrp-57" data-tab-active="true">

```Java
public class TemplateBanner extends BasePageMapper implements Parcelable, Validable
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-57-1" data-tab-group="tabgrp-57">

```Kotlin
class TemplateBanner : BasePageMapper(), Parcelable, Validable
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **campaign** | [Campaign](/developers/mobile-sdk/class-reference/android/campaigns#campaign) | no | - | Campaign class |
| **trigger** | String | yes | - | Banner trigger |
| **notification** | [SimpleNotification](/developers/mobile-sdk/class-reference/android/campaigns#simplenotification) | no | - | Notification class |
| **autoDisappear** | [AutoDisappear](/developers/mobile-sdk/class-reference/android/campaigns#autodisappear) | no | - | Auto disappear |
| **page** | NetGenericPageData | yes | - | Page data |



<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method retrieves the value of the `campaign` parameter.


<pre><code class="language-java">public Campaign getCampaign()</code></pre>


---

This method retrieves the value of the `value` object.


<pre><code class="language-java">public Object getValue()</code></pre>


---

This method checks if a banner has a trigger.


<pre><code class="language-java">public boolean hasTrigger()</code></pre>


---

This method retrieves the `trigger` parameter from a banner.


<pre><code class="language-java">public String getTrigger()</code></pre>


---

This method retrieves the value of the `notification` parameter.


<pre><code class="language-java">public SimpleNotification getNotification()</code></pre>


---

This method retrieves the value of the `page` parameter.


<pre><code class="language-java">public PageItem getPage()</code></pre>


---

This method retrieves the value of the `autodisappear` parameter.


<pre><code class="language-java">public AutoDisappear getAutoDisappear()</code></pre>


---



---
---

### <del>AutoDisappear</del> {#autodisappear}

| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:red">Removed in:</span> | n/a | 6.0.0 | n/a | n/a |



Class model for AutoDisappear.

**Declared In:**  
`com.synerise.sdk.injector.net.model.push.model.banner.AutoDisappear`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-58">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-58-0" data-tab-group="tabgrp-58" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-58-1" data-tab-group="tabgrp-58">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-58-0" data-tab-group="tabgrp-58" data-tab-active="true">

```Java
public class AutoDisappear implements Serializable
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-58-1" data-tab-group="tabgrp-58">

```Kotlin
class AutoDisappear : Serializable
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **isEnabled** | Boolean | no | - | Informs if auto disappear is enabled |
| **timeout** | int | no | - | Disappear timeout |




<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method checks if auto disappear is enabled.


<pre><code class="language-java">public boolean isEnabled()</code></pre>


---

This method retrieves the value of the `timeout` parameter.


<pre><code class="language-java">public int getTimeout()</code></pre>


---

