Приглашения пользователей Android

Реализация приглашений пользователей

Прежде чем начать: свяжитесь с маркетологом и узнайте у него точные сценарии использования ссылок, а также получите список параметров, которые они хотят реализовать.

Чтобы реализовать атрибуцию приглашений пользователей, выполните следующие шаги:

  1. Настройте генерацию ссылок-приглашений для создания ссылок для приглашений пользователей.
  2. Необязательно Зарегистрируйте создание ссылок-приглашений.
  3. Настройте унифицированный диплинкинг (UDL).
  4. Необязательно Извлеките данные реферера из ссылок-приглашений пользователей.
  5. Необязательно Настройте вознаграждение реферера.

Следующий код основан на примере маркетолога.

Set up invite link generation

Чтобы пользователи могли приглашать своих друзей в ваше приложение, вам нужен способ создания ссылок-приглашений. Это делается с помощью LinkGenerator.
Чтобы настроить создание ссылок-приглашений:

  1. Обязательно импортируйте следующие зависимости:

    import com.appsflyer.AppsFlyerLib;
    import com.appsflyer.CreateOneLinkHttpTask;
    import com.appsflyer.share.LinkGenerator;
    import com.appsflyer.share.ShareInviteHelper;
    
  2. Задайте шаблон OneLink с помощью setAppInviteOneLink() (Идентификатор шаблона предоставляется маркетологом):

    AppsFlyerLib.getInstance().setAppInviteOneLink("H5hv"); // set the OneLink template ID the user invite links will be based on
    

    📘

    Примечание

    • Обязательно вызовите setAppInviteOneLink() до вызова start.
    • Шаблон OneLink должен быть связан с приложением.
  3. Создайте тег LinkGenerator using ShareInviteHelper.generateInviteUrl().

    LinkGenerator linkGenerator = ShareInviteHelper.generateInviteUrl(getApplicationContext());
    
  4. В зависимости от желаемой схемы приглашения пользователей добавьте следующие параметры с помощью linkGenerator.addParameter():

    linkGenerator.addParameter("deep_link_value", <TARGET_VIEW>);
    linkGenerator.addParameter("deep_link_sub1", <PROMO_CODE>);
    linkGenerator.addParameter("deep_link_sub2", <REFERRER_ID>);
    // Optional; makes the referrer ID available in the installs raw-data report
    linkGenerator.addParameter("af_sub1", <REFERRER_ID>);
    
    • deep_link_value: интерфейс в приложении, на который перенаправляется по диплинку приглашенный пользователь.
    • deep_link_sub1: промокод, полученный приглашенным.
    • deep_link_sub2: идентификатор реферера. Может использоваться для вознаграждения реферера.
    • Примечание. Если у вас SDK V6.5.2 или ниже, вам необходимо закодировать значения параметров специальными символами.
  5. Настройте параметры атрибуции. (Они будут отображаться на дэшбордах AppsFlyer и в отчетах по сырым данным).

    linkGenerator.setCampaign("summer_sale");
    linkGenerator.setChannel("mobile_share");
    
  6. Необязательно Задайте фирменный домен для генерируемой ссылки:

    linkGenerator.setBrandDomain("brand.domain.com");
    
  7. Создайте тег LinkGenerator.ResponseListener для получения ссылки для приглашения пользователей, когда она будет доступна:

    LinkGenerator.ResponseListener listener = new LinkGenerator.ResponseListener() {
                @Override
                public void onResponse(String s) {
                    Log.d(LOG_TAG, "Share invite link: " + s);
                    // ...
                }
    
                @Override
                public void onResponseError(String s) {
                    Log.d(LOG_TAG, "onResponseError called");
                }
             
    };
    

    📘

    Примечание

    Since SDK v6.9.0 LinkGenerator.ResponseListener replaced CreateOneLinkHttpTask.ResponseListener

  • onResponse() вызывается при успешном создании приглашения пользователя.
  • onResponseError() вызывается, когда создание ссылки не удалось.
  1. pass listener to linkGenerator.generateLink():
    linkGenerator.generateLink(getApplicationContext(), listener);
    

Set the shortlink ID

Необязательно
The shortlink ID can be determined by the developer, by adding the paramter af_custom_shortlink to the LinkGenerator instance.

linkGenerator.addParameter("af_custom_shortlink", <value>);

Log invite link creation events

Необязательно
Чтобы зарегистрировать событие создания ссылки-приглашения:
Зарегистрируйте приглашение с помощью logInvite():

HashMap<String,String> logInviteMap = new HashMap<String,String>();
logInviteMap.put("referrerId", <REFERRER_ID>);
logInviteMap.put("campaign", "summer_sale");

ShareInviteHelper.logInvite(getApplicationContext(), "mobile_share", logInviteMap);

logInvite приводит к внутреннему событию приложения af_invite .

📘

Примечание

Если вы не хотите использовать канал, вместо него можно использовать logEvent .

Set up UDL for user invite attribution

Необязательно
Чтобы настроить UDL для атрибуции приглашений пользователей:
Настройте унифицированный диплинкинг (UDL). In DeepLinkListener.onDeepLinking()извлеките параметры диплинка, созданные на этапе генерации ссылки. В этом примере извлекаются следующие свойства:

  • deep_link_value, с использованием DeepLink.getDeepLinkValue()
  • deep_link_sub1, с использованием DeepLink.getStringValue()
  • deep_link_sub2, с использованием DeepLink.getStringValue()

См. код: Java.

Вознаграждение рефереров

Необязательно
В следующих сценариях пользователь A приглашает пользователя B в ваше приложение.

Reward referrers on install

Сценарий: пользователь Б устанавливает ваше приложение по ссылке-приглашению от пользователя А.

Идентификатор пользователя A доступен в DeepLinkListener.onDeepLinking() и в нашем примере извлекается с помощью DeepLink.getStringValue("deep_link_sub2"). Получив идентификатор, добавьте его в список идентификаторов пользователей, которые будут вознаграждены. Вы сами решаете, как хранить и извлекать такой список.

Reward referrers for user actions

Сценарий: Пользователь В совершает покупку. Вы хотите вознаградить пользователя А, который пригласил пользователя В, за это действие.

Чтобы вознаградить пользователя A за действие пользователя B:

  1. Получите идентификатор реферера для пользователя А и добавьте его в один из настраиваемых параметров внутреннего события (например, af_param_1):

     Map<String, Object> purchaseEventParameters = new HashMap<String, Object>();
     purchaseEventParameters.put(AFInAppEventParameterName.PARAM_1, <REFERRER_ID>);
     purchaseEventParameters.put(AFInAppEventParameterName.CURRENCY, "USD");
     purchaseEventParameters.put(AFInAppEventParameterName.REVENUE, 200);
     
     AppsFlyerLib.getInstance().logEvent(getApplicationContext(), purchaseEventParameters);
    
  2. На вашем бэкэнд-сервере извлеките данные о внутренних событиях приложения.

  3. Добавьте полученные идентификаторы реферера в список пользователей, которые будут вознаграждены.

  4. Когда пользователь А запустит приложение, проверьте, что его идентификатор включен в список пользователей, которых нужно наградить, и вознаградите его.

📘

Примечание

  • Шаги 2-3 не может выполнить мобильный разработчик. Шаг 4 зависит от того, как реализованы шаги 2-3.
  • Событие покупки — это просто пример. Это применимо к любому типу внутренних событий приложения.