抢先体验-集成Vungle SDK for iOS v.6.7.0-early1

无论您使用的是Objective-C还是Swift,使用本文轻松地集成适用于iOS的Vungle SDK。

开始之前

要求

  • 集成需要一个Vungle帐户 ,请在帐户中创建一个新的iOS应用。请参阅我们的如何创建应用和配置应用文章,以了解如何在Vungle仪表板中设置展示位置。
  • Vungle iOS SDK v.6.7.0-early1支持Apple 推荐的 Xcode 11或更高版本。
    我们建议使用Xcode 11来存档您的应用程序,因为使用Xcode 10进行存档将导致“invalid Bitcode version error”。
  • Vungle iOS SDK v.6.7.0-early1已通过最新的iOS版本(截至发行日期为iOS 13.4)进行测试,并支持64位应用程序。
  • Vungle iOS SDK v.6.7.0-early1支持在iOS 9及更高版本上运行的应用程序。我们建议在低于9.0的iOS版本中集成SDK。

下载SDK

在此处下载适用于iOS的Vungle SDK

参考:示例应用程序和源代码

集成时,请随意参考我们提供的示例应用程序: https : //github.com/Vungle/iOS-SDK 。此处引用的源代码可在我们的公共GitHub存储库中找到:

步骤1.将Vungle框架添加到您的Xcode项目中

有两种方法可以将Vungle添加到您的Xcode项目中:使用Cocoapods手动集成

选项1。

Vungle SDK可通过Cocoapods获得。将以下内容添加到项目的podfile中:

source'https://github.com/Vungle/ios-sdk-beta.git'
pod "VungleSDK-iOS", "6.7.0-early1"

之后,快速运行pod安装将使用最新版本的iOS SDK更新您的项目。此时,您可以跳至步骤2。移除iOS状态栏

选项2.手动集成

1.将VungleSDK.framework添加到您的项目中

下载Vungle SDK v6.7.0-early1 。如果要从早期版本的Vungle SDK更新,请先完全删除VungleSDK.framework目录,然后再添加新的SDK。

找到解压后的文件,然后将 VungleSDK.framework 目录拖动到 Frameworks 下的 Xcode 中。添加 VungleSDK.framework 文件夹时,请务必将其作为一个组(黄色文件夹),而不是作为参考(蓝色文件夹)。

2.添加其他必需的框架

Vungle SDK现在附带了构建设置, Link Frameworks自动设置为YES ;这意味着您不再需要链接所有之前需要的框架和库(请参见下文)。使用此更新,您只需要选择链接以下框架:

  • CoreFoundation.framework
  • Foundation.framework
  • StoreKit.framework

这些以前需要的框架和库都包含在此处,因此如果您的项目未引用任何框架和库,则可以将其删除:

  • Support.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • CFNetwork.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • libz.dylib or libz.tbd
  • MediaPlayer.framework
  • QuartzCore.framework
  • StoreKit.framework
  • SystemConfiguration.framework

注意 :Vungle SDK v.6.5.1 +不支持iOS 8或更低版本。如果您将iOS 7作为部署目标,请使用Vungle iOS SDK v.4.1或更低版本,并包括以下框架:

  • UIKit.framework
  • WebKit.framework
  • Foundation.framework

确认VungleSDK框架出现在“ 链接的框架和库”下

3.添加“ -ObjC”链接器标志

项目浏览器中单击您的项目,然后转到 Build Settings → Linking → Other Linker Flags. 。将-ObjC添加其他链接器标志

步骤2.移除iOS状态栏

尽管不需要执行此步骤,但我们建议您删除iOS状态栏,以确保Vungle的广告互动和演示效果良好。要删除状态栏,请打开Info.plist ,添加关键的基于View controller的状态栏外观 ,并将其设置为No。

步骤3.添加代码

仅Swift:创建桥接头文件

  1. 在项目中创建新的 Objective-C 文件(文件 新建 文件 [Objective-C 文件])。
  2. 当Xcode询问您是否要在Objective-C和Swift之间创建桥接头文件时,请接受提示。
  3. 删除新的 Objective-C 文件 (${YOURPROJ}-Bridging-Header.m),但保留桥接头文件 ${YOURPROJ}-Bridging-Header.h
  4. 在桥接头文件中,通过添加以下内容导入 Vungle SDK:
    #import <VungleSDK/VungleSDK.h> 

初始化 SDK

