Реализация реферальных вознаграждений во Флаттере - PullRequest
5 голосов
/ 22 июня 2019

Я хотел бы настроить систему рефералов в своем приложении, чтобы пользователи могли приглашать своих друзей по электронной почте / по номеру телефона и т. Д. (В зависимости от того, что проще), и когда будет подтверждено, что приглашенный установил приложение, оно будет вознаграждено оригинальный отправитель приглашения, скажем, месяц без баннеров.

Единственная ссылка, которую я могу найти в Интернете, это: https://pub.dev/packages/firebase_dynamic_links#-readme-tab-

Я не уверен, что это то, что мне нужно, и, к сожалению, поскольку он был создан командой Flutter, он предлагает ровно 0 объяснений о том, как на самом деле реализовать что-либо из этого, так как они ожидают, что вы уже будете профессиональный штатный кодер, способный заполнить все пробелы для себя.

Кто-нибудь настраивал это раньше? Это правильный плагин для того, что я после? У кого-нибудь есть лучшие ресурсы? Любой указатель в правильном направлении будет принята с благодарностью!

Edit:

Переход по пути динамических ссылок Firebase. Первое препятствие, с которым я столкнулся, это необходимость владения доменом, чтобы я мог создавать URL-адреса для динамических ссылок. Поэтому вчера вечером я зарегистрировал себе домен и настроил его в соответствии с требованиями Firebase, чтобы он был проверен и подключен к Проект Firebase (он пошагово проделывает это, и кажется, что все работает нормально, просто может потребоваться дать вашему DNS-хосту время, чтобы отразить изменения TXT и A, необходимые для этого процесса).

Так что теперь у меня есть пустой, проверенный домен с именем example.com

В Firebase теперь, под проектом, который я создал, внизу слева находится кнопка с именем Dynamic Links. Для этого требуется, чтобы example.com был проверен теми записями A, которые вы уже вводили ранее, но после проверки это позволит вам создать новую динамическую ссылку.

Здесь есть 5 шагов: Шаг 1) Он предлагает вам короткую ссылку на URL. В моем случае: example.com/gd7W я принял это и нажал следующее.

Шаг 2) Настройте динамическую ссылку. Он запрашивает URL-адрес Deep Link и имя динамической ссылки. В моем случае я использовал example.com/apps/refer_a_friend, и вы можете дать Dynamic Link любое имя, которое вам нравится. Я только что назвал мой "Пригласи друга". Хит следующий.

Шаг 3) Определите поведение ссылок для iOS. Я просто оставил его как "открыть глубокую ссылку в браузере"

Шаг 4) Определите поведение ссылок для Android. Я просто оставил его как "открыть глубокую ссылку в браузере"

Шаг 5) Отслеживание кампании, социальные теги и дополнительные параметры. Похоже, что этот материал не важен на данном этапе, а не для того, что требуется для этого поста, а просто для того, чтобы все заработало. Этот материал предназначен для аналитики и отслеживания вашего продвижения, когда оно работает. Вы можете вернуться и отредактировать его позже.

Таким образом, на шаге 2 URL-адрес Deep Link, на который я ссылался, фактически не существует. Я не уверен, если это предполагается. Если я собираюсь создать эту страницу на своем веб-сайте, но если да, то что я должен разместить на этой странице? В настоящее время я думаю, что мне следует создать на своем сайте перенаправление с этого адреса на URL-адрес магазина Google Play для приложения. Я пробовал это, но это не перенаправление.

