AppsFlyerSDK / segment-appsflyer-ios

The AppsFlyer iOS SDK integration with Segment
https://segment.com/docs/integrations/appsflyer/
MIT License
23 stars 59 forks source link

Testing Non-organic installs and Conversion Data #78

Closed TimurAsayonok closed 2 years ago

TimurAsayonok commented 2 years ago

Hello everybody, I would like to describe what I tested and maybe you can answer on my questions latter 🤞

So, right now we are using native AppsFlyer sdk and in next feature would like to move to Segment and use Segment + AppsFlyer. I followed all instruction here and from your example project and on the Segment documentation page.

So, we are using SPM for installing our SDK. v6.4.4 After configuring all steps I found that segment send events to AppsFlyer dashboard as we would like to, this is a plus for sure. But I decided to test Conversion Data and Non-organic installs and:

Testing Conversion Data

I added SEGAppsFlyerLibDelegate to my Class and added methods with prints (from your example):

    func onConversionDataSuccess(_ conversionInfo: [AnyHashable : Any]) {
        print("GCD: " + conversionInfo.description)
    }

    func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]) {
        print("OAOA: " + attributionData.description)
    }
    func onConversionDataFail(_ error: Error) {
        print("\(error)")
    }

    func onAppOpenAttributionFailure(_ error: Error) {
        print("\(error)")
    }

and when I installed the app a didn't get any Prints.

Testing Non-organic installs

For testing Non-organic installs I added Test Device to AppsFlyer dashboard and on the Integration -> SDK Integration Tests started Non-organic install Test, created QR code and using XCode installed the app to my phone. I waited 2h and didn't get any Non-organic Installs. I did the same using native SDK and everything was ok.

My questions are:

  1. Can you Explain this?
    AppsFlyer integration responds to identify call. To read more about it, visit Segment identify method documentation. In identify call traits dictionary setCustomerUserID and currencyCode

    Does it mean, that segment-appsflyer-ios will call .start() only when segment call .identify?

  2. Why I didn't get Conversion Data?
  3. Why I didn't get Non-organic installs?
  4. Maybe I need to call .start() method from SEGAppsFlyerIntegration.h?
  5. Maybe I need to test sdk installation using CoocaoPods?
  6. when I created factoryWithDelegate with SEGAppsFlyerIntegrationFactory.create() and added it to config.use(factoryWithDelegate) I got an error Argument type 'SEGAppsFlyerIntegrationFactory?' does not conform to expected type 'SEGIntegrationFactory'
  7. Does we really need to use this SDK (segment-appsflyer-ios) if using native SDK + Segment SDK will have the same effect? (or I can't see pluses in using segment-appsflyer-ios)

Thanks and Have a nice day ☺️