应用启动后立即初始化SDK。如果您使用的是缓存优化的展示位置,那么现在初始化可以为SDK提供足够的时间来为该展示位置缓存广告。您将需要App ID来初始化SDK。您可以在Vungle信息中心找到应用程序ID。

- (BOOL)startWithAppId:(nonnull NSString *)appID error:(NSError **)error;

示例代码:

Objective-CSwift
#import <VungleSDK/VungleSDK.h> 
... 
NSError* error; 
NSString* appID = @"Your_AppID_Here"; 
VungleSDK* sdk = [VungleSDK sharedSDK]; 
if (![sdk startWithAppId:appID error:&error]) { 
  if (error) { 
    NSLog(@"Error encountered starting the VungleSDK: %@", error); 
  } 
}

SDK 成功完成初始化后,会调用以下回调方法:

- (void)vungleSDKDidInitialize;

请参考文章中 回调方法 这一栏内容。

您还可以使用以下属性检查 SDK 初始化状态:

@property (atomic, readonly, getter=isInitialized) BOOL initialized;

从Vungle SDK v.6.4.3开始,初始化后,我们会自动优化缓存行为以最大程度地提高您的获利能力。

初始化成功后,请注意要使用与您的缓存优化的展示位置相匹配的展示位置参考ID来调用vungleAdPlayabilityUpdate回调方法。 (请参阅“检查广告是否可播放”部分。)

为展示位置加载广告

- (BOOL)loadPlacementWithID:(NSString *)placementID error:(NSError **)error;

示例代码:

Objective-CSwift
NSError* error;
VungleSDK* sdk = [VungleSDK sharedSDK];
NSString* placementID = @"Your_placement_ID_Here";
VungleSDK* sdk = [VungleSDK sharedSDK];
if (![sdk loadPlacementWithID:placementID error:&error]) {
if (error) {
NSLog(@"Error occurred when loading placement: %@", error);
}
}

检查展示位置的广告可用性

当 SDK 完成广告位置的广告缓存后,会调用以下回调方法:

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID error:(nullable NSError *)error;

示例代码:

Objective-CSwift
- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID error:(nullable NSError *)error {
    if([placementID isEqualToString:@"Your_placement_ID_Here"]) {
        self.playButtonPlacement1.enabled = isAdPlayable;
    }
}

注意:对于缓存优化的展示位置,仅当广告可用时才调用此回调方法。 SDK将继续为这些展示位置请求广告。对于所有其他展示位置,在“加载失败”的情况下调用此回调方法(在这种情况下, isAdPlayable返回“ NO”)。

您还可以通过以下属性来检查广告位置的广告可用性:

- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;

播放广告

在确定某广告位置的广告已准备就绪时,您可以使用以下方法来播放广告:

- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;

示例代码:

Objective-CSwift
VungleSDK* sdk = [VungleSDK sharedSDK];
NSError *error;
if (![sdk playAd:self options:nil placementID:@"Your_placement_ID_Here" error:&error]) {
if (error) {
NSLog(@"Error encountered playing ad: %@", error);
}
}

可选和高级设置

集成 MREC 广告

Vungle Banner目前处于测试阶段。请直接与您的客户经理联系以获取访问权限,以确保成功启动。

从Vungle SDK v.6.4.3开始,我们支持MREC广告。这种广告格式不需要全屏显示;而是由发布商确定广告容器在其应用中的位置。但是,MREC容器的大小必须为300×250,这是行业标准。

加载MREC广告

MREC的放置类型在Vungle仪表板中必须具有MREC类型。

显示MREC广告

您必须首先为MREC广告创建一个容器。此容器是一个UIView为300×250大小,您可以把这个UIView任意位置在屏幕上。然后,您必须调用addAdViewToView函数将容器与MREC广告相关联。

函数概览:

/**
* Pass in an UIView which acts as a container for the ad experience. This view container may be placed in random positions.
* @param publisherView container view in which an ad will be displayed
* @param options A reference to an instance of NSDictionary with customized ad playback options
* @param placementID The placement defined on the Vungle dashboard
* @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil
* @return YES/NO in case of success/error while presenting an AdUnit
*/
- (BOOL)addAdViewToView:(UIView *)publisherView withOptions:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;

示例代码:

NSError *error;
NSDictionary *options = @{};
VungleSDK* sdk = [VungleSDK sharedSDK];
if (![sdk addAdViewToView:_mrecViewArea withOptions:options placementID:@"Your_placement_ID_Here" error:&error]) {
if (error)
{
NSLog(@"Error encountered while playing an ad: %@", error);
}
}

