Aller au contenu principal

Ajouter un placement

Pour les partenaires de Rokt, le SDK Android peut être utilisé pour afficher des placements en superposition ou intégrés dans votre application Android.

Avant de commencer

Assurez-vous que le SDK Android de Rokt a déjà été intégré dans votre application.

Placements en superposition

Exécutez le SDK dans l'activité/fragment souhaité, en ajoutant les attributs client appropriés et le mapping de placement. Le code d'exemple utilise la méthode onCreate pour lancer le placement.

La vue du widget Rokt s'affiche après un court délai, configurable via la plateforme Rokt. Le SDK fournit des événements de rappel optionnels pour lorsque la vue se charge et se décharge.

Vous pouvez dicter quels attributs client sont inclus dans votre intégration Rokt. Plus d'informations sur les champs de données disponibles peuvent être trouvées sur la page attributs. Si vous souhaitez intégrer plus d'attributs, vous pouvez ajouter des lignes de code supplémentaires pour chaque nouvel attribut aux exemples ci-dessous.

import com.rokt.roktsdk.Rokt;

class ConfirmationActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...

Map<String,String> attributes = new HashMap<String, String>();

attributes.put("email", "j.smith@example.com");
attributes.put("firstname", "Jenny");
attributes.put("lastname", "Smith");
attributes.put("mobile", "(323) 867-5309");
attributes.put("postcode", "90210");
attributes.put("country", "US");

Rokt.INSTANCE.execute("RoktExperience",
attributes,
new Rokt.RoktCallback() {
@Override
public void onLoad() {
}
@Override
public void onUnload(Rokt.UnloadReasons unloadReasons) {
}
@Override
public void onShouldHideLoadingIndicator() {
}
@Override
public void onShouldShowLoadingIndicator() {
}
}
)
...
}
}

Fonctions optionnelles

FonctionObjectif
Rokt.close()Utilisé pour fermer automatiquement les placements en superposition.

Placements intégrés

Mise à jour de votre fichier XML de mise en page

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<com.rokt.roktsdk.Widget
android:id="@+id/roktWidget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
remarque

Le placement intégré de Rokt peut également être créé dans votre code et inclus dynamiquement dans la mise en page.

Exécution du SDK

Exécutez le SDK dans l'activité/le fragment souhaité, en ajoutant les attributs clients appropriés et le mappage de placement. Le code d'exemple utilise la méthode onCreate pour lancer le placement.

Le placement Rokt s'affiche après un court délai, configurable via la plateforme Rokt.

Nous conseillons de définir la hauteur du placement sur wrap_content afin que le placement puisse définir sa hauteur de manière dynamique.

Le SDK fournit des événements de rappel optionnels pour le chargement et le déchargement de la vue.

Vous pouvez choisir les attributs clients à inclure dans votre intégration Rokt. Plus d'informations sur les champs de données disponibles peuvent être trouvées sur la page attributes. Si vous souhaitez ajouter plus d'attributs, vous pouvez ajouter des lignes de code supplémentaires pour chaque nouvel attribut aux exemples ci-dessous.

import com.rokt.roktsdk.Widget;
import com.rokt.roktsdk.Rokt;

class ConfirmationActivity : Activity() {

private Rokt.RoktCallback roktCallback = new Rokt.RoktCallback() {
@Override
public void onLoad() {
}

@Override
public void onShouldShowLoadingIndicator() {
}

@Override
public void onShouldHideLoadingIndicator() {
}

@Override
public void onUnload(@NotNull Rokt.UnloadReasons unloadReasons) {
}
};

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...

Map<String, String> attributes = new HashMap<String, String>();

attributes.put("email", "j.smith@example.com");
attributes.put("firstname", "Jenny");
attributes.put("lastname", "Smith");
attributes.put("mobile", "(323) 867-5309");
attributes.put("postcode", "90210");
attributes.put("country", "US");

// Widget placeholder mapping the placeholder view with placement location configuration
Widget widget = findViewById(R.id.roktWidget);
Map<String, WeakReference<Widget>> placeHolders = new HashMap<>();
placeHolders.put("RoktEmbedded1", new WeakReference<>(widget));

Rokt.INSTANCE.execute("RoktExperience",
attributes,
roktCallback,
placeHolders);
...
}
}
remarque

Si vous souhaitez mettre à jour le nom de la vue RoktExperience ou le nom de l'espace réservé RoktEmbedded1 avec une valeur différente, contactez votre gestionnaire de compte Rokt pour vous assurer que les emplacements Rokt sont configurés de manière cohérente.

Composant Jetpack Compose

À partir de la version majeure 4 du SDK Android de Rokt, vous pouvez ajouter une mise en page Rokt en utilisant le composable RoktLayout. Cela supprime la nécessité d'appeler Rokt.execute et prend en charge une intégration déclarative plus moderne en utilisant Compose.

Ajouter le composant

import com.rokt.roktsdk.RoktLayout

