Use the API or contact customer service to provide us with the following: General ios Android App Name (friendly one-word name)

Similar documents
Enhancing your apps for the next dimension of touch

Stanford CS193p. Developing Applications for ios. Fall CS193p. Fall

VMware AirWatch SDK Plugin for Xamarin Instructions Add AirWatch Functionality to Enterprise Applicataions with SDK Plugins

VMware AirWatch Software Development Kit (SDK) Plugin v1.1 for Xamarin

BlackBerry Developer Global Tour. Android. Table of Contents

VMware AirWatch SDK Plugin for Xamarin Instructions Add AirWatch Functionality to Enterprise Applicataions with SDK Plugins

AppsFlyer SDK Integration - Android V 4.5.0

Login with Amazon. Getting Started Guide for ios apps

Login with Amazon. Getting Started Guide for Android apps

Table of Contents HOL-1757-MBL-5

AppsFlyer SDK Integration - Android V

Deploying a Signed ios Application to the Enterprise using Oracle Business Intelligence Mobile Security Toolkit

BlackBerry Developer Summit. A02: Rapid Development Leveraging BEMS Services and the AppKinetics Framework

This guide illustrates how to set up an Apple device for deployment, and deploy an application. It covers how to:

Integration and Configuration of the ios Tracking Library. Version rev e

1. Add your new app on AppsFlyer by using 9apps_int as channel name.

TomTom Mobile SDK QuickStart Guide

Software Development Kit for ios and Android

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

Kony MobileFabric Engagement Services QuickStart Guide

Table of Contents. VMware AirWatch: Technology Partner Integration

VMware AirWatch - Workspace ONE, Single Sign-on and VMware Identity Manager

Seamless Linking to Your App

Table of Contents HOL-1757-MBL-6

1 Build Your First App. The way to get started is to quit talking and begin doing. Walt Disney

Testing your TLS version

Stream iphone Sensor Data to Adafruit IO

VMware AirWatch SDK for ios (Swift) v17.5. Technical Implementation Guide Empowering your enterprise applications with MDM capabilities

Arise Documentation. Release 2.7. Arise.io

What s New in Core Data?

iphone Development Setup Instructions Nikhil Yadav Pervasive Health Fall 2011

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT g/sync-adapters/index.

What's New in Core Spotlight

SDK for ios (Swift) VMware Workspace ONE UEM

Mobile Speech Recognizer

VMware AirWatch - Mobile Application Management and Developer Tools

Deep Dive into the ArcGIS Geotrigger Service. Aaron CTO, Esri R&D Center Portland

Cocoa Touch Best Practices

How to customise and what you need to change

ios App Resigning and VoIP Certificate Guide

CMS and e-commerce Solutions. version 1.0. Please, visit us at: or contact directly by

Web Push Notification

Introduction to Android

CA Service Virtualization Test Drive

Google Maps Troubleshooting

Administering Jive Mobile Apps

Android ATC Android Security Essentials Course Code: AND-402 version 5 Hands on Guide to Android Security Principles

Extending Your Apps with SiriKit

Building Mapping Apps for ios With Swift

Chapter 5 Defining the Manifest

Handling App Links. Android Developers. This lesson teaches you to. See also

Using Deep Links for Growth. Phillip Nelson Director of Product, Quixey

How to Transfer Your Contact Information Into Microsoft Outlook 2010

Lab Android Development Environment

Walkthrough: Binding an ios Objective-C Library

Getting the Most Out of HealthKit

Quick Start Guide. For more information, please visit us at

ANDROID SDK. Developers Guide

In order to update you will have to uninstall the current version and install the newer version using the same procedure.

USER GUIDE. LitExtension: YAHOO STORE to Magento Migration Tool

NATIVE APP INTERCEPTS on ios & ANDROID

Services. service: A background task used by an app.

MageNative Apps User Guide Series

Corona SDK Device Build Guide

Lab 3: Using Worklight Server and Environment Optimization Lab Exercise

Android Sdk Setup For Windows 7 32 Bit Full Version

The Broadcast Class Registration Broadcast Processing

QUICK START GUIDE. Quick Start Guide. This will assist you to setup and distribute content to a StratosMedia Player device in 4 easy steps.

lecture 10 UI/UX and Programmatic Design cs : spring 2018

Adobe Campaign Standard

Linkify Documentation

Amazon Mobile Analytics. User Guide

Introduction to Siri Shortcuts

InstantSearch+ Documentation for WooCommerce