关闭MREC广告

要关闭MREC广告,调用finishedDisplayingAd功能。此功能仅适用于MREC广告。请注意,此功能不接受展示位置;它只会关闭当前正在播放的所有MREC广告。根据实现的不同,您可能需要进行一些清理(例如从其父视图中删除MREC容器UIView等)。

方法说明:

从6.7-early1开始 推荐 使用
- (void)finishDisplayingAd:(NSString *)placementId;

示例代码:

//Ad is no longer on screen
VungleSDK* sdk = [VungleSDK sharedSDK];
[sdk finishedDisplayingAd:@"MREC_PLACEMENTID_HERE"];

集成 Banner 广告

Vungle Banner目前处于测试阶段。请直接与您的客户经理联系以获取访问权限,以确保成功启动。

从Vungle SDK v.6.5.1开始,我们支持横幅广告。这种广告格式不需要全屏显示;而是由发布商确定广告容器在其应用中的位置。但是,横幅容器的尺寸必须为320x50、300x50或728x90(对于平板电脑)。您可以在屏幕上的任何位置设置横幅广告,并且用户可以在播放广告的同时继续使用该应用。可以在VungleSDK.h文件中找到列出不同横幅大小的枚举(也在下表中进行描述)。

Banner ENum Dimension
VungleAdSizeBanner 320 x 50
VungleAdSizeBannerShort 300 x 50
VungleAdSizeBannerLeaderboard 728 x 90

横幅广告的展示位置类型在Vungle仪表板中必须具有“横幅”类型。请随时与您的客户经理联系以启用横幅在仪表板上的放置。

加载横幅广告

加载横幅广告的工作方式与其他广告格式不同。使用以下API加载横幅广告。您必须指定要加载的横幅的大小,SDK会按照在仪表板上配置的时间间隔自动刷新横幅。请参阅上表以获取装入调用所需的枚举值。

方法介绍:

/**
 * (Overloaded method)
 * Prepares a placement when you know that you will want
 * to show an ad experience tied to a specific placementID.
 * @param placementID the specific ID of the placement you would like to present at some point soon
 * @param size the VungleAdSize (enum) you would like to request (only for banner ad type at the moment)
 * @return NO if something goes immediately wrong with loading, YES otherwise
 */
- (BOOL)loadPlacementWithID:(NSString *)placementID withSize:(VungleAdSize)size error:(NSError **)error;

示例代码:

NSError* error;
VungleSDK* sdk = [VungleSDK sharedSDK];
if (![sdk loadPlacementWithID:@"Your_placement_ID_Here" withSize:BANNER_ENUM error:&error]) {
if (error) {
NSLog(@"Error occurred when loading placement: %@", error);
}
}

您还可以通过调用以下API来检查横幅广告的可用性:

方法介绍:

/**
* (Overloaded method)
 * Returns `YES` when there is certainty that an ad will be able to play for a given placementID.
 * Returning `NO`.
 * @param size the VungleAdSize (enum) you would like to request (only for banner ad type at the moment)
 * @param placementID the specific ID of the placement you are trying to present
 */
- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID withSize:(VungleAdSize)size;

示例代码:

if([sdk isAdCachedForPlacementID:@"Your_placement_ID_Here" withSize:BANNER_ENUM]){
//Ad is cached successfully
}

显示横幅广告

您必须首先为横幅广告创建一个容器。此容器是一个UIView ,大小为300×250,320x50或728x90(仅适用于iPad)。您可以将此UIView放在屏幕上的任何位置。
然后,您必须调用addAdViewToView函数将容器与横幅广告相关联。

方法介绍:

/**
 * Pass in an UIView which acts as a container for the ad experience. This view container may be placed in random positions.
 * @note This method should only be called using placements that have the `mrec` template type. ALSO, for the
 *`mrec` template type, note that the UIView must have a width of 300 and a height of 250. If the view is provided without
 * these dimensions, an error message will be returned and the ad will not be shown.
 * @param publisherView container view in which an ad will be displayed
 * @param options A reference to an instance of NSDictionary with customized ad playback options
 * @param placementID The placement defined on the Vungle dashboard
 * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil
 * @return YES/NO in case of success/error while presenting an AdUnit
 */
- (BOOL)addAdViewToView:(UIView *)publisherView withOptions:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:(NSError *__autoreleasing _Nullable *_Nullable)error;

