Playnomics 1.5.2

Playnomics 1.5.2

测试已测试
语言语言 Obj-CObjective C
许可证 Apache 2
发布上次发布2014年12月

未填写维护。



  • 作者
  • Jared Jenkins和Shiraz Khan

Playnomics PlayRM iOS SDK集成指南

跨平台应用的考虑因素

如果您想将应用程序部署到多个平台(例如:iOS、Android等),您需要在控制面板中创建一个单独的Playnomics应用程序。每个应用程序都有自己的<APPID>,用于跟踪和信息集成。

支持iOS 5及以后版本。

入门

下载和安装SDK

您可以从我们的发布页面下载SDK,或者使用pod "Playnomics"将其添加到您的CocoaPods Podfile中。

所有必要的安装文件都在Playnomics文件夹中

  • libPlaynomics.a
  • Playnomics.h
  • PNLogger.h

您还可以从这个仓库中fork,构建PlaynomicsSDK项目。

通过Xcode将SDK文件导入现有应用程序。

开始PlayRM会话

要跟踪用户互动数据,您首先需要启动一个会话。**在完成此操作之前,其他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>,此值应该是持久的、匿名化且每个用户唯一的。这通常是在用户启动应用程序时根据需要动态确定的。一些可能的实现

  • 内部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>,您就可以开始集成过程。

SDK集成

我们建议在您的应用程序加载时预加载所有放置,这样您就可以在必要时快速显示消息。

+ (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 允许您基于安装归因来源进行跟踪和细分。您可以在像 AdMobMoPub 这样的来源级别跟踪它,并可选地包括一个活动和安装日期。默认情况下,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]

变更记录

版本 1.5.2

  • 如果之前已设置 userId,则重新使用它并忽略发送的任何新 userId,以免 DAU 假性波动

版本 1.5.1

  • 如果没有传递任何 uuid,则默认使用 IDFV
  • 仅针对广告请求发送 IDFA 和限制广告跟踪标志

版本 1.5.0

  • 内部重构以使用 Unity SDK
  • 提高了单元测试的质量

版本 1.4.2

  • 修复了跟踪应用启动时推送通知的漏洞

版本 1.4.1

  • 如果最后一个事件捕获在过去 30 或更长时间,则启动一个新的会话

版本 1.4.0

  • 弃用 setTestMode
  • 为所有事件发送 IDFA 和 IDFV
  • 如果没有传递任何 uuid,则默认使用 IDFA

版本 1.3.0

  • 帧现在是位投放
    • 框架接口仍然可用,但已被弃用。当使用这些旧方法时,您将收到构建警告。
  • 里程碑现在为自定义事件
    • 旧的里程碑接口仍可使用,但已被弃用。当使用这些旧方法时,您将收到构建警告。
    • 自定义事件很灵活:它们可以用字符串描述,而不仅仅是枚举。

版本 1.2.0

  • 支持 64 位架构。

版本 1.1.1

  • 每次为我们请求一个广告时,都发送 IDFA 和 allowTracking。

版本 1.1.0

  • SDK 中最多支持 25 个自定义事件

版本 1.0.1

  • 微小的错误修复

版本 1

  • 支持基于 HTML 的第三方广告
  • 支持简化、全屏投放和内部消息创意
  • 大大简化的界面和 API
  • 更强的错误和异常处理
  • 性能改进,包括后台事件排队和对离线模式更好的支持
  • 针对 iOS 7 进行测试,支持 iOS 5 和 6
  • 版本号重置

版本 9

  • 添加对 Rich Data Callbacks 的支持
  • 目标 arm7、arm7s、i386 CPU 架构
  • 现兼容 iOS 5 及以上版本
  • 支持 Cocos2DX 的触摸事件

版本 8.2

  • 支持视频广告
  • 捕获广告跟踪信息

版本 8.1.1

  • 将 PlaynomicsMessaging.h 中的方法重命名为 "createFrameWithId",并将 "initFrameWithId"
  • 微小的错误修复

版本 8.1

  • 支持推送通知
  • 微小的错误修复

版本 8

  • 支持内部消息
  • 添加自定义事件模块

版本 7

  • 支持新款 iOS 硬件,iPhone 5s

版本 6

  • 改进了对 iOS4 和 iOS5+ 的双支持,根据运行时版本使用最佳方法
  • 此构建是为调试而提供的特别构建,用于无法复制的客户报告的崩溃,该崩溃与 PlayRM 代码无关。

版本 4

  • 支持 iOS 版本 4.x

版本 3

  • 改进的崩溃保护
  • 能够在 iOS 模拟器中运行集成应用
  • 对小细节进行微调,以提高与服务器的连接

版本 2

  • 首次生产版本

在这里查看版本标签 这里