Marketo Mobile SDK for PhoneGap
The Marketo Mobile SDK allows integration with Marketo Mobile Engagement (MME).
Plugin Change Log
v0.9.0 (June 05, 2023)
- Added parameter to capture the type of framework used for development (native, ionic, phonegap or reactnative)
v0.8.9 (March 06, 2023)
- iOS changes only - Upgraded SDK minimum iOS version support to 12.0 & enhancements
v0.8.8 (May 25, 2022)
- Added support for Android API Level 31
- Mnimum support Android API Level is now 21
v0.8.4 (March 22, 2021)
- Fixed Bugs
v0.8.2 (March 16, 2020)
- Fixed Bugs
v0.8.1 (March 06, 2020)
- Fixed Bugs
v0.8.0 (July 19, 2019)
- Fixed Bugs
v0.7.9 (June 01, 2019)
- Added support for Cordova 9.0.0 & Android 8.0.0
- Fixed Bugs
v0.7.8 (Dec 10, 2018)
- Added Support for Firebase Cloud Messaging in Android
- Fixed Bugs
v0.7.7 (May 25, 2018)
- Added Support for Android API Level P (28)
- Fixed Bugs
v0.7.6 (February 12, 2018)
- Updated Android framework
- Using Android Activity Lifecycle Callbacks
v0.7.5 (January 4, 2018)
- Updated iOS bundle and framework
- Minimum supported Cordova CLI version: 7.1.0
iOS Change Log
v0.8.1 (June 05, 2023)
- Added support for capturing framework type & bug fixes.
v0.8.0 (March 25, 2023)
- Upgraded SDK minimum iOS version support to 12.0 & enhancements
v0.7.9 (August 19, 2021)
- Bug fixes & enhancements.
v0.7.8 (March 16, 2020)
- Fixed unregistering push token issue.
v0.7.7 (March 6, 2020)
- Fixed Tap Activities that are Not Being Recorded
- Removed IOS_DIR as iOS doesn't support firebase
v0.7.6 (September 4, 2018)
- Fixed tap gesture error at In-app
v0.7.5 (September 8, 2017)
- Fixed build errors and warnings in xCode 9
v0.7.4 (July 7, 2017)
- Exposed removeDevicePushToken() method
v0.7.1 (November 24, 2016)
- Handling notification in loadingOptions for iOS 10 to track tap activity when app is closed.
v0.7.0 (October 5, 2016)
- Using UNNotification to handle push received while app is in foreground with a local notification
v0.6.4 (August 23, 2016)
- Exposed method [MarketoSDK reportAll] to immediately send events
v0.6.3 (July 15, 2016)
- Support for InApp display frequnecy once.
v0.6.0 (June, 11 2016)
- InApp Notifications
v0.5.1 - v0.5.3
- Fixed new_install bug
- Fix for version bug
v0.5.0
- Advanced secure access
- Bitcode refactor
Android Change Log
v0.8.9 (May 02, 2023)
- Added support for capturing framework type & bug fixes.
v0.8.7 (August 31, 2021)
- Bug Fixes and feature enhancements.
v0.8.2 (March 23, 2020)
- Added Android https TLSv1.3 compliance
v0.8.1 (Jul 18, 2019)
- Fixed Bugs
v0.8.0 (Mar 26, 2019)
- Fixed Bugs
v0.7.9 (Mar 04, 2019)
- FCM changes to support custom Marketo Push Notification Receiver
- Configured Push Notification Channel Name.
- Fixed Bugs
v0.7.8 (Dec 10, 2018)
- Added Support for Firebase Cloud Messaging
- Fixed Bugs
v0.7.7 (May 25, 2018)
- Added Support for Android API Level P (28)
- Fixed Bugs
v0.7.6 (January 18, 2018)
- Added support for Android API Levels 26 and 27
- Using Android Activity Lifecycle Callbacks
- Deprecated Marketo.onStart() and Marketo.onStop(), no longer required
- The minimum supported Android API Level is now 14
v0.7.5 (July 7, 2017)
- Fixed bug
v0.7.3 - v0.7.4 (July 7, 2017)
- Exposed removeDevicePushToken() method
- Notifications are now dismissed from the notification center after tap (Android 4.0)
- Custom large notification icon no longer shows default image (Android 4.0)
v0.7.2 (November 30, 2016)
- Fixed bug when using Priority method in Android versions previous to 5.0
- Default sound in Android is now on when user receives a notification
- Android Push Notification text now wrap to make it more readable
- Migrated from HttpClient to HttpURLConnection
v0.7.1 (November 4, 2016)
- Remove GET_ACCOUNTS permission check
- No longer stacking push notifications
- Catching client protocol exception
v0.7.0 (October 13, 2016)
- Supporting Android Version 7.0
v0.6.4 (August 22, 2016)
- Exposed method [MarketoSDK reportAll] to immediately send events
v0.6.3 (July 15, 2016)
- Bug fixes related to inapp
- added display frequency 'once'
v0.6.0 (June 10, 2016)
- InApp Notifications
v0.5.3
- Fixed bug that stop push notification when app was closed
v0.5.2
- Removed depricated android methods to allow building with Proguard
v0.5.1
- Fixed intent.getAction condition
v0.5.0
- New secure access feature
- New app type selection
- Android notificaiton config large icon
Contributing Code
We accept pull requests! Please raise a merge request.
Issues
If you encounter issues using or integrating this plugin, please file a support ticket at support.marketo.com
Marketo PhoneGap Plugin Installation Guide
Prerequisites
- Register an application in Marketo Admin portal, get your application secret key and munchkin id.
- Configure Android Push access learn here
- Configure iOS Push access learn here
Setup Marketo PhoneGap plugin
- Install Marketo PhoneGap Plugin using PhoneGap/Cordova CLI (Minimum supported version: 7.1.0): Please follow below steps or ensure you have latest cordova version installed on the system learn more
- Once it’s ready go to your PhoneGap application directory and run following command.
cordova plugin add https://github.com/Marketo/PhoneGapPlugin.git --variable APPLICATION_SECRET_KEY="YOUR_APPLICATION_SECRET"
Migrate to newer version
// This command will remove existing marketo plugin
cordova plugin remove com.marketo.plugin
// This command will add it again.
cordova plugin add https://github.com/Marketo/PhoneGapPlugin.git --variable APPLICATION_SECRET_KEY="YOUR_APPLICATION_SECRET"
This will add Marketo Plugin into your phonegap application.
Cordova version 8.0.0 (Cordova@Android7.0.0) and above
Once the Cordova Android platform is built, open the app with Android Studio and update the dirs value of the -Marketo.gradle file found in the com.marketo.plugin folder.
repositories{
jcenter()
flatDir{
dirs '../app/src/main/aar'
}
}
Firebase Cloud Messaging (FCM) Support
- Configure Firebase App on Firebase Console.
- Create/Add a Project on Firebase Console.
- In the Firebase console, select Add Project.
- Select your GCM project from the list of existing Google Cloud projects, and select Add Firebase.
- In the Firebase welcome screen, select Add Firebase to your Android App.
- Provide your package name and SHA-1, and select Add App. A new google-services.json file for your Firebase app is downloaded.
- Navigate to ‘Project Settings’ in Project Overview
- Click on ‘General’ tab. Download the ‘google-services.json’ file.
- Click on ‘Cloud Messaging’ tab. Copy ‘Server Key’ & ‘Sender ID’. Provide these ‘Server Key’ & ‘Sender ID’ to Marketo.
- Configure FCM changes in Phonegap App
- Move the downloaded ‘google-services.json’ file into your Phonegap app module root directory
- Create/Add a Project on Firebase Console.
Track Push Notifications
- Paste the following code inside the application:didFinishLaunchingWithOptions: function.
Objective-C
Marketo *sharedInstance = [Marketo sharedInstance];
[sharedInstance trackPushNotification:launchOptions];
Swift
let sharedInstance: Marketo = Marketo.sharedInstance()
sharedInstance.trackPushNotification(launchOptions)
Initialize Marketo Framework
- After successful installation, you need to initialize Marketo framework.
- Open your main js file and Add the following code under “onDeviceReady: function()”.
// This method will Initialize the Marketo Framework using Your MunchkinId and secret key
marketo.initialize(
function() { console.log("MarketoSDK Init done."); } ,
function(error) { console.log("an error occurred:" + error); },
'YOUR_MUNCHKIN_ID', 'YOUR_SECRET_KEY', 'YOUR_MOBILE_FRAMEWORKTYPE'
);
// For session tracking, please add following.
marketo.onStart(
function(){console.log("onStart.");},
function(error){console.log("Failed to report onStart." + error);}
);
Initialize Marketo Push Notification :
- After Initializing Marketo SDK successfully , you need to setup push notification.
- Open your main js file and Add the following code under “onDeviceReady: function()” after marketo.initialize function.
// This function will Enable user notifications (will prompt the user to accept push notifications in iOS)
marketo. initializeMarketoPush(
function() { console.log("Marketo push successfully initialized."); } ,
function(error) { console.log("an error occurred:" + error); },
GCM_PROJECT_ID // this is required for Android and will be ignored in iOS
);
Note: You can get your GCM Project ID from Google Developer Console https://console.developers.google.com/
######The token can also be unregistered when user logs out.
marketo. uninitializeMarketoPush(
function() { console.log("Marketo push successfully uninitialized."); } ,
function(error) { console.log("an error occurred:" + error); }
);
Marketo Associate Lead:
- You can create a Marketo Lead by calling associate lead method.
// First create a lead as below
var lead_obj = {};
lead_obj[marketo.KEY_FIRST_NAME]= "John";
lead_obj[marketo.KEY_LAST_NAME]= "Erickson";
lead_obj[marketo.KEY_EMAIL]= "johnE@marketo.com";
lead_obj[marketo.KEY_ADDRESS]= "901 Mariners Island Boulevard";
lead_obj[marketo.KEY_CITY]= "San Mateo";
lead_obj[marketo.KEY_STATE]= "CA";
lead_obj[marketo.KEY_COUNTRY]= "USA";
lead_obj[marketo.KEY_POSTAL_CODE]= "94404";
lead_obj[marketo.KEY_GENDER]= "Male";
// Use associate function to associate it.
marketo.associateLead(
function() {
console.log("MarketoSDK : Lead Associated");
},
function(error) {
console.log("an error occurred:" + error);
},
JSON.stringify(lead_obj)
);
Marketo Report Action:
- You can report any user performed action by calling the reportaction method.
// First create an event as below
var event = {
"Action Type":"Add To Cart",
"Action Details":"Adding Product in cart",
"Action Metric":"10",
"Action Length":"1"
}
marketo.reportaction(
function(){console.log("Reported Action Successfully.");},
function(error){console.log("Failed to report Action." + error);},
"Add To Cart",
JSON.stringify(event)
);
###Marketo Report All Actions:
- You can report any user performed action by calling the reportaction method.
marketo.reportAll(
function(){console.log("Reported All Actions Successfully.");},
function(error){console.log("Failed to report Actions." + error);}
);
Marketo session reporting
- Bind pause and resume events as show below to report Start and stop to track time spent in mobile application.(Note this is required in android) .
//Add the following code in your www/js/index.js
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
document.addEventListener('pause', this.onStop, false);
document.addEventListener('resume', this.onStart, false);
},
onStop: function() {
marketo.onStop(
function(){console.log("onStop");},
function(error){console.log("Failed to report onStop." + error);});
},
onStart: function() {
marketo.onStart(
function(){console.log("onStart.");},
function(error){console.log("Failed to report onStart." + error);});
},