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

Обзор

Реализуйте и атрибутируйте ссылки для приглашения пользователей, когда имеющиеся пользователи рекомендовали ваше приложение другим людям.
Для ознакомления см. статью Приглашение пользователей.

Хотите увидеть полный пример? См. инструкцию:

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

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

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

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

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

Set up invite link generation

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

  1. Обязательно импортируйте AppsFlyerLib:

    import com.appsflyer.AppsFlyerLib;
    
  2. In AppDelegateзадайте шаблон OneLink с помощью appInviteOneLinkID (Идентификатор шаблона предоставляется маркетологом):

    AppsFlyerLib.shared().appInviteOneLinkID = "H5hv" // Set the OneLink template ID for userinvitation links
    

    📘

    Примечание

    • Обязательно установите appInviteOneLinkID до вызова start
    • Шаблон OneLink должен быть связан с приложением.
  3. Вызовите AppsFlyerShareInviteHelper.generateInviteUrl и передайте его в AppsFlyerLinkGenerator и completionHandler:

    AppsFlyerShareInviteHelper.generateInviteUrl(
        linkGenerator: {
            (_ generator: AppsFlyerLinkGenerator) -> AppsFlyerLinkGenerator in
                generator.addParameterValue(<TARGET_VIEW>, forKey: "deep_link_value")
                generator.addParameterValue(<PROMO_CODE>, forKey: "deep_link_sub1")
                generator.addParameterValue(<REFERRER_ID>, forKey: "deep_link_sub2")
                // Optional; makes the referrer ID available in the installs raw-data report
                generator.addParameterValue(<REFERRER_ID>, forKey: "af_sub1")
                generator.setCampaign("summer_sale")
                generator.setChannel("mobile_share")
          		// Optional; Set a branded domain name:
          		generator.brandDomain = "brand.domain.com"
                return generator
        },
        completionHandler: {
            (_ url: URL?) -> Void in
                if url != nil {
                    NSLog("[AFSDK] AppsFlyer share-invite link: \(url!.absoluteString)")
                }        
                else {
                    print("url is nil")
                }
            }
    )
    

    В зависимости от схемы действий пользователей, которую вы и маркетолог хотите реализовать, настройте generator следующим образом:

    • Задайте параметры атрибуции с помощью сеттеров.
    • Задайте параметры диплинкинга с помощью AppsFlyerLinkGenerator.addParameterValue:
      • deep_link_value: интерфейс в приложении, на который перенаправляется по диплинку приглашенный пользователь.
      • deep_link_sub1: настраиваемый параметр. В данном примере используется для передачи промокода, полученного приглашенным.
      • deep_link_sub2: идентификатор реферера. Может использоваться для вознаграждения реферера.
  4. В completionHandlerпроверьте, был ли URL создан успешно (url , не nil), и получите сгенерированную ссылку приглашения пользователя.

  5. Разрешите пользователям делиться сгенерированными ссылками. Например, скопировать ее в буфер обмена.

Set the shortlink ID

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

generator.addParameterValue(<value>, forKey:"af_custom_shortlink")

Log invite link creation events

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

AppsFlyerShareInviteHelper.logInvite(<CHANNEL>, parameters: [
    "campaign" : "summer_sale",
    "referrerId" : <REFERRER_ID>,
]);

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

📘

Примечание

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

Set up UDL for user invite attribution

Необязательно
Чтобы настроить UDL для атрибуции приглашений пользователей:

  1. Настройте Унифицированный диплинкинг (UDL).

  2. In DeepLinkDelegate.didResolveDeepLinkизвлеките параметры диплинка, созданные на этапе генерации ссылки. В этом примере извлекаются следующие свойства:

    • deep_link_value, с использованием DeepLink.deeplinkValue
    • deep_link_sub1, с использованием DeepLink.clickEvent["deep_link_sub1"]
    • deep_link_sub2, с использованием DeepLink.clickEvent["deep_link_sub2"]

    См. код: Swift.

  3. Когда вы получите идентификатор реферера, вы сами решите, как он будет храниться и использоваться.

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

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

Reward referrers on install

Сценарий: пользователь Б устанавливает ваше приложение по ссылке-приглашению от пользователя А.
Идентификатор реферера для пользователя A доступен в UDL didResolveDeepLink (в данном примере под DeepLink.clickEvent["deep_link_sub2"]). Получив идентификатор, добавьте его в список идентификаторов пользователей, которые будут вознаграждены. Вы сами решаете, как хранить и извлекать такой список.

Reward referrers on in-app events

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

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

  1. Получите идентификатор реферера для пользователя А и добавьте его в один из настраиваемых параметров внутреннего события (например, af_param_1):
    AppsFlyerLib.shared().logEvent(AFEventPurchase, 
      withValues: [
    		AFEventParamRevenue: 200,
    		AFEventParamCurrency:"USD",
            AFEventParam1: <REFERRER_ID>
      ]);
    
  2. На вашем бэкэнд-сервере извлеките данные о внутренних событиях приложения.
  3. Добавьте полученные идентификаторы реферера в список пользователей, которые будут вознаграждены.
  4. Когда пользователь А запустит приложение, проверьте, что его идентификатор включен в список пользователей, которых нужно наградить, и вознаградите его.

📘

Примечание

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