PhoneGap
- 主题:
- 移动营销
创建对象:
- 管理员
Marketo PhoneGap插件的集成
先决条件
- 在Marketo Admin中添加应用程序(获取应用程序密钥和Munchkin ID)。
- 设置推送通知(iOS | Android)。
- 安装PhoneGap/Cordova CLI。
安装说明
-
设置Marketo PhoneGap插件
如果已安装Cordova CLI,请转到PhoneGap应用程序目录并运行以下命令以将Marketo插件添加到应用程序中:
$ cordova plugin add https://github.com/Marketo/PhoneGapPlugin.git --variable APPLICATION_SECRET_KEY="YOUR_APPLICATION_SECRET"
-
安装FCM插件
$ cordova plugin add cordova-plugin-fcm
要确认插件已添加到应用程序中,请运行以下命令并验证
$ cordova plugin ls com.marketo.plugin 0.X.0 "MarketoPlugin" cordova-plugin-fcm 2.1.2 "FCMPlugin"
迁移到较新版本(可选)
要删除现有插件,请运行以下命令:
$ cordova plugin remove com.marketo.plugin
要重新添加插件,请运行以下命令:
$ cordova plugin add https://github.com/Marketo/PhoneGapPlugin.git --variable APPLICATION_SECRET_KEY="YOUR_APPLICATION_SECRET"
Cordova版本8.0.0 (Cordova@Android7.0.0)及更高版本
构建Cordova Android平台后,使用Android Studio打开该应用程序,并更新在com.marketo.plugin
文件夹中找到的Marketo.gradle
文件的dirs
值。
repositories{
jcenter()
flatDir{
dirs '../app/src/main/aar'
}
}
添加应用程序$cordova platform add android
$ cordova platform add ios
的目标平台
检查添加了$cordova platform ls
的平台列表
-
Firebase Cloud Messaging支持
-
在Firebase控制台上配置Firebase应用程序。
-
在🔗Firebase控制台上创建/添加项目。
- 在Firebase控制台中选择 Add Project。
- 从现有Google Cloud项目列表中选择您的GCM项目,然后选择 Add Firebase。
- 在Firebase欢迎屏幕中,选择“将Firebase添加到Android应用程序”。
- 提供您的包名称和SHA-1,然后选择 Add App。 已下载Firebase应用程序的新
google-services.json
文件。
-
在Project Overview中导航到 Project Settings
- 单击 General 选项卡。 下载“google-services.json”文件。
- 单击 Cloud Messaging 选项卡。 复制Server Key和Sender ID。 将这些Server Key和Sender ID提供给Marketo。
-
在Phonegap应用程序中配置FCM更改
-
将下载的
google-services.json
文件移到Phonegap应用程序模块的根目录中 -
从位置
platforms/android/app/src/main/java/com/gae/scaffolder/plugin
删除文件“MyFirebaseInstanceIDService”(已弃用) -
按如下方式修改位置
platforms/android/app/src/main/java/com/gae/scaffolder/plugin
中的文件“MyFirebaseMessagingService”: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 } }
-
按如下方式修改位置插件/cordova-plugin-fcm/scripts中的“fcm_config_files_process.js”文件
//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.在xCode中启用推送通知
在xCode项目中打开推送通知功能。
4.跟踪推送通知
将以下代码粘贴到application:didFinishLaunchingWithOptions:
函数中。
更新applicationDidBecomeActive
方法,如下所示
Marketo *sharedInstance = [Marketo sharedInstance];
[sharedInstance trackPushNotification:launchOptions];
更新applicationDidBecomeActive
方法,如下所示
let sharedInstance: Marketo = Marketo.sharedInstance()
sharedInstance.trackPushNotification(launchOptions)
5.初始化Marketo框架
要确保在应用程序启动时启动Marketo框架,请在主JavaScript文件的onDeviceReady
函数下添加以下代码。
请注意,我们必须将phonegap
作为PhoneGap应用的框架类型传递。
语法
// 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); }
);
参数
- 成功回调:Marketo框架初始化成功时要执行的函数。
- 失败回调:当Marketo Framework初始化失败时要执行的函数。
- MUNCHKIN ID :注册时从Marketo收到的Munchkin ID。
- 密钥:注册时从Marketo收到的密钥。
6.初始化Marketo推送通知
要确保启动Marketo推送通知,请在主JavaScript文件中添加初始化函数之后添加以下代码。
语法
// 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
);
参数
- 成功回调:Marketo推送通知初始化成功时要执行的函数。
- 失败回调:当Marketo推送通知初始化失败时要执行的函数。
- GCM_PROJECT_ID :创建应用程序后,在Google开发人员控制台中找到了GCM项目ID。
注销时也可以注销令牌。
marketo. uninitializeMarketoPush(
function() { console.log("Marketo push successfully uninitialized."); } ,
function(error) { console.log("an error occurred:" + error); }
);
关联潜在客户
您可以通过调用associateLead函数来创建Marketo Lead。
语法
marketo.associateLead(
function(){ console.log("MarketoSDK : Lead Added"); },
function(error){ console.log("an error occurred:" + error); },
'Lead_Data_JSON_String'
);
参数
- Success回调:在Marketo框架成功关联潜在客户时要执行的函数。
- 失败回调:当Marketo Framework无法关联潜在客户时要执行的函数。
- 潜在客户数据:JSON字符串格式的潜在客户数据。
示例
// 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)
);
报表操作
您可以通过调用reportaction
函数来报告用户执行的任何操作。
语法
marketo.reportaction(
function(){ console.log("MarketoSDK : New event sent "); },
function(error){ console.log("an error occurred:" + error); },
'Action_Name',
'Action_Data_JSON_String'
);
参数
- 成功回调:在Marketo Framework成功报告操作时执行的函数。
- 失败回调:Marketo Framework无法报告操作时要执行的函数。
- 操作名称:操作名称。
- 操作数据:JSON字符串格式的操作数据。
示例
// 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)
);
会话报告
绑定“暂停”和“恢复”事件类型,如下所示,以报告“开始”和“停止”事件。 用于跟踪在移动应用程序上花费的时间。 注意:这在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); }
);
},
创建潜在客户
可通过三种方式从混合应用程序创建潜在客户:
- MARKETO MME SDK
- MARKETO REST API
- 表单提交
根据使用的方法,新创建的潜在客户将由不同的触发器和过滤器识别。 使用MME SDK或REST API创建的潜在客户会出现在“创建的潜在客户”触发器和过滤器中。 通过提交表单创建的潜在客户显示在“填写表单”触发器和过滤器中。
最佳做法是在创建潜在客户时与Web应用程序使用的方法保持一致。 如果您已有使用表单提交作为创建潜在客户机制的Web应用程序,则在混合应用程序中创建潜在客户时,请使用该相同的机制。 如果您已有使用我们的REST API作为创建潜在客户机制的Web应用程序,请在混合应用程序中创建潜在客户时使用该相同的机制。 如果您未使用表单提交或REST API作为在Web应用程序中创建潜在客户的机制,则可以考虑使用MME SDK在Marketo中创建潜在客户。