Затем снова вернемся к примеру приложения (и здесь я имею в виду пример, над которым мы работаем, в комментариях ниже, которые получены здесь: https://github.com/flutter/plugins/tree/master/packages/firebase_dynamic_links/example).

Я полагаю, что этот раздел нам нужен, так как он требует редактирования, чтобы соответствовать вашим собственным ссылкам и адресам из ваших предыдущих шагов:

final DynamicLinkParameters parameters = DynamicLinkParameters(
  uriPrefix: 'https://cx4k7.app.goo.gl',
  link: Uri.parse('https://dynamic.link.example/helloworld'),
  androidParameters: AndroidParameters(
    packageName: 'io.flutter.plugins.firebasedynamiclinksexample',
    minimumVersion: 0,
  ),
  dynamicLinkParametersOptions: DynamicLinkParametersOptions(
    shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
  ),
  iosParameters: IosParameters(
    bundleId: 'com.google.FirebaseCppDynamicLinksTestApp.dev',
    minimumVersion: '0',
  ),
);

Я изменил этот раздел кода, чтобы попытаться сопоставить мою работу выше, поэтому обновился до этого:

final DynamicLinkParameters parameters = DynamicLinkParameters(
  uriPrefix: 'https://example.com/gd7W',
  link: Uri.parse('https://example.com/apps/refer_a_friend'),
  androidParameters: AndroidParameters(
    packageName: 'company01.appname', //The appID of my app on the store
    minimumVersion: 0,
  ),
  dynamicLinkParametersOptions: DynamicLinkParametersOptions(
    shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
  ),
  iosParameters: IosParameters(
    bundleId: 'company01.appname', //The appID of my app on the store
    minimumVersion: '0',
  ),
);

Когда я запускаю приложение и нажимаю кнопку «Получить короткую ссылку», в журналах появляется следующая ошибка:

PlatformException(short_link_error, 400: Your project does not own Dynamic Links domain: https://example.com

То, что я не уверен, является правильной ошибкой, так как в консоли Firebase этот домен проверен и в настоящее время подключен. Похоже, работает нормально. Мне интересно, если реальная проблема заключается в том, что моя глубокая ссылка ничего не делает на данный момент, и, как я уже говорил, я не совсем уверен, что он должен делать.

Надеюсь, что это достаточно подробно, чтобы проследить мою работу до этого момента.

Редактировать 2:

Просто добавлю, что когда я нажимаю кнопку Получить длинную ссылку, на самом деле, кажется, что-то возвращает,очень длинный URL-адрес, который выглядит примерно так:

https://example.com/gd7W?amv=0&apn=company01.appname&ibi=company01.appname&imv=0&link=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcompany01.appname%26hl%3Den

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

Редактировать 3:

Я потратил весь день на изучение каждого примера, который смог найти.Ни один из них не говорит мне, каким должен быть URL-адрес динамической ссылки, как его создать, где он должен указывать или что с ним делать.Кажется, это недостающее звено в работе.

У кого-нибудь был какой-нибудь успех в настройке этого?Теперь, когда мы достигли этой точки, звучит только крикет.

Редактировать 4:

Я знаю, что многие люди читали эту ветку, поэтому я хотел бы иметь возможностьдать вам рабочий пример.Я не получил достаточно помощи с этим, так что я никогда не получал это работает.Мне пришлось полностью удалить рефералов из моего приложения, чтобы я мог уложиться в срок.Извините всех, кто разочарован этим результатом, вы не будете разочарованы больше, чем я.

1 Ответ

1 голос
/ 25 июня 2019

Что касается документации, вы можете прочитать README страницу , которая объясняет все доступные функции, а также как настроить ваш проект для работы плагина.
Кроме того,Вы можете просмотреть example приложение , которое содержит файлы проекта для полной реализации этого плагина.Вы можете просмотреть код Dart и все другие необходимые настройки.

Теперь я хотел бы перейти к реальному вопросу: следует ли вам использовать firebase_dynamic_links, если вы хотите настроить реферальные вознаграждения?
Во-первых,вам нужно знать, что это часть пакета продуктов Firebase .Из вашего вопроса не совсем понятно, используете ли вы Firebase для своего проекта, однако, вам, скорее всего, следует использовать этот продукт, только если вы планируете использовать или , уже используете Firebase вваш проект.
Firebase Dynamic Links работает для этой задачи и очень удобно, если вы уже используете Firebase, однако я не совсем уверен, насколько он хорош в качестве отдельного продукта.
Использование Firebase также имеет некоторые последствия для остальной части вашего проекта, т.е. вы будете собирать аналитические данные и т. Д.

В заключение, firebase_dynamic_links - это не Флаттер решение для реферальных вознагражденийЭто просто решение для Firebase .
. Для Flutter нет другого плагина , который позволил бы вам легко устанавливать эти награды, но этого и следовало ожидать.firebase_dynamic_links - это платформенное решение, то есть оно опирается на плагины для Android и iOS.
Если вы хотите установить вознаграждение, вам нужно написать свой собственный платформо-зависимый код и обрабатывать глубокие ссылки:способ, который также как firebase_dynamic_links делает это для Firebase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...