Universal Linking Developer s Guide Release

1. Add your new app on AppsFlyer by using 9apps_int as channel name.

VMware AirWatch Books Deployment Guide Distribute and deploy books

Configuring and Using Osmosis Platform

XML Tutorial. NOTE: This course is for basic concepts of XML in line with our existing Android Studio project.

Intents and Intent Filters

Installing and Building Apps on a Mac

Integration Service. Admin Console User Guide. On-Premises

Quick Online Shop Documentation

Installation Guide - Mac

Intents. Repo:

Notification SDK. Integration Guide 4.17

Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.

1. License. 2. Introduction. a. Read Leaderboard b. Write and Flush Leaderboards Custom widgets, 3D widgets and VR mode...

HPE AppPulse Mobile. Software Version: 2.1. Adding AppPulse Mobile to Your ios App

Quick Start: Creating a Video and Publishing in YouTube

Perceptive Interact for Salesforce Enterprise

Oracle Retail Accelerators for WebLogic Server 11g

Kony Visualizer. Wearables Developer's Guide

Mobile development initiation

Publisher v3 Documentation

Configuring the Android Manifest File

5. A small dialog window appears; enter a new password twice (this is different from Dori!) and hit Go.

INSANE NOTIFICATIONS AN EASY WAY TO HANDLE PUSH NOTIFICATIONS WITH XAMARIN

PILOT FM Radio SDK AUGUST 31, 2016


Transcription:

Oplytic Attribution V 1.2.0 December 2017 Oplytic provides attribution for app-to-app and mobile-web-to-app mobile marketing. Oplytic leverages the tracking provided by Universal Links (ios) and App Links (Android) to deliver the precise attribution and re-attribution needed for mobile marketers. Two-Step Set-Up Step 1: Set-Up with Oplytic Use the API or contact customer service to provide us with the following: General ios Android App Name (friendly one-word name) Bundle ID Team ID itunes App-Store Link Package Name SHA256 Cert Fingerprints After Oplytic receives the above information we will send you your app tracking link. For example, with an App Name of awesomeapp, your tracking link would be: - https://awesomeapp.oplct.com/ Append any parameters you want to be stored for attribution. If you are tracking campaign and affiliate, for example, your link might look like: - https://awesomeapp.oplct.com/?cid={campaign ID&affid={Affiliate ID Step 2: Add Oplytic to Your ios and Android Apps 1) Enable App Links: In XCode or Android Studio. 2) Include the Oplytic Library: Add the project / source files, or reference the binaries (SDK). 3) Use the Oplytic Library: Attribute app activity by adding just a few lines of code to your app. 1

ios Walk-Through Set-Up with Oplytic Register your app with the Oplytic API or customer service. Simply provide a friendly one-word app name, the Bundle ID and the Team ID. Grab the Bundle ID and Team ID from the XCode development environment. Look for these settings in the General tab, Identity and Signing sections. https://developer.apple.com/library/content/documentation/ides/conceptual/appdistribution Guide/ConfiguringYourApp/ConfiguringYourApp.html Add AppName Config Setting Open your app s Info.plist file, mouse-over the Information Property List and hit the + sign. In the new entry, add oplyticappname as the Key and your app-name as the Value. 2

Enable App Links App links enable your app to be launched directly from clicks on safari and other apps. Follow the standard Apple Universal Link scenario: https://developer.apple.com/ios/universal-links/ In your Apple itunes developer account, under App IDs, select your application and make sure Associated Domains are enabled. In XCode, select the project target, then click on the Capabilities tab. Scroll down to the Associated Domains option. Click on the button to turn it On, and then click on the + button to add the following item: 3

Make sure you specify the App-Name you provided to Oplytic instead of awesomeapp above. NOTE: If you want to access the deep-link-path and URL data yourself, you can access it via the useractivity.webpageurl attribute. NOTE: Due to an issue with ios browser security you cannot enter or copy/paste the above links directly into the Safari URL bar. However, you can embed the link in apps, web-pages, emails, or other forms of social media. Include the Oplytic Library 1. Un-zip the provided SDK zip file. 2. Add the Oplytic library project or source files directly to your project, or follow the steps below. 3. Open XCode and drag the included OplyticSDK.framework into your project. 4. Click on your project target and under the General tab click on the + button and add OplyticSDK.framework to the Embedded Binaries list: Use the Oplytic Library 4