示例代码:

NSError *error;
NSDictionary *options = @{};
VungleSDK* sdk = [VungleSDK sharedSDK];
if (![sdk addAdViewToView:_bannerViewArea withOptions:options placementID:@"Your_placement_ID_Here" error:&error]) {
if (error)
{
NSLog(@"Error encountered while playing an ad: %@", error);
}
}

关闭横幅广告

调用finishedDisplayingAd函数以关闭横幅广告。请注意,此功能不接受展示位置;它只会关闭当前正在播放的任何横幅广告。根据您的实现,您可能需要进行一些清理(例如从其父视图中删除横幅容器UIView等)。

方法介绍:

从6.7-early1开始 推荐 使用
- (void)finishDisplayingAd:(NSString*)placementId;

示例代码:

VungleSDK* sdk = [VungleSDK sharedSDK];
[sdk finishedDisplayingAd:@"BANNER_PLACEMENTID_HERE"];

回调

您可以使用VungleSDKDelegate从SDK接收回调。委托中的回调方法将SDK事件通知给应用程序。

您可以使用以下命令附加和分离委托:

Objective-CSwift
// Attach
[[VungleSDK sharedSDK] setDelegate:yourDelegateInstance];
// Detach
[[VungleSDK sharedSDK] setDelegate:nil];

注意:为避免内存泄漏,请记住在不再需要已注册的委托时将其清除。

SDK成功初始化后,将调用以下方法:

- (void)vungleSDKDidInitialize;

当 SDK 即将播放视频广告时,会调用以下方法。此时是暂停游戏、声效和动画等内容的最佳时机。

- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID;

SDK刚开始播放视频广告时,将调用以下方法:

- (void)vungleDidShowAdForPlacementID:(nullable NSString *)placementID;

当 SDK 即将关闭广告时,会调用以下方法。此时是奖励式用户并恢复游戏、声效和动画等内容的最佳时机。

从6.7-early1开始 推荐 使用
- (void)vungleWillCloseAdForPlacementID:(nonnull NSString *)placementID;

当SDK关闭广告时,将调用以下方法。

从6.7-early1开始 推荐 使用
- (void)vungleDidCloseAdForPlacementID:(nonnull NSString *)placementID;

当SDK更改了广告可用性状态时,将调用以下方法。该isAdPlayable布尔表示具体的新可玩性placementID 。 (请参阅“ 检查展示位置的广告可用性”部分。)

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID error:(nullable NSError *)error;

用户单击Vungle广告时,将调用以下方法。此时,建议跟踪单击事件。

- (void)vungleTrackClickForPlacementID:(nullable NSString *)placementID;

当用户点击Vungle广告时,将调用以下方法,这将导致他们退出当前应用程序(例如,广告操作将打开iTunes商店,Mobile Safari等)。

- (void)vungleWillLeaveApplicationForPlacementID:(nullable NSString *)placementID;

 

当应酬谢用户观看“奖励视频”广告时,将调用以下方法。在这一点上,建议奖励用户。

- (void)vungleRewardUserForPlacementID:(nullable NSString *)placementID;

当SDK无法初始化时,将调用以下方法。 如果发生这种情况,请重新启动Vungle SDK。

- (void)vungleSDKFailedToInitializeWithError:(NSError *)error;

从6.7-early1开始不推荐使用

VungleViewInfo 包括以下属性,用于检查广告播放效果:

不推荐使用
/**
Deprecated as of 6.7-early1
**/
@interface VungleViewInfo : NSObject
//Represents a BOOL whether or not the video can be considered a completed view.
@property (nonatomic, readonly) NSNumber *completedView;
//The time in seconds that the user watched the video.
@property (nonatomic, readonly) NSNumber *playTime;
//Represents a BOOL whether or not the user clicked the download button.
@property (nonatomic, readonly) NSNumber *didDownload;
@end

广告配置选项

使用这些选项可以自定义广告回放体验。

注意: 奖励广告在某些情况下称为激励性广告;这两个字词始终指的是同一种广告。在SDK代码和Reporting API中,我们使用术语“激励”。