@Composable
fun MainScreen(modifier: Modifier = Modifier) {
Column(
modifier = modifier
.background(Color.LightGray)
.padding(8.dp),
) {
RoktLayout(
sdkTriggered = true,
viewName = "RoktExperience",
attributes = hashMapOf(
Pair("email", "j.smith@example.com"),
Pair("firstname", "Jenny"),
Pair("lastname", "Smith"),
Pair("mobile", "(323) 867-5309"),
Pair("postcode", "90210"),
Pair("country", "US")
),
location = "RoktEmbedded1", // Si vous utilisez une mise en page intégrée
onLoad = {},
onUnload = {},
onShouldShowLoadingIndicator = {},
onShouldHideLoadingIndicator = {},
)
}
}
remarque

Vous pouvez utiliser le composable RoktLayout pour les mises en page intégrées et superposées.

Événements

Le SDK fournit les événements sur chaque page sous forme de flux via l'API Rokt.events. Les utilisateurs du SDK peuvent utiliser le mécanisme Kotlin Flow pour consommer les événements produits par le SDK.

// propriétaire: LifecycleOwner
owner.lifecycleScope.launch {
owner.lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
Rokt.events("viewName").collect { roktEvent ->
Log.d("RoktEvent", "Événement reçu $roktEvent")
}
}
}

Objets d'événement

ÉvénementDescriptionParamètres
ShowLoadingIndicatorDéclenché avant que le SDK n'appelle le backend de Rokt
HideLoadingIndicatorDéclenché lorsque le SDK reçoit un succès ou un échec du backend de Rokt
OfferEngagementDéclenché lorsque l'utilisateur interagit avec l'offreplacementId: String
PositiveEngagementDéclenché lorsque l'utilisateur interagit positivement avec l'offreplacementId: String
FirstPositiveEngagementDéclenché lorsque l'utilisateur interagit positivement avec l'offre pour la première foisplacementId: String, fulfillmentAttributes: FulfillmentAttributes
PlacementInteractiveDéclenché lorsqu'un emplacement a été rendu et est interactifplacementId: String
PlacementReadyDéclenché lorsqu'un emplacement est prêt à être affiché mais n'a pas encore rendu de contenuplacementId: String
PlacementClosedDéclenché lorsqu'un emplacement est fermé par l'utilisateurplacementId: String
PlacementCompletedDéclenché lorsque la progression de l'offre atteint la fin et qu'il n'y a plus d'offres à afficherplacementId: String
PlacementFailureDéclenché lorsqu'un emplacement n'a pas pu être affiché en raison d'une défaillanceplacementId: String (optionnel)

Callbacks

Le SDK Android de Rokt prend en charge les callbacks suivants qui sont passés dans execute en tant qu'objet Rokt.RoktCallback :

onLoad

Le callback onLoad sera appelé lorsque le placement sera chargé et interactif. Ce callback ne fournit aucun argument et ne retourne aucune valeur.

onShouldShowLoadingIndicator

Le callback onShouldShowLoadingIndicator sera appelé après un appel réussi à execute, juste avant que le SDK ne déclenche un appel au backend de Rokt. Il peut être utilisé pour afficher des vues de progression des indicateurs de chargement en attendant que le placement se charge. Il ne nécessite aucun argument et ne retourne aucune valeur.

remarque

Le comportement de ce callback a changé entre la version majeure 3 et la version majeure 4 du SDK Android de Rokt. Il n'y a plus de délai d'une seconde avant l'exécution du callback. Si vous utilisez ces callbacks dans la version majeure 3 et que vous passez à la version majeure 4, testez le comportement pour vous assurer que l'expérience utilisateur n'est pas impactée. Vous pouvez créer un comportement de délai qui convient aux besoins de vos applications si nécessaire.

onShouldHideLoadingIndicator

Le callback onShouldHideLoadingIndicator sera appelé lorsque le SDK obtient une réponse de succès ou d'échec du backend Rokt. Il peut être utilisé pour annuler les vues de progression ou les indicateurs de chargement. Il ne nécessite aucun argument et ne renvoie aucune valeur.

onUnload

Le callback onUnload sera appelé lorsque le SDK ferme le placement. Il sera également déclenché si l'appel d'exécution échoue. Il reçoit un Rokt.UnloadReasons comme argument, mais ne renvoie aucune valeur. Les raisons de déchargement sont les suivantes :

ValeurRaison
NO_OFFERSIl n'y a pas d'offres éligibles à afficher
FINISHEDUn placement ou une mise en page rendu a été fermé
TIMEOUTDélai d'attente lors de la demande de réponse du backend
NETWORK_ERRORUne erreur réseau s'est produite
NO_WIDGETLe placement ou la mise en page retourné est invalide ou vide
INIT_FAILEDLa demande d'initialisation a échoué avant que l'exécution ne soit appelée
UNKNOWN_PLACEHOLDERIncompatibilité de la chaîne de caractères du placeholder (disponible à partir de 4.x.x)
UNKNOWNRaison générique
Cet article vous a-t-il été utile ?