如果您想将应用程序部署到多个平台(例如:iOS、Android等),您需要在控制面板中创建一个单独的Playnomics应用程序。每个应用程序都有自己的<APPID>
,用于跟踪和信息集成。
支持iOS 5及以后版本。
您可以从我们的发布页面下载SDK,或者使用pod "Playnomics"
将其添加到您的CocoaPods Podfile
中。
所有必要的安装文件都在Playnomics文件夹中
您还可以从这个仓库中fork,构建PlaynomicsSDK项目。
通过Xcode将SDK文件导入现有应用程序。
要跟踪用户互动数据,您首先需要启动一个会话。**在完成此操作之前,其他SDK调用将不起作用**。
在实现AppDelegate
的类中,在didFinishLaunchingWithOptions
方法中启动PlayRM会话。
#import "AppDelegate.h"
#import "Playnomics.h"
@implementation AppDelegate
- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
const unsigned long long applicationId = <APPID>;
[Playnomics startWithApplicationId:applicationId];
//other code to initialize your iOS application below this
}
您可以为每个用户提供一个动态的<USER-ID>
来识别他们
+ (BOOL) startWithApplicationId:(unsigned long long) applicationId andUserId: (NSString *) userId;
或者让PlayRM为用户提供一个最佳尝试的唯一标识符
+ (BOOL) startWithApplicationId:(unsigned long long) applicationId;
如果您选择提供一个<USER-ID>
,此值应该是持久的、匿名化且每个用户唯一的。这通常是在用户启动应用程序时根据需要动态确定的。一些可能的实现
您不能使用用户的Facebook ID或任何个人可识别信息(纯文本电子邮件、姓名等)作为<USER-ID>
。
为了跟踪用户强度,PlayRM需要了解应用程序中发生的UI事件。我们提供了一个实现UIApplication怠
的版本,它将自动捕获这些事件。在您iOS应用程序的main.m
文件中,您将此类名称传递给UIApplicationMain
方法
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "Playnomics.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, NSStringFromClass([PNApplication class]), NSStringFromClass([AppDelegate class]));
}
}
如果您已经在main.m中实现了自己的UIApplication
,只需将以下代码片段添加到您的类实现中
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "Playnomics.h"
@implementation YourApplication
- (void) sendEvent: (UIEvent *) event {
[super sendEvent:event];
[Playnomics onUIEventReceived:event];
}
@end
本指南假设您已经熟悉放置和消息的概念,并且已经为您的应用程序设置了所有相关的placements
。
如果您是PlayRM的消息功能的初学者,请参考集成文档。
一旦创建所有放置及其相关的<PLACEMENT-ID>
,您就可以开始集成过程。
我们建议在您的应用程序加载时预加载所有放置,这样您就可以在必要时快速显示消息。
+ (void) preloadPlacementsWithNames:(NSString *) firstPlacementName, ... NS_REQUIRES_NIL_TERMINATION;
//...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Playnomics startWithApplicationId:applicationId];
//preloads placements at app start
[Playnomics preloadPlacementsWithNames:@"placement 1", @"placement 2", @"placement 3", @"placement 4", nil];
//...
}
然后,当您准备好时,您可以显示放置
+ (void) showPlacementWithName:(NSString *) placementName;
名称 | 类型 | 描述 |
---|---|---|
placementName |
NSString* | 放置的唯一标识符 |
可选地,将一个可以响应PlaynomicsPlacementDelegate
协议的类与该放置相关联,以处理丰富数据回调。有关更多信息,请参阅使用丰富数据回调。
+ (void) showPlacementWithName:(NSString *) placementName
delegate:(id<PlaynomicsPlacementDelegate>) delegate;
名称 | 类型 | 描述 |
---|---|---|
placementName |
NSString* | 放置的唯一标识符 |
delegate |
id |
处理丰富数据回调,请参阅使用丰富数据回调。此代理不是retained ,您负责管理此对象的生命周期。 |
默认情况下,SDK在Root ViewController
的视图中渲染放置。如果您的应用程序使用多个ViewController
,您需要通过调用以下方式显式设置放置的父视图
+ (void) setPlacementParentView:(UIView *) parentView;
名称 | 类型 | 描述 |
---|---|---|
parentView |
UIView* | 放置应渲染的父视图。 |
在调用showPlacementWithName
之前执行此操作
-(void) viewDidLoad {
//Show the placement after the ViewController has been loaded
[Playnomics setPlacementParentView: self.view];
[Playnomics showPlacementWithName:@"placement 1"];
}
通过实现PlaynomicsPlacementDelegate
,您的应用程序可以在放置
@protocol PlaynomicsPlacementDelegate <NSObject>
@optional
-(void) onShow: (NSDictionary *) jsonData;
-(void) onTouch: (NSDictionary *) jsonData;
-(void) onClose: (NSDictionary *) jsonData;
-(void) onDidFailToRender;
@end
对于这些事件中的每一个,您的代理也可能收到与这个创意相关联的丰富数据。丰富数据是与您的消息创意关联的JSON消息。在所有情况下,jsonData
值可以是nil
。
您的JSON消息的实际内容可以延迟到消息活动配置时。但是,您在应用程序中处理它之前需要确定消息的结构。有关更多信息,请参阅丰富数据的示例用法。
安装完成后,您应该通过检查应用程序页面中的集成验证部分来验证您的应用程序是否正确集成。
使用iOS SDK v1.4.0+,您可以注册您的设备作为测试设备,并在应用程序的自我检查页面上验证您的活动:https://controlpanel.playnomics.com/applications/<APPID>
要测试您的应用内活动,您可以输入您的IDFV(供应商id)并选择要落入的段。可选地,您可以选择不选择任何段,只需查看您的设备数据通过验证器流动。
此页面将实时更新事件,并标记任何错误。
我们强烈建议在将新集成的应用程序部署到生产之前运行自我检查验证器。
PlayRM 允许您通过以真实美元计价的内购来跟踪货币化。
+ (void) transactionWithUSDPrice: (NSNumber *) priceInUSD
quantity: (NSInteger) quantity;
名称 | 类型 | 描述 |
---|---|---|
priceInUSD |
NSNumber * | 物品的美元价格。 |
quantity |
NSInteger | 以指定价格购买的商品数量。 |
NSNumber * priceInUSD = [NSNumber numberWithFloat:0.99];
NSInteger quantity = 1;
[Playnomics transactionWithUSDPrice: priceInUSD quantity: quantity];
PlayRM 允许您基于安装归因来源进行跟踪和细分。您可以在像 AdMob 或 MoPub 这样的来源级别跟踪它,并可选地包括一个活动和安装日期。默认情况下,PlayRM 通过我们看到用户参与日期的第一天跟踪安装日期。
+ (void) attributeInstallToSource:(NSString *) source;
+ (void) attributeInstallToSource:(NSString *) source
withCampaign:(NSString *) campaign;
+ (void) attributeInstallToSource:(NSString *) source
withCampaign:(NSString *) campaign
onInstallDate:(NSDate *) installDate;
名称 | 类型 | 描述 |
---|---|---|
source |
NSString * | 安装的来源。 |
campaign |
NSString * | 此来源的活动。 |
installDate |
NSDate * | 用户安装您应用的日期。 |
[Playnomics attributeInstallToSource:@"AdMob" withCampaign:@"Holiday" onInstallDate:[NSDate date]];
自定义事件可以以多种方式使用。它们可以用来跟踪某些关键的内购事件,如完成教程或获得高分。它们也可以用来跟踪其他重要的生命周期事件,如等级提升、区域解锁等。默认情况下,PlayRM 支持最多五个自定义事件。然后您可以使用这些自定义事件创建更针对特定受众的细分。
每次用户完成某个事件时,请使用此调用进行跟踪
+ (void) customEventWithName: (NSString *) customEventName;
名称 | 类型 | 描述 |
---|---|---|
customEventName |
NSString * | 一个用于标识事件的字符串。 |
用户完成事件时的客户端调用示例,带有生成的 ID
[Playnomics customEventWithName: @"level 1 complete"];
请查看 维基页面 以设置推送通知。
如果您有任何问题或问题,请联系 [email protected]。
在这里查看版本标签 这里