选项键 默认值/类型 说明
VunglePlayAdOptionKeyOrientations 自动旋转
UIInterfaceOrientationMaskAll
NSNumber表示具有方向的位掩码
设置广告的方向。即使您的应用是纵向模式,我们也建议允许广告自动旋转。这样,用户可以选择观看全尺寸视频,从而获得更好的用户体验。您可以通过在视图控制器级别(而不是项目级别)设置方向来实现。
VunglePlayAdOptionKeyUser nil
NSString
设置您的用户ID。该值将传递到Vungle服务器,然后如果放置位置设置为“ Rewarded”,则通过服务器到服务器回调系统发送到您的服务器。
VunglePlayAdOptionKeyIncentivizedAlertTitleText nil
NSString
当用户过早关闭奖励广告体验时显示的警报对话框标题所使用的字符串。
VunglePlayAdOptionKeyIncentivizedAlertBodyText “Are you sure you want to skip this ad? If you do, you might not get your reward”
NSString
当用户过早关闭奖励广告体验时显示的警报对话框的主体文本所使用的字符串。
VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText “Close”
NSString
警报对话框的关闭按钮文本的字符串标题,当用户过早关闭奖励广告体验时显示。
VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText “Continue”
NSString
警报对话框的关闭按钮文本的字符串标题,当用户过早关闭奖励广告体验时显示。
VunglePlayAdOptionKeyOrdinal 整数 如果您从Vungle收到顺序数据报告,请使用此字段传递中介顺序。这是一个整数,指示此广告在游戏会话中的显示顺序(例如,如果已经在该会话中显示了两个广告,然后将来自Vungle的该广告显示为第三,则传递“ 3”)。 在此处阅读有关序数数据的更多信息。

示例代码:

Objective-CSwift
NSDictionary *options = @{VunglePlayAdOptionKeyOrientations: @(UIInterfaceOrientationMaskLandscape),
                          VunglePlayAdOptionKeyUser: @"userGameID",
                          VunglePlayAdOptionKeyIncentivizedAlertBodyText : @"If the video isn't completed you won't get your reward! Are you sure you want to close early?",
                          VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText : @"Close",
                          VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText : @"Keep Watching",
                          VunglePlayAdOptionKeyIncentivizedAlertTitleText : @"Careful!"};

// Pass in dict of options, play ad
NSError *error;
[self.sdk playAd:self options:options placementID: error:&error];

if (error) {
    NSLog(@"Error encountered playing ad: %@", error);
}

静音选项

The Vungle SDK instance offers the option to play ads with the sound disabled. You can set the muted property to 'true' before issuing a playAd().

示例代码:

Objective-CSwift
VungleSDK* sdk = [VungleSDK sharedSDK];
self.sdk.muted = true;

注意:此选项仅适用于Vungle SDK 6.3.1及更低版本的标准广告类型。动态模板广告的静音选项可在仪表板上进行配置。从Vungle SDK v6.3.2开始,Vungle将尊重所有广告的SDK端静音设置。

内存 选项

从Vungle SDK v6.4.3开始,如果iPhone的存储空间低于预定义的阈值,则可以阻止SDK下载,请求广告甚至进行初始化。如果发生这种情况,您将收到与以下类似的错误:

Error while starting VungleSDK There is not enough file system size on a device to initialize VungleSDK.

These are the option keys available:

选项键

默认值/类型

说明

vungleMinimumFileSystemSizeForInit

Integer, value in MB, default value is 50

设置所需的最小可用可用存储空间以允许SDK初始化

vungleMinimumFileSystemSizeForAdRequest

Integer, value in MB, default value is 50

设置所需的最小可用可用存储空间,以使您可以请求广告

示例代码:

[[NSUserDefaults standardUserDefaults] setInteger:200 forKey:@"vungleMinimumFileSystemSizeForInit"];
[[NSUserDefaults standardUserDefaults] setInteger:200 forKey:@"vungleMinimumFileSystemSizeForAdRequest"];
//After setting the desired values above, synchronize
[[NSUserDefaults standardUserDefaults] synchronize];

限制使用IDFV

从Vungle SDK v6.4.3开始,您可以防止将IDFV从设备传递到SDK。

示例代码:

[VungleSDK setPublishIDFV:NO];
if (![sdk startWithAppId:appID error:&error]) {
  if (error) {
    NSLog(@"Error encountered starting the VungleSDK: %@", error);
  }
}

CCPA建议的实施说明

自2020年7月1日起,将执行《加利福尼亚消费者隐私法》(CCPA),发布者必须更新至iOS SDK 6.7.0-early1以遵守CCPA [VungleSDK updateCCPAStatus] 方法采用用户的CCPA同意状态,以便在用户具有 OPTED_OUT 。此外, [VungleSDK getCCPAStatus] 方法返回用户的当前CCPA状态。

