En bref : attribuez et enregistrez les nouvelles installations provenant d'invitations d'utilisateurs existants à utiliser vos apps.
Mises à jour iOS 14
L'attribution des invitations utilisateur n'utilise pas l'IDFA. iOS 14 n'a donc aucune incidence sur celle-ci.
L'attribution par invitation utilisateur est gratuite pour tous les forfaits.
Aperçu de l'attribution par invitation utilisateur
Pourquoi l'attribution des invitations utilisateurs est-elle utile ?
- Obtenez des informations sur les utilisateurs qui vous apportent le plus de nouveaux utilisateurs :
les utilisateurs qui recommandent votre app à leurs amis sont des utilisateurs engagés à forte valeur ajoutée, que vous pouvez conserver, recibler ou encourager. - Utilisez les informations relatives à l'utilisateur référent pour personnaliser la première expérience du nouvel utilisateur :
au lieu d'un message de bienvenue générique, vous pouvez utiliser un message personnalisé qui engagera beaucoup plus le nouvel utilisateur. Par exemple : « Bienvenue, John ! Rejoins ton amie Marsha dans une bataille épique après avoir terminé le tutoriel »." - Connaissez le coût et le retour sur investissement des invitations d'utilisateur pour de meilleurs résultats :
les invitations d'utilisateur sont-elles gratuites ? Pas vraiment. Elles utilisent l'espace publicitaire de votre app, qui pourrait autrement vous permettre de générer des revenus publicitaires. Les invitations des utilisateurs vous procurent-elles un retour sur investissement positif, par rapport à l'alternative ? Dans certains cas oui.
Vous pouvez utiliser les paramètres de coût d'AppsFlyer pour attribuer un coût aux installations suite aux invitations utilisateurs, en fonction des alternatives.
Exemple
Une bannière vous fait gagner 5 dollars par minute en fonction du nombre d'affichages de la publicité (voici un excellent moyen de mesure). En moyenne, avec un taux de conversion de 2 % des vues en invitation et un taux de conversion de 10 % des invitations en installation, vous obtenez 2 nouveaux utilisateurs toutes les 1000 vues. Par conséquent, l'utilisation du même espace de bannière pour promouvoir les invitations coûte 5 $/2=2,5 $ par installation. Ajoutez la valeur af_cost_value=2.5 pour refléter ce coût sur le tableau de bord.
Combinée à vos rapports de revenus sur les événements in-app, elle vous permet de voir quelles campagnes d'invitation d'utilisateurs vous donnent les meilleurs ou les moins bons résultats, et quels canaux d'invitations sont les mieux adaptés à vos besoins.
Comment fonctionne l'attribution des invitations utilisateurs ?
Les installations attribuées à un lien d'invitation apparaissent sur le tableau de bord sous la source média af_app_invites
.
Les canaux utilisés pour envoyer les invitations par e-mail, SMS, Facebook, etc., apparaissent sous le groupe Canal sous la source média af_app_invites
.
En sélectionnant la source média af_app_invites et en effectuant un regroupement par canal, les clics et les installations provenant des invitations utilisateurs via Gmail et Facebook s'affichent.
Guide du développeur
Configuration de OneLink
L'attribution des invitations utilise OneLink pour rediriger l'utilisateur invité vers l'app store concerné. OneLink vous permet également d'utiliser le deep linking différé. Le deep linking différé permet d'ouvrir une activité spécifique lorsque l'utilisateur lance l'app. Il définit également le contenu personnalisé afin de retenir l'utilisateur dans le contexte d'une installation après une invitation.
Assurez-vous de configurer OneLink correctement pour votre app :
- Configurez les redirections de OneLink
- Suivez le guide pour savoir comment configurer le deep linking différé - la configuration du deep linking différé vous fournit les données dont vous avez besoin pour envoyer des utilisateurs vers des activités spécifiques, ou récompenser à la fois l'utilisateur invité et l'utilisateur à l'origine de l'invitation.
- Facultatif - Configurer le deep linking OneLink - vous n'avez pas besoin de configurer le deep linking OneLink, mais il peut être utile dans certains cas. Par exemple :
- Vous avez configuré une campagne dans laquelle les utilisateurs invitent leurs amis à installer l'app. Tous deux obtiennent des points de crédit à utiliser dans l'app. Si l'utilisateur invité installe l'app, l'utilisateur à l'origine de l'invitation reçoit 50 points de crédit et l'utilisateur invité reçoit 100 points de crédit. Si l'utilisateur invité a déjà installé l'app, l'utilisateur à l'origine de l'invitation obtient 25 points de crédit et l'utilisateur invité obtient 50 points de crédit. Pour distinguer les deux cas, utilisez le deep linking différé pour le premier et le deep linking pour le second.
Une fois que OneLink est entièrement configuré, prenez l'ID de template OneLink correspondant.
Avant d'appeler start
au sein de votre app, définissez le OneLink qui est invoqué d'après l'ID de template OneLink (OPSz dans l'exemple suivant) :
Note
Vérifiez que vous utilisez le bon ID de template OneLink. Dans le cas contraire, le lien d'attribution créé sera rompu.
AppsFlyerLib.getInstance().setAppInviteOneLink("ymod");
[AppsFlyerLib shared].appInviteOneLinkID = @"ymod"
;
AppsFlyerLib.shared().appInviteOneLinkID = "ymod"
AppsFlyer.setAppInviteOneLinkID("ymod
");
Génération du lien
Sur Android, assurez-vous d'importer les libs suivants :
import com.appsflyer.share.ShareInviteHelper;
import com.appsflyer.share.LinkGenerator;
La classe LinkGenerator génère l'URL d'invitation selon différentes méthodes de paramétrage, ce qui permet de transmettre d'autres données concernant le clic. Ces informations sont disponibles via onConversionDataSuccess
lorsque le nouvel utilisateur accepte l'invitation et installe l'app. De plus, les paramètres de campagne et de canal sont visibles dans le tableau de bord AppsFlyer.
Les liens d'invitation générés par SDK ont une durée de vie de 180 jours.
Si, pour une raison quelconque, l'API n'est pas accessible, LinkGenerator
renvoie un lien long.
LinkGenerator linkGenerator = ShareInviteHelper.generateInviteUrl(MainActivity.this);
linkGenerator.setChannel("Gmail");
linkGenerator.addParameter("af_cost_value","2.5");
linkGenerator.addParameter("af_cost_currency","USD");
// optional - set a brand domain to the user invite link
linkGenerator.setBrandDomain("brand.domain.com");
CreateOneLinkHttpTask.ResponseListener listener = new CreateOneLinkHttpTask.ResponseListener() {
@Override
public void onResponse(String s) {
Log.d("Invite Link", s);
// write logic to let user share the invite link
}
@Override
public void onResponseError(String s) {
// handle response error
}
};
linkGenerator.generateLink(MainActivity.this, listener);
Remarques
-
onResponse
etonResponseError
sont des méthodes de rappel pour générer des URL OneLink. Ils font partie de l'interfaceCreateOneLinkHwiggleTask.ResponseListener
et doivent être implémentés. Ils permettent de générer des liens d'invitation que vous pouvez placer dans diverses vues de l'app. - Vous pouvez ajouter l'un de ces paramètres de lien d'attribution au lien généré.
- Les caractères spéciaux dans les valeurs des paramètres doivent être encodés lorsqu'ils sont transmis à la fonction LinkGenerator.
[AppsFlyerShareInviteHelper generateInviteUrlWithLinkGenerator:^AppsFlyerLinkGenerator * _Nonnull(AppsFlyerLinkGenerator * _Nonnull generator) {
[generator setChannel:@"channel_name"];
[generator setReferrerName:@"referrer_name"];
[generator addParameterValue:@"2.5" forKey: @"af_cost_value"];
// optional - set a brand domain to the user invite link
[generator setBrandDomain:@"brand.domain.com"];
return generator;
} completionHandler:^(NSURL * _Nullable url) {
NSLog(@"%@", url);
// write logic to let the user share the invite link
}];
AppsFlyerShareInviteHelper.generateInviteUrl(linkGenerator:
{(_ generator: AppsFlyerLinkGenerator) -> AppsFlyerLinkGenerator in
generator.setChannel("channel_name")
generator.setReferrerName("referrer_name")
generator.addParameterValue("2.5", forKey: "af_cost_value")
// optional - set a brand domain to the user invite link
generator.brandDomain = "brand.domain.com"
return generator },
completionHandler: {(_ url: URL?) -> Void in // write logic to let the user share the invite link })
Dictionary<string,string> inviteDicionary = new Dictionary<string,string>();
inviteDicionary.Add("channel","channel_name");
inviteDicionary.Add("referrerName","referrer_name");
AppsFlyer.generateUserInviteLink(inviteDicionary, "customCallbackObject", "onSuccessMethodName", "onFailedMethodName");
iOS :
Dictionary<string,string> inviteDicionary = new Dictionary<string,string>();
inviteDicionary.Add("channel","channel_name");
inviteDicionary.Add("referrerName","referrer_name");
AppsFlyer.generateUserInviteLink(inviteDicionary, null, null, null);
// Any value can be set instead of null, but the iOS callback will always
//return to the AppsFlyerTrackerCallbacks object -> onInviteLinkGenerated callback method.
Tous les paramètres de générateurs de liens
Nom de l'API | Description | Utilisation |
---|---|---|
setChannel(String channel) |
Le canal par lequel l'invitation a été envoyée (par ex. Facebook/Gmail/etc.) |
Recommandé |
setCampaign(String campaign) |
Le nom de la campagne |
OPTIONNELLE |
setReferrerName(String referrerName) |
Le nom de l'utilisateur référent |
OPTIONNELLE |
setReferrerImageURL(String referrerImageURL) |
L'URL de l'avatar de l'utilisateur référent |
OPTIONNELLE |
setReferrerCustomerId(String referrerCustomerID) |
Définir le customer_user_id de l'utilisateur référent |
OPTIONNELLE |
addParameter(String key, String value) |
Un paramètre personnalisé à valeur de clé unique |
OPTIONNELLE |
addParameters(Map<String, String> parameters) |
Un paramètre personnalisé à valeur de clés multiples |
OPTIONNELLE |
setBrandDomain(String domain) |
Le nom du domaine de la marque |
OPTIONNELLE Nécessite la fonction de création des liens de marque |
Nom de l'API | Description | Utilisation |
---|---|---|
setChannel :(NSString *) channel |
Le canal par lequel l'invitation a été envoyée (par ex. Facebook/Gmail/etc.) |
Recommandé |
setCampaign :(NSString *) campaign |
Le nom de la campagne |
OPTIONNELLE |
setReferrerName :(NSString *) referrerName |
Le nom de l'utilisateur référent |
OPTIONNELLE |
setReferrerImageURL:(NSString *) referrerImageURL; |
L'URL de l'avatar de l'utilisateur référent |
OPTIONNELLE |
setReferrerUID :(NSString *) referrerUID |
ID utilisateur client du système interne |
OPTIONNELLE |
addParameterValue :(NSString *) value forKey:(NSString*)key |
Un paramètre personnalisé à valeur de clé unique |
OPTIONNELLE |
addParameters :(NSDictionary*) parameters |
Un paramètre personnalisé à valeur de clés multiples |
OPTIONNELLE |
setBrandDomain :(NSString *) |
Le nom du domaine de la marque |
Facultatif Nécessite la fonction de création des liens de marque |
Enregistrement des invitations de l'expéditeur
Nous vous recommandons de générer un événement in-app après l'envoi de l'invitation pour enregistrer les invitations du point de vue des expéditeurs. Cela vous permet d'identifier les utilisateurs qui ont tendance à inviter des amis et les sources média qui vous apportent ces utilisateurs.
Vous pouvez envoyer un événement in-app standard ou utiliser la méthode logInvite
à la place. logInvite
est un événement in-app prêt à l'emploi, encapsulé dans une API pour une utilisation plus facile.
ShareInviteHelper.logInvite(context, channel, additionalParametersForTheEvent_optional);
Objective-C
NSDictionary *optional_params = @{@"key": @"value"};
[AppsFlyerShareInviteHelper logInvite:@"your_channel" parameters:optional_params];
Swift
let optionalParams = ["key":"value"]
AppsFlyerShareInviteHelper.logInvite("your_channel", parameters: optionalParams)
Récupération des données d'attribution après l'installation par un utilisateur invité
Tous les paramètres transmis dans le générateur de liens sont disponibles en appelant onConversionDataSuccess
. Cela vous permet de récupérer les paramètres pertinents (comme le nom du référent et l'URL de l'avatar) et de personnaliser la première expérience pour le nouvel utilisateur. Voici un exemple des données d'attribution renvoyées par onConversionDataSuccess
:
{
"attribute": "is_first_launch" = "true"
"attribute": "click_time" = "2019-04-04 08:33:05.668"
"attribute": "af_referrer_customer_id" = "CUSTOMER_USER_ID"
"attribute": "shortlink" = "12a3b456"
"attribute": "af_referrer_uid" = "1234567890123-4567890123456789012"
"attribute": "af_siteid" = "com.company.app"
"attribute": "install_time" = "2019-04-04 08:33:45.286"
"attribute": "cost_cents_USD" = "0"
"attribute": "campaign" = "None"
"attribute": "af_click_lookback" = "7d"
"attribute": "orig_cost" = "0.0"
"attribute": "af_status" = "Non-organic"
"attribute": "iscache" = "true"
"attribute": "media_source" = "af_app_invites"
}
Plus d'informations sur l'utilisation des données de conversion : iOS et Android.
Utilisation des liens d'invitation d'utilisateur pour le réengagement
Vous pouvez utiliser les liens d'invitation des utilisateurs pour le réengagement. Vous devez toutefois vous assurer que l'utilisateur invité a installé l'app. Si un utilisateur qui n'a pas l'app obtient un lien d'invitation et installe l'app, un clic apparaît dans le tableau de bord de retargeting, mais l'installation apparaît dans la vue d'ensemble du tableau de bord.
Pour utiliser les liens d'invitation des utilisateurs pour le réengagement, ajoutez le paramètre is_retargeting
et définissez-le sur true à l'aide de la méthode addParameter
:
AppsFlyerLib.getInstance().addParameter("is_retargeting", "true");
[generator addParameterValue: @"true" forKey: @"is_retargeting"]
;
generator.addParameterValue("true" forKey: "is_retargeting")
inviteDictionary.Add("is_retagerting", "true");
Récompenser les invitations d'utilisateurs
Vous pouvez récompenser les utilisateurs qui invitent leurs amis à installer votre app. À travers les récompenses, vous encouragez les utilisateurs à inviter leurs amis. C'est un excellent moyen d'élargir votre base d'utilisateurs et d'augmenter vos revenus.
Quand récompenser ?
Vous pouvez récompenser les utilisateurs lorsque leurs amis installent votre app après avoir été invités. Vous pouvez également récompenser les utilisateurs lorsque leurs amis effectuent un événement dans l'app, un achat par exemple.
Récompenser les utilisateurs lors de l'installation
Lorsqu'un utilisateur invité installe l'app, l'identifiant de l'utilisateur référent se trouve dans les données de conversion du SDK :
- af_referrer_uid - est l'ID AppsFlyer de l'utilisateur qui envoie l'invitation
- af_referrer_customer_id - est l'ID utilisateur client de l'utilisateur qui envoie l'invitation. N'apparaît dans les données de conversion que si vous définissez l'ID utilisateur client pour cet utilisateur.
Utilisez l'ID du référent pour récompenser lors de l'installation
Jenny invite Nivi à installer votre app.
- Lorsqu'elle est lancée par Nivi, l'app récupère l'ID de référence de Jenny.
- L'app envoie l'ID du référent à votre backend
- Dans votre backend, ajoutez l'ID du référent de Jenny à la liste des utilisateurs à récompenser
- Lorsque Jenny lance l'app, vérifiez si son ID de référent figure dans la liste des utilisateurs à récompenser.
- Si applicable, récompensez-la
Récompenser les utilisateurs après un événement in-app
Si vous souhaitez générer des revenus grâce aux invitations d'utilisateur, plutôt que de vous contenter d'acquérir des utilisateurs, vous pouvez récompenser des événements in-app. Dans ce cas, vous récompensez les utilisateurs référents uniquement lorsque l'utilisateur invité effectue un événement in-app comme un achat ou un abonnement.
Processus de récompense des événements in-app
Jenny invite Nivi à installer votre app.
Définissez af_sub1 sur le lien d'invitation
- Lorsque Jenny invite Nivi, générez un lien d'invitation
- Dans le lien d'invitation, placez un paramètre
af_sub1=<JENNY_USER_ID>
Nivi installe l'app et effectue un achat. Au moment de l'achat, un événement in-app est envoyé à AppsFlyer. Cet événement in-app est associé à sub1=<JENNY_USER_ID>
.
Utilisez af_sub1 pour mettre à jour la liste des utilisateurs à récompenser
- Vous pouvez extraire des données d'événements in-app à l'aide de l'API pull ou les obtenir à partir de l'API push
- Dans les données, recherchez les événements dont la source média est af_app_invites.
- Ces événements sont associés à af_sub1, qui contient l'ID du référent
- Stockez les ID de référent dans la liste des utilisateurs à récompenser
Récompensez Jenny
- Lorsque Jenny lance l'app, vérifiez si son ID de référent figure dans la liste des utilisateurs à récompenser
- Si applicable, récompensez-la
Vues de tableaux de bord personnalisés
Vous trouverez ci-dessous les vues disponibles du tableau de bord personnalisé qui affichent les informations d'invitation des utilisateurs :
Limites
Limitation | Description |
---|---|
Version du SDK | Vous devez avoir AppsFlyer SDK version 4.8.0+ et Unity SDK version 4.17.0+. |
Page d'accueil des apps de réseaux sociaux | Les liens générés par les invitations des utilisateurs ne peuvent pas implémenter les pages de destination des apps de médias sociaux. |