PhoneGap
Integración del complemento PhoneGap de Marketo
Requisitos previos
- Agregue una aplicación al administrador de Marketo (obtenga la clave secreta de su aplicación y el ID de Munchkin).
- Configurar notificaciones push (iOS | Android).
- Instalar PhoneGap/Cordova CLI.
Instrucciones de instalación
-
Configurar el complemento PhoneGap de Marketo
Si la CLI de Cordova está instalada, vaya al directorio de aplicaciones de PhoneGap y ejecute el siguiente comando para agregar el complemento de Marketo a la aplicación:
$ cordova plugin add https://github.com/Marketo/PhoneGapPlugin.git --variable APPLICATION_SECRET_KEY="YOUR_APPLICATION_SECRET" -
Instalación del complemento FCM
$ cordova plugin add cordova-plugin-fcmPara confirmar que el complemento se ha agregado a la aplicación, ejecute el siguiente comando y verifique
$ cordova plugin ls com.marketo.plugin 0.X.0 "MarketoPlugin" cordova-plugin-fcm 2.1.2 "FCMPlugin"
Migrar a una versión más reciente (opcional)
Para eliminar un complemento existente, ejecute el siguiente comando:
$ cordova plugin remove com.marketo.plugin
Para volver a añadir el complemento, ejecute el siguiente comando:
$ cordova plugin add https://github.com/Marketo/PhoneGapPlugin.git --variable APPLICATION_SECRET_KEY="YOUR_APPLICATION_SECRET"
Cordova versión 8.0.0 (Cordova@Android7.0.0) y superior
Una vez creada la plataforma Cordova Android, abra la aplicación con Android Studio y actualice el valor dirs del archivo Marketo.gradle que se encuentra en la carpeta com.marketo.plugin.
repositories{
jcenter()
flatDir{
dirs '../app/src/main/aar'
}
}
Agregar las plataformas de destino para la aplicación $cordova platform add android $ cordova platform add ios
Comprobar la lista de plataformas agregadas $cordova platform ls
-
Compatibilidad con Firebase Cloud Messaging
-
Configure la aplicación Firebase en la consola de Firebase.
-
Crear/agregar un proyecto en 🔗consola Firebase.
- En la consola de Firebase, seleccione Agregar proyecto.
- Seleccione el proyecto GCM de la lista de proyectos existentes de Google Cloud y seleccione Agregar Firebase.
- En la pantalla de bienvenida de Firebase, seleccione "Añadir Firebase a su aplicación de Android".
- Proporcione su nombre de paquete y SHA-1, y seleccione Agregar aplicación. Se ha descargado un nuevo archivo de
google-services.jsonpara la aplicación Firebase.
-
Vaya a Configuración del proyecto en Información general del proyecto
- Haga clic en la ficha General. Descargue el archivo "google-services.json".
- Haga clic en la ficha Mensajería de nube. Copiar clave de servidor y identificador de remitente. Proporcione estas clave de servidor y ID de remitente a Marketo.
-
Configuración de cambios de FCM en la aplicación Phonegap
-
Mueva el archivo "google-services.json" descargado al directorio raíz del módulo de la aplicación de PhoneGap
-
Quite el archivo 'MyFirebaseInstanceIDService' de la ubicación
platforms/android/app/src/main/java/com/gae/scaffolder/plugin(obsoleto) -
Modifique el archivo 'MyFirebaseMessagingService' en la ubicación
platforms/android/app/src/main/java/com/gae/scaffolder/pluginde la siguiente manera:code language-none import com.marketo.Marketo; public class MyFirebaseMessagingService extends FirebaseMessagingService{ @Override public void onNewToken(String s){ super.onNewToken(s); MarketoExtension.setPushNotificaitonTokens(s); //Add your code here } @Override public void onMessageReceived(RemoteMessage remoteMessage) { MarketoExtension.showPushNotificaiton(remoteMessage); //Add your code here } }-
Modifique el archivo "fcm_config_files_process.js" en plugins de ubicación/cordova-plugin-fcm/scripts de la siguiente manera
code language-none //change var strings = fs.readFileSync("platforms/android/res/values/strings.xml").toString(); //to var strings = fs.readFileSync("platforms/android/app/src/main/res/values/strings.xml").toString(); //AND change fs.writeFileSync("platforms/android/res/values/strings.xml", strings); //to fs.writeFileSync("platforms/android/app/src/main/res/values/strings.xml", strings);
-
-
-
3. Activar notificaciones push en xCode
Active la capacidad de notificación push en el proyecto de xCode.
4. Rastrear notificaciones push
Pegue el siguiente código dentro de la función application:didFinishLaunchingWithOptions:.
Actualice el método applicationDidBecomeActive como se muestra a continuación
| code language-none |
|---|
|
Actualice el método applicationDidBecomeActive como se muestra a continuación
| code language-none |
|---|
|
5. Inicializar Marketo Framework
Para asegurarse de que el marco de trabajo de Marketo se inicia al iniciar la aplicación, agregue el siguiente código en la función onDeviceReady de su archivo JavaScript principal.
Tenga en cuenta que debemos pasar phonegap como tipo de marco de trabajo para aplicaciones PhoneGap.
Sintaxis
// 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',
'FRAMEWORK_TYPE'
);
// For session tracking, add following.
marketo.onStart(
function(){ console.log("onStart."); },
function(error){ console.log("Failed to report onStart." + error); }
);
Parámetros
- Llamada de retorno de éxito : función que se ejecuta si el marco de trabajo de Marketo se inicializa correctamente.
- Callback Failure : función que se ejecuta si el marco de trabajo de Marketo no se puede inicializar.
- MUNCHKIN ID : Munchkin ID recibido desde Marketo en el momento del registro.
- CLAVE SECRETA: Clave secreta recibida de Marketo en el momento del registro.
6. Inicializar la notificación push de Marketo
Para asegurarse de que se inicia la notificación push de Marketo, agregue el siguiente código después de la función initialize en el archivo JavaScript principal.
Sintaxis
// This function will Enable user notifications (prompts 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); },
'YOUR_GCM_PROJECT_ID' // This is required for Android and will be ignored in iOS
);
Parámetros
- Llamada de retorno de éxito : función que se ejecuta si la notificación push de Marketo se inicializa correctamente.
- Función de devolución de llamada de error : que se ejecuta si la notificación push de Marketo no se inicializa.
- GCM_PROJECT_ID : Se encontró el ID del proyecto GCM en Google Developers Console después de crear la aplicación.
También se puede anular el registro del token al cerrar la sesión.
marketo. uninitializeMarketoPush(
function() { console.log("Marketo push successfully uninitialized."); } ,
function(error) { console.log("an error occurred:" + error); }
);
Asociar posible cliente
Puede crear un posible cliente de Marketo llamando a la función associatedLead.
Sintaxis
marketo.associateLead(
function(){ console.log("MarketoSDK : Lead Added"); },
function(error){ console.log("an error occurred:" + error); },
'Lead_Data_JSON_String'
);
Parámetros
- Llamada de retorno de éxito: función que se ejecuta si el marco de trabajo de Marketo asocia correctamente al posible cliente.
- Función de devolución de llamada de error : que se ejecuta si el marco de trabajo de Marketo no puede asociar el posible cliente.
- Datos de posibles clientes: datos de posibles clientes en formato de cadena JSON.
Ejemplo
// First create a lead as shown below
var lead = {};
lead[marketo.KEY_FIRST_NAME] = "Phone";
lead[marketo.KEY_LAST_NAME] = "Gap";
lead[marketo.KEY_EMAIL] = email;
lead[marketo.KEY_ADDRESS] = "demo address";
lead[marketo.KEY_CITY] = "city";
lead[marketo.KEY_STATE] = "state";
lead[marketo.KEY_COUNTRY] = "country";
lead[marketo.KEY_POSTAL_CODE] = "postalCode";
lead[marketo.KEY_GENDER] = "gender";
// To use lead custom field, use the REST API NAME as key
lead["REST API NAME"] = "value";
// Use associateLead function to associate it.
marketo.associateLead(
function() { console.log("MarketoSDK : Lead Associated"); },
function(error) { console.log("an error occurred:" + error); },
JSON.stringify(lead)
);
Acción de informe
Puede informar de cualquier acción realizada por un usuario llamando a la función reportaction.
Sintaxis
marketo.reportaction(
function(){ console.log("MarketoSDK : New event sent "); },
function(error){ console.log("an error occurred:" + error); },
'Action_Name',
'Action_Data_JSON_String'
);
Parámetros
- Llamada de retorno de éxito : función que se ejecuta si el marco de trabajo de Marketo informa de la acción correctamente.
- Callback Failure : función que se ejecuta si el marco de trabajo de Marketo no informa de la acción.
- Nombre de la acción: nombre de la acción.
- Datos de acción: datos de acción en formato de cadena JSON.
Ejemplo
// 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)
);
Informes de sesión
Enlace los tipos de evento de "pausa" y "reanudación" como se muestra a continuación a los eventos de inicio y parada del informe. Se utiliza para rastrear el tiempo empleado en la aplicación móvil. Nota: Esto es obligatorio en Android.
//Add the following code in your www/js/index.js
bindEvents: function() {
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); }
);
},
Creación de posibles clientes
Existen tres formas de crear posibles clientes a partir de una aplicación híbrida:
- MARKETO MME SDK
- API DE REST DE MARKETO
- Envío de formulario
Según el método utilizado, distintos déclencheur y filtros reconocerán un posible cliente recién creado. Los posibles clientes creados con la API de MME SDK o REST aparecen en los déclencheur y filtros "Posible cliente creado". Los posibles clientes creados por los envíos de formularios aparecen en los déclencheur y filtros "Rellena el formulario".
La práctica recomendada es mantener la coherencia con el método utilizado por la aplicación web al crear posibles clientes. Si ya tiene una aplicación web que utiliza el envío de formularios como mecanismo para crear posibles clientes, utilice el mismo mecanismo al crear posibles clientes en la aplicación híbrida. Si ya tiene una aplicación web que utiliza nuestra API de REST como mecanismo para crear posibles clientes, utilice el mismo mecanismo al crear posibles clientes en la aplicación híbrida. En los casos en los que no utilice ni el envío de formularios ni la API de REST como mecanismo para crear posibles clientes en la aplicación web, puede considerar la posibilidad de utilizar MME SDK para crear posibles clientes en Marketo.