Objective-C
//OPT_IN
[self.sdk updateCCPAStatus:VungleCCPAAccepted];
//OPT_OUT
[self.sdk updateCCPAStatus:VungleCCPADenied];

GDPR 推荐实施方法说明

自2019年5月25日起,通用数据保护条例(GDPR)将在欧盟实施。为了符合GDPR,开发人员有两种选择。

  • 选项1(推荐):发布者在用户级别控制GDPR同意过程,然后将用户的选择传达给Vungle。为此,开发人员可以使用他们自己的机制收集用户的同意,然后使用Vungle API来更新或查询用户的同意状态。有关详细信息,请参见下面的示例代码。
  • 选项 2:允许 Vungle 处理相关需求。Vungle 在向欧洲用户播放广告之前会显示征求同意的对话框,并记住用户的同意或拒绝选择,以用于后续的广告。

要使用Vungle API更新或查询用户的同意状态(如选项1中所建议),请对Vungle SDK v6.3.2和更高版本使用以下功能:

Objective-CSwift
// This function sets the consent status that will be recorded in Vungle SDK. Accepted values: 'VungleConsentAccepted' or 'VungleConsentDenied'. It also sets the consent message version. This value is an arbitrary string, and can be used to identify the version of the consent message presented to the user.

// To set the user's consent status to opted in:
[[VungleSDK sharedSDK] updateConsentStatus:VungleConsentAccepted consentMessageVersion:@"Some Consent Message Version"];

// To set the user's consent status to opted out:
[[VungleSDK sharedSDK] updateConsentStatus:VungleConsentDenied consentMessageVersion:@"Some Consent Message Version"];

// To find out what the user's current consent status is: 
// (Check against enum values: 'VungleConsentAccepted' or 'VungleConsentDenied'.)

[[VungleSDK sharedSDK] getCurrentConsentStatus];

// To find out which version of the consent message was shown to the user:
// This method returns an NSString value.
[[VungleSDK sharedSDK] getConsentMessageVersion];

VungleConsentStatus is an enum with two states:

  • VungleConsentAccepted
  • VungleConsentDenied

该 SDK 还有一个初始状态为“未知”,此时会提示用户选择参加或不参加用户数据收集计划。请注意,此提示仅针对欧洲 IP 地址才显示。

由于Vungle SDK v6.2.0无法通过同意消息版本,因此请使用以下API:

// This function sets the consent status that will be recorded in Vungle SDK. Accepted values: 'VungleConsentAccepted' or 'VungleConsentDenied'.
// To set the user's consent status to opted in:
[[VungleSDK sharedSDK] updateConsentStatus:VungleConsentAccepted]

// To set the user's consent status to opted out:
[[VungleSDK sharedSDK] updateConsentStatus:VungleConsentDenied];

// To find out what the user's current consent status is:
// (Check against enum values: 'VungleConsentAccepted' or 'VungleConsentDenied'.)
[[VungleSDK sharedSDK] getCurrentConsentStatus];

调试

使用此属性可获取SDK信息:

- (NSDictionary *)debugInfo;

Use the following method for the SDK to output logs:

- (void)setLoggingEnabled:(BOOL)enable;

VungleSDKLogger 协议

@protocol VungleSDKLogger 
- (void)vungleSDKLog:(NSString*)message;
@end

VungleSDK单例将日志事件发送到遵循VungleSDKLogger协议的任何附加类。日志事件包含NSString值,该值也将打印到控制台(如果已启用日志记录)。要附加记录器,请使用以下命令:

Objective-CSwift
[[VungleSDK sharedSDK] attachLogger:yourLoggerInstance];

如上所述,从Vungle SDK中清除附加的记录器很重要。要分离记录器,请使用以下命令:

Objective-CSwift
[[VungleSDK sharedSDK] detachLogger:yourLoggerInstance];

检查初始化状态

如果系统资源运行不足或发生过多上下文切换,则操作系统可以终止分配给Vungle SDK的某些资源。为了确保SDK的顺利运行,我们建议在调用SDK API之前检查SDK的初始化状态。在调用任何SDK API之前先调用isInitialized ,如果isInitialized返回NO ,则重新初始化SDK。

if ([self.sdk isInitialized] == NO) {
   [self initVungleSDK];
}
Powered by Creativity Driven by Performance Sign Up Here

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!

这篇文章有帮助吗?