Appsflyer Request: Delayed start

Open
#1,124 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
react-native, typescript
Domain
mobile-dev

Research direction

Start by locating the AppsflyerPlugin implementation and tracing how initSdk and startSdk are invoked when the plugin is added. Check the plugin lifecycle and existing tests, if present, then define and verify behavior where initialization remains available but starting waits until consent is supplied.

Written by the indexing model from the issue text.

Description

Hi we are ensuring our app & data pipeline adheres to GDPR. That means that we have implemented a CMP to collect consent, then we add the consent object to each segment event, no problem!

We've ran into an issue with Appsflyer, because it doesn't send it's data via Segment in the cloud, it sends data directly from the device with it's own SDK, and then tells Segment it happened, which fires an event.

We'd like appsFlyer.startSdk(); to be called after we have shown the CMP and obtained the users consent, so we can set the consent (with appsFlyer.setConsentData()). The init: appsFlyer.initSdk can still be called when we add the plugin.

We are doing this:

const segmentClient = createClient({...etc})
segmentClient.add({ plugin: new AppsflyerPlugin() });

Now, as it stands, the AppsflyerPlugin inits and starts Appsflyer. What is the best way for me to keep the init, but delay the start of Appsflyer? I can't add a consent param to the constructor, because I don't know the consent yet.

Do I just edit the code for the plugin to add this consent param, and if it's not given, only init, then remove + re-add the plugin later when consent is given? This is the main thing I can think of atm.

Hope this makes sense. Thanks.

Dominant language
TypeScript
Stars
383
Forks
206
Avg merge
14h 45m
Merged PRs (30d)
11

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from segmentio/analytics-react-native

All issues in segmentio/analytics-react-native

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.