Be sure to include Oplytic in any files that use the library: Import Oplytic 1) Start the Oplytic SDK Initialize the Oplytic SDK in your app delegate class. When the app is launched, start the SDK. Handle app-link events. Add the following boilerplate code to your AppDelegate class: func application(_ application: UIApplication, didfinishlaunchingwithoptions launchoptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { Oplytic.start() return true func application(_ application: UIApplication, continue useractivity: NSUserActivity, restorationhandler: @escaping ([Any]?) -> Void) -> Bool { Oplytic.handleUniversalLink(userActivity: useractivity) return true func application(_ application: UIApplication, willcontinueuseractivitywithtype useractivitytype: String) -> Bool { return useractivitytype == NSUserActivityTypeBrowsingWeb 2) Track App-Events There are just two methods for adding events. Make these calls whenever you want to track a purchase, registration, or other important app event. 5

The Oplytic SDK also tracks app installs and attribution events automatically. Each time the app is reached via an app-link, the SDK will register a new last-click attribution and all subsequent events and purchases will be credited to that link. AddEvent is a general-purpose method: public func addevent(eventaction: String? = nil, eventobject: String? = nil, eventid : String? = nil, str1: String? = nil, str2: String? = nil, str3: String? = nil, num1 : Double? = nil, num2: Double? = nil) 1) eventaction: a string associated with the event action, for example, view or shop. 2) eventobject: a string associated with the target of the event action, for example map or an object SKU. 3) eventid: a unique string that you can pass along to associate with the event. 4) str1, str2, str3: arbitrary strings associated with the event. You can use these to pass any sort of associated data for that event. 5) num1, num2: arbitrary Double numeric values associated with the event. You can use these to pass any sort of associated data for that event. AddPurchaseEvent is used specifically to track in-app purchases: public func addpurchaseevent(item : String, item_id: String, quantity: Double, price: Double, currency_unit : String) 1) item: Name of item being purchased. 2) Item_id: SKU or other ID associated with the item being purchased 3) quantity: Quantity of items being purchased. 4) price: Price of item being purchased. 5) currency_unit: String value representing the currency, for example: USD Handle Click Attribution Data (optional) If your app needs to know about the attributed click, assign an OplyticAttributionHandler protocol, like the simple ViewController example does below: 6

