无标题文章

也许你需要这要一个功能,比如商城网站的品牌列表,及某品牌下的所有商品,或者店铺列表以及该店铺下的所有商品,发布商品时可以选择店铺。

[更新日志][1]  [1]:
1. 选择 SDK 安装方式
请确保您的 XCode 版本为 7.3 或者其后的版本。 GrowingIO 支持两种 iOS SDK
安装方式: A. 使用 CocoaPods 管理依赖  1. 添加 `pod ‘GrowingIO’` 到
Podfile 中;  2. 执行 `pod
update`,**不要用`–no-repo-update`选项**;  3.
直接进入**安装文档的第五步**;B. 手动安装依赖  1.
点击[![][2]][3]下载 iOS SDK  2. 进行安装文档的第二步  [2]:
  [澳门新葡亰手机版,3]:
2. 导入 SDK
按照以下步骤将SDK导入到您的项目中。  1. 解压 iOS SDK 压缩文件;  2. 添加
Growing.h 和 libGrowing.a 添加到您的 iOS 工程中;提醒:  * 记得勾选
“Copy items if needed”## 3. 添加依赖 在您的工程项目中添加依赖
库名称说明Foundation.framework 基础依赖库 Security.framework
用于APP连接圈选页面SSL连接 CoreTelephony.framework 用于读取运营商名称
SystemConfiguration.framework 用于判断网络状态 libicucore.tbd
用于APP连接圈选页面解析 libsqlite3.tbd 存储日志 CoreLocation.framework
用于读取地理位置信息(如果您的app有权限) 提醒:  *
添加项目依赖库的位置在 项目设置target -> 选项卡General -> Linked
Frameworks and Libraries## 4. 添加编译参数
在您的工程项目中添加编译参数  1. 找到 Linking 设置  2. 在 Other Linker
Flags 中添加 -ObjC 参数,请注意大小写提醒:  * Linking 设置位于
项目设置 target -> 选项卡 Build Settings,左上角选择 All。## 5.
添加初始化函数 在 AppDelegate 中引入`#import
“Growing.h”`并添加启动方法        – (BOOL)application:(UIApplication
*)application        didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions {          …          // 启动GrowingIO             
[Growing startWithAccountId:@”0a1b4118dd954ec3bcc69da5138bdb96”];     
    // 其他配置          // 开启Growing调试日志 可以开启日志          //
[Growing setEnableLog:YES];     
}请确保将代码添加在上面描述的位置,添加到其他函数中或者异步 block
中可能导致数据不准确。## 6. 添加URL Scheme 把 URL Scheme
添加到您的项目,以便我们唤醒您的程序,进行圈选。 URL Scheme
获取方式有两种 1. 添加新产品:登录官网 -> 点击新建,选择添加新产品
-> 选择添加 iOS 应用 -> 在第二段“添加 URL Scheme ”中标黄字体。 2.
现有产品:登录官网 -> 右上角点击用户头像 -> 点击“项目管理” ->
点击左侧的“应用管理” -> 找到对应产品的 URL Scheme。 URL Scheme
的格式是 growing.xxxxxxxxxxxxxxxx。  1. 添加您的 URL
Scheme(growing.xxxxxxxxxxxxxxxx)到项目中,URL Scheme 位于项目设置
target -> 选项卡 Info -> URL Types;  2. 在 AppDelegate 中调用函数
[Growing handleUrl:] 来接收 URL        –
(BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation    {        if ([Growing handleUrl:url])   
    {            return YES;        }        …        return NO;   
}提醒:  * 如果您的 AppDelegate
中,实现了其中一个或者多个方法,请在已实现的函数中,调用 `[Growing
handleUrl:]`:        – (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url sourceApplication:(nullable NSString
*)sourceApplication annotation:(id)annotation    –
(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL
*)url    – (BOOL)application:(UIApplication *)app openURL:(NSURL
*)url options:(NSDictionary*)options

当然是可以实现的,

* 如果以上所有函数都未实现,则请实现以下方法并调用 `[Growing
handleUrl:]`:

这里以商城店铺为例,发布商品时选择关联店铺,如下图:

– (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(nullable NSString *)sourceApplication
annotation:(id)annotation

商品详情页显示所属店铺,也有一个页面为显示该店铺下的所有商品,

* 实际情况可能很复杂,请在调试时确保函数 `[Growing handleUrl:]`
会被执行到

方法如下:

### 下方各个配置项将影响统计的准确性,请务必仔细阅读,判断是否需要

第一步:将商品的所属店铺字段与店铺的店铺名称关联起来,就可以如第一张图一张,发布商品时就可以选择店铺了,

## 7. 重要配置项

具体关联方法请看官网教程:

### 设置界面元素ID

第二步:在店铺详情页调用显示
与该店铺名称关联的所有商品以达到显示该店铺下所有商品的目的,调用代码如下:

当您的应用界面改版时,可能会导致无法准确地统计已经圈选的元素。

[e:loop={'shop',10,18,0,dianpu='$navinfor[title]'}]a href=?=$bqsr[titleurl]??=$bqr[title]?/a br [/e:loop]

因此,对于应用中的主要流程涉及到的界面元素,建议您对它们设置固定的唯一ID,以保证数据的一致性。

shop 为商品数据表名,dianpu
为商品的所属店铺字段名,title为店铺名字段。具体请看:

具体要求

到此,调用结束,已成功实现显示该店铺下所有商品了。

  1. 主要流程指的是登录、注册、购买、发帖等操作步骤。

  2. 设置ID的对象是界面的重要按钮等元素,如“注册”、“结算”、“发布”按钮。

  3. 设置ID的方法如下:

但还有一个问题,因为帝国CMS默认调用信息是没有分页功能的,如果该店铺下的商品太多了,没有分页功能将非常不爽,实现分页功能请看本站另一篇文章:

(1)接口

@interface UIView(GrowingAttributes)

@property (nonatomic, copy)  NSString* growingAttributesUniqueTag;

@end

(2)代码写法:请加在viewWillAppear或者时机更早的函数里。

-(void)viewWillAppear

{

UIView * MyView;

MyView.growingAttributesUniqueTag = @”my_view”;

}

(3)ID只能设置为字母、数字和下划线的组合。

(4)对于已经集成过旧版SDK并圈选过的应用,对某个元素设置ID后再圈选它,指标数值会从零开始计算,类似初次集成SDK后发版的效果,但不影响之前圈选的其它指标数据。如果不希望出现这种情况,请不要使用这个方法。

### 采集广告Banner数据

很多应用上方都有横向滚动的Banner广告。

对于这样的广告,如果要收集数据,请在响应点击的控件上添加如下代码

UIView *view;

view.growingAttributesValue = 广告的唯一ID;

其中view是您的广告元素,请确保两点:

  1. 对不同广告图,广告的唯一ID也不相同。

  2. 响应点击的控件,与设置ID的控件是同一个

例如,当您的横向滚动广告共有3张广告图时,您可以在3个响应点击的View上分别设置不同的广告唯一ID,类似如下效果:

view1.growingAttributesValue = @“ad1”;

view2.growingAttributesValue = @“ad2”;

view3.growingAttributesValue = @“ad3”;

此外,当您想采集一些可能没有文字的控件(比如UIImageView,UIView)时,也可以给属性growingAttributesValue赋值作为文字,用来在圈选的时候区分不同的内容。

### 页面别名

对于iOS应用,页面指的是`UIViewController`。

有些时候,对于完成某个功能的页面,统计时可能需要进一步细分。
比如,对于展示商品列表的页面,需要区分衣物类商品,以及食品类商品的两种列表的访问量。

为处理这种场景,我们提供了取别名的方法来区分这两种情况下的页面,接口如下:

@interface UIViewController(GrowingAttributes)

@property (nonatomic, copy)  NSString* growingAttributesPageName;

@end

**我们举例来具体说明它的用法。**

1.
某个应用的商品列表页是用`ListViewController`实现的,所以默认的页面名称都是`ListViewController`。

2.
如果想区分衣物类商品列表和食品类商品列表,分别看它们的浏览量,可以这样做:

//ListViewController类的实现文件

-(void)viewWillAppear

{

if (展示衣物类商品)

{

self.growingAttributesPageName = @”衣物商品列表”;

}

else if (展示食品类商品)

{

self.growingAttributesPageName = @”食品商品列表”;

}

}

请注意

  1. 必须在该 UIViewController 的 viewWillAppear
    或者更早时机的函数中完成该属性的赋值操作。

  2. 页面别名只能设置为字母、数字和下划线的组合。

  3. 为查看数据方便,请尽量对iOS和安卓的同功能页面取不同的名称。

### 采集输入框数据

如果您需要采集应用内某个输入框内的文字(例如搜索框),请调用如下接口进行设置

`UIView * view; // view可以是UITextField, UITextView, UISearchBar …
view.growingAttributesDonotTrackValue = NO;`

其中,view代表要被采集的输入框。
当这个输入框失去焦点(包括应用退到后台),且输入框内容跟获取焦点前相比发生变化时,输入框内文字会被发送回GrowingIO。
请注意:对于密码输入框,即便标记为需要采集,SDK也会忽略,不采集它的数据。

### Facebook广告SDK

如果使用了Facebook广告SDK,请务必添加以下代码来避免冲突,否则可能造成无法创建项目或者统计准确性问题。

请在main函数第一行调用下方函数。APP启动后,将不允许修改采集模式。

`[Growing setAspectMode:GrowingAspectModeDynamicSwizzling]`

### 采集H5页面数据

会自动采集H5页面的数据,不需要特殊配置。

### 采集GPS数据

如果您的应用有相应权限,我们将自动采集您的GPS数据。

## 8. 其他配置项

### 自定义维度

GrowingIO的数据分析工具提供了例如“应用版本”,“渠道”,“城市”,“设备型号”等等这些通用维度。但在使用过程中,有时无法满足用户对特定数据维度的分析要求。

为了能够让数据分析变得更加的灵活,我们提供了自定义维度的接口,使用者可以对各种对象设置属性。

**这些属性在作图时,将表现为维度。**

#### 用户属性

用户属性只能用来表示登录用户本身的属性,至少包括用户ID。

根据需求,可以用来指定用户的各种属性 1. 自然属性,比如性别、出生年月等。

  1. 账户属性,比如等级、类型标签等。 3.
    行为特征,比如是否有过购买记录之类。

用户属性被称为CS字段,最多支持十个,从CS1到CS10。

**我们举例说明它的用法。**

总计上传5个用户属性,分别是

CS1: user_id:100324

CS2: company_id:943123

CS3: user_name:张溪梦

CS4: company_name:GrowingIO