class ViewController: UIViewController, OplyticAttributionHandler { override func viewdidload() { Oplytic.OplyticAttributionHandler = self super.viewdidload() func onattribution(data: [String:String]){ //handle Attributed click query params 7

Android Walk-Through Set-up with Oplytic The Android SDK platform implements deep links via custom Intents. NOTE: The following assumes use of Google s Android Studio IDE. After receiving your Oplytic link, launch the app-linking wizard via menu Tools > App Links Assistant. Click on the Open URL Mapping Editor button. 8

Click > Create deep link paths for your links. *Be sure to prepend launch- In front of the paths for your intent filter. Feel free to customize your deep links with Path Patterns, Path Prefixes or just use a catch all.* path pattern. For example, if you want the link to go to your main activity you could setup an intent filter with a pathprefix. You would enter /main and select the correct activity. 9

Be sure to: 1. Select 2. Enter your link host 3. Select & enter /YourPath 4. Select the correct activity This will associate the URL with the app and activity. Once you click on OK you will see the selected path in the URL mapping screen. Find the intent filters generated by the URL mappings above in the AndroidManifest.xml file and add the android:autoverify="true" attribute. This will turn your Deep Link into an Android App Link which is a special type of deep link that allows your URLs to immediately open the corresponding content in your Android app without requiring the user to select the app through a disambiguation dialog box for phones with an API > 22. Clicking different app links from Gmail can spawn multiple instances of your app. This can result in odd behavior. As a solution Oplytic will take the intent and close the new instance and send the intent to the correct deep link location in the existing instance of the app. Include Oplytic s Activity in the Manifest and replace the host with your host. No launch- Needed here. <activity android:name="com.oplytic.oplyticsdk.oplyticactivity" android:launchmode="singletop"> <!-- This is for our app links to work --> <intent-filter android:autoverify="true"> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default" /> <category android:name="android.intent.category.browsable" /> <data android:host="{replace.oplct.com" android:pathpattern=".*" android:scheme="https" /> </intent-filter> </activity> To do further parsing with the URI use the code below. This can help to direct the user the proper item or location in the activity. Uri uri = getintent().getdata(); 10

NOTE: Intents and their associated data are cached. If you change the deep-link URLs during development and notice the newer URLs not being used, make sure you indicate that the app intents should not be backed up. In the AndroidManifest.xml file, add the following to the application tag: <application android:allowbackup="false" Next, scroll down to the Associate Website section and tap on the Open Digital Asset Links File Generator button. In the Site Domain enter the full URL that links to your app. Enter the Application ID for the app if it isn t already specified. Click on the Generate Digital Asset Links File button with your production keystore. This will generate SHA256_cert_fingerprints string to be sent to Oplytic. If you are using Google s app signing you will need to provide that app fingerprint instead which is located in the Google Play Console. Google Play Console > Select App > Release Management > App Signing 11

NOTE: Attributed links manually entered into the browser URL may not work. If the default browser is set to Chrome there may be issues with launching deep links. This article provides further information on Android deep-links and Chrome: https://paul.kinlan.me/deep-applinking-on-android-and-chrome/ To receive App Install events we need to add this code to your BroadcastReceiver. OplyticSDK.onReceive(context, intent); Or if your app isn t using a BroadcastReceiver or has a Multiple Install Broadcast Receiver include ours in your manifest as shown below. <!-- Handling install for attribution --> <receiver android:name="com.oplytic.oplyticsdk.appinstalllistener" android:exported="true" android:enabled="true"> <intent-filter> <action android:name="com.android.vending.install_referrer" /> </intent-filter> </receiver> Include the Oplytic Library To access the Oplytic SDK import the whole project, source files or SDK jar into your application project and add it to your module build gradle settings: dependencies { compile project(":oplyticsdk") Be sure to import the Oplytic package in all your app s class files that use it, such as Broadcast Receiver, application class and anywhere you push events. import com.oplytic.oplyticsdk.oplyticsdk; 12

Initialize the SDK In Your Application Class: package com.valuemags.offers; import android.app.application; import com.oplytic.oplyticsdk.oplyticsdk; public class OffersApplication extends Application { private static OffersApplication application; public static OffersApplication getinstance() { return application; @Override public void oncreate() { super.oncreate(); application = this; OplyticSDK.start(application, null); Or Oplytic s Application Class in the android manifest (If you are not using your own) <application android:name="com.oplytic.oplyticsdk.oplyticapplication" </application> NOTE: When creating the OplyticSDK you may pass in an advertisingid (optionally can be null): to be used as a unique device token. If none are sent, a random UUID will be generated by the SDK. Events Wherever you need to track app activity, make an event call to Oplytic. The general-purpose method for tracking an event is: 13

public static void addevent(string eventaction, String eventobject, String eventid, String str1, String str2, String str3, Double num1, Double num2) 1. eventaction: a string associated with the event action, for example, view, shop. 2. eventobject: a string associated with the target of the event action, for example map or an object SKU. 3. eventid: a unique string that you can pass along to associate with the event. 4. str1, str2, str3: arbitrary strings associated with the event. You can use these to pass any sort of associated data for that event. 5. num1, num2: arbitrary Double numeric values associated with the event. You can use these to pass any sort of associated data for that event. For purchase events another method is provided. This method ensures that the server can properly track and aggregate purchase events consistently. public static void addpurchaseevent(string item, String itemid, double quantity, double price, String currency_unit) 1. item: Name of item being purchased. 2. itemid: ID associated with the item being purchased (ex. SKU) 3. quantity: Quantity of items being purchased. 4. price: Price of item being purchased. 5. currency_unit: String value representing the currency of item, for example: USD Receive Attribution Events (Optional) If you would like to be notified of attribution events your Application class needs to implement the IAttributionHandler interface. We will pass a map of the parameters on the link that can be accessed in a key-value fashion. We will also pass in the raw URL. Below is a sample implementation. This must be done in your application class to ensure that you receive install attribution and the handler is initialized. You can pass in this to the: 14

OplyticSDK.start(singleton, null, this); as the handler. package com.oplytic.oplyticdemo; import com.oplytic.oplyticsdk.iattributionhandler; import com.oplytic.oplyticsdk.oplyticsdk; import android.app.application; import java.util.map; public class DemoApplication extends Application implements IAttributionHandler { private static DemoApplication singleton; public static DemoApplication getinstance() { return singleton; @Override public void oncreate() { super.oncreate(); singleton = this; OplyticSDK.start(singleton, null, this); public void onattribution(map<string, String> parameters, String DeepLinkURL){ //Access the parameters here String cid = parameters.get("cid"); 15