-
Notifications
You must be signed in to change notification settings - Fork 0
api ios
/ *
Tiêu đề: Tài liệu tham khảo về API iOS
Mô tả:
Phân loại: 5
*/
Bài viết này ghi lại các lớp API cho các vùng chứa tên sau:
- [
UnityAds
](#unityads) - [
UADSBannerView
](#uadsbannerview) - [
UnityMonetization
](#unitymonetization) - [
USRVUnityPurchasing
](#usrvunitypurchasing)
Để xem hướng dẫn tích hợp toàn diện, nhấp vào đây.
Sử dụng vùng chứa tên này để triển khai nội dung quảng cáo cơ bản, chẳng hạn như quảng cáo video có tặng thưởng hoặc không tặng thưởng, quảng cáo xen kẽ hoặc quảng cáo banner.
#import <UnityAds/UnityAds.h>
Khởi tạo dịch vụ Unity Ads với ID Trò chơi được chỉ định và ở trạng thái chế độ thử nghiệm.
+ (void)initialize:(NSString *)gameId
delegate:(nullable id<UnityAdsDelegate>)delegate
testMode:(BOOL)testMode
enablePerPlacementLoad:(BOOL)enablePerPlacementLoad;
}
Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|
gameId |
NSString | [ID Trò chơi Unity] (https://unityads.unity3d.com/help/resources/dashboard-guide#game-ids)cho Dự án của bạn, nằm trong bảng điều khiển nhà phát triển. |
delegate |
UnityAdsDelegate |
Lệnh ủy quyền cho các lệnh gọi lại [UnityAdsDelegate ](#unityadsdelegate). |
testMode |
BOOL | Đặt thànhYES để bật chế độ thử nghiệm và NO để tắt. Khi đang ở chế độ thử nghiệm, trò chơi của bạn sẽ không nhận được quảng cáo trực tiếp. |
enablePerPlacementLoad |
boolean | Khi được đặt thànhtrue , tham số này cho phép bạn tải nội dung cho một Vị trí cụ thể trước khi hiển thị nội dung đó. Vui lòng xem lại tài liệu về phương thức tải trước khi bật cài đặt này. |
Bạn có thể kiểm tra trạng thái khởi tạo bằng hàm sau:
+ (BOOL)isInitialized;
Bạn có thể kiểm tra xem nền tảng hiện tại có được SDK hỗ trợ hay không bằng hàm sau:
+ (BOOL)isSupported;
Tải nội dung quảng cáo cho Vị trí được chỉ định, cho phép báo cáo yêu cầu thực hiện chính xác hơn, phù hợp với tiêu chuẩn của hầu hết các nhà cung cấp trung gian. Nếu bạn khởi tạo SDK khi enablePerPlacementLoad
đang được bật, bạn cần gọi load
trước khi gọishow
.
Lưu ý: API load
đang trong giai đoạn beta kín và chỉ khả dụng khi được mời. Nếu bạn muốn được xem xét chuyển sang sử dụng bản beta, vui lòng liên hệ Unity Ads.
+ (void)load:(NSString *)placementId;
Hiển thị nội dung tại Vị trí được chỉ định nếu nội dung đó đã sẵn sàng.
+ (void)show:(UIViewController *)viewController placementId: (NSString *)placementId;
Trả về giá trị cho biết quảng cáo sẵn sàng hiển thị tại [Vị trí] (https://unityads.unity3d.com/help/monetization/placements)được chỉ định hay chưa.
+ (BOOL)isReady:(NSString *)placementId;
Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|
placementId |
NSString | ID Vị trí, nằm trong bảng điều khiển nhà phát triển. |
Bạn có thể kiểm tra xem một quảng cáo đã sẵn sàng hiển thị tại Vị trí được chỉ định hay chưa bằng lệnh gọi:
+ (BOOL)isReady: (NSString *)placementId;
Thêm một trình nghe đang hoạt động cho các lệnh gọi lại [UnityAdsDelegate
](#unityadsdelegate).
+ (void)addDelegate:(id<UnityAdsDelegate>)delegate;
Cho phép bạn xóa lệnh ủy quyền trình nghe đang hoạt động.
+ (void)removeDelegate:(id<UnityAdsDelegate>)delegate;
Kiểm soát số lượng đầu ra bản ghi được xuất từ SDK. Đặt thành true
để tạo bản ghi mạnh hơn.
+ (void)setDebugMode:(BOOL)enableDebugMode;
Bạn có thể kiểm tra trạng thái hiện tại để tạo bản ghi gỡ lỗi từ SDK bằng lệnh gọi:
+ (BOOL)getDebugMode;
Một giao diện để xử lý các trạng thái khác nhau của một quảng cáo. Triển khai lệnh ủy quyền trình nghe này trong tập lệnh của bạn để xác định logic cho quảng cáo có tặng thưởng. Giao diện gồm có các phương thức sau:
@protocol UnityAdsDelegate <NSObject>
- (void)unityAdsReady:(NSString *)placementId;
- (void)unityAdsDidStart:(NSString *)placementId;
- (void)unityAdsDidFinish:(NSString *)placementId
withFinishState:(UnityAdsFinishState)state;
- (void)unityAdsDidError:(UnityAdsError)error withMessage: (NSString *)message;
@end
Lưu ý: Unity đề xuất triển khai tất cả các phương thức này trong mã lệnh của bạn, ngay cả khi bạn không sử dụng hết.
Phương thức giao diện | Mô tả |
---|---|
unityAdsReady |
Xử lý logic khi nội dung quảng cáo sẵn sàng hiển thị qua một [Vị trí] (https://unityads.unity3d.com/help/monetization/placements)được chỉ định. |
unityAdsDidStart |
Xử lý logic khi người chơi kích hoạt để phát một quảng cáo. |
unityAdsDidFinish |
Xử lý logic khi kết thúc một quảng cáo. Xác định hành vi có điều kiện cho từng trạng thái kết thúc khác nhau bằng cách truy cập kết quả FinishState từ lệnh ủy quyền trình nghe (được ghi lại dưới đây). Ví dụ:- (void)unityAdsDidFinish: (NSString *)placementId |
unityAdsDidError |
Xử lý logic khi nội dung quảng cáo không hiển thị do lỗi. |
Các trạng thái tương tác của người dùng cuối với quảng cáo được liệt kê. SDK sẽ chuyển giá trị này đến lệnh gọi lại unityAdsDidFinish
sau khi quảng cáo hoàn tất.
typedef NS_ENUM(NSInteger, UnityAdsFinishState)
Giá trị | Mô tả |
---|---|
kUnityAdsFinishStateError |
Cho biết quảng cáo không thể hoàn thành do lỗi của Unity. |
kUnityAdsFinishStateSkipped |
Cho biết người dùng đã bỏ qua quảng cáo. |
kUnityAdsFinishStateCompleted |
Cho biết người dùng đã xem hết quảng cáo. |
Các trạng thái Vị trí của Unity Ads được liệt kê.
typedef NS_ENUM(NSInteger, UnityAdsPlacementState)
Giá trị | Mô tả |
---|---|
kUnityAdsPlacementStateReady |
Vị trí đã sẵn sàng để hiển thị quảng cáo. |
kUnityAdsPlacementStateNotAvailable |
Vị trí không khả dụng. |
kUnityAdsPlacementStateDisabled |
Vị trí đã bị tắt. |
kUnityAdsPlacementStateWaiting |
Vị trí đang ở trạng thái chờ. |
kUnityAdsPlacementStateNoFill |
Vị trí không có quảng cáo để hiển thị. |
Truy xuất giá trị UnityAdsPlacementState
bằng hàm sau:
+ (UnityAdsPlacementState)getPlacementState:(NSString *)placementId;
Các nguyên nhân là lỗi của Unity Ads được liệt kê.
Giá trị | Mô tả |
---|---|
kUnityAdsErrorNotInitialized = 0 |
Dịch vụ Unity Ads hiện chưa được khởi tạo. |
kUnityAdsErrorInitializedFailed |
Lỗi xảy ra trong quá trình khởi tạo. |
kUnityAdsErrorInvalidArgument |
Khởi tạo Unity Ads thất bại do tham số không hợp lệ. |
kUnityAdsErrorVideoPlayerError |
Lỗi xảy ra do trình phát video bị hỏng. |
kUnityAdsErrorInitSanityCheckFail |
Khởi tạo dịch vụ Unity Ads thất bại do môi trường không hợp lệ. |
kUnityAdsErrorAdBlockerDetected |
Lỗi xảy ra do trình chặn quảng cáo. |
kUnityAdsErrorFileIoError |
Lỗi xảy ra do không thể đọc hoặc ghi tệp. |
kUnityAdsErrorDeviceIdError |
Lỗi xảy ra do mã định danh thiết bị không đúng. |
kUnityAdsErrorShowError |
Lỗi xảy ra khi cố gắng hiển thị quảng cáo. |
kUnityAdsErrorInternalError |
Dịch vụ Unity Ads xảy ra lỗi nội bộ. |
Sử dụng vùng chứa tên này để triển khai quảng cáo banner. Unity Ads phiên bản 3.3 trở lên hỗ trợ nhiều thực thể banner thông qua một Vị trí duy nhất.
@interface UADSBannerView : UIView
Triển khai khung nhìn banner bằng cách sử dụng ID Vị trí và kích thước banner. Đặt lệnh gọi initWithPlacementId
để khởi tạo đối tượng, sau đó load
để tải nội dung quảng cáo. Lưu ý rằng đối tượng banner truy cập các sự kiện vòng đời thông qua [UADSBannerViewDelegate
trình nghe](#uadsbannerviewdelegate) của nó.
-(instancetype)initWithPlacementId:(NSString *)placementId size:(CGSize)size;
Tham số | Kiểu | Mô tả |
---|---|---|
placementId |
NSString | [ID Vị trí] (https://unityads.unity3d.com/help/monetization/placements#placement-settings)của banner (nằm trong bảng điều khiển nhà phát triển). |
size |
[CGSize ](https://developer.apple.com/documentation/coregraphics/cgsize?language=objc) |
Kích thước của đối tượng banner. Kích thước tối thiểu được hỗ trợ là 320 pixel x 50 pixel. |
Lưu ý: Sử dụng UADSBannerView
để gọi quảng cáo banner sẽ tải nội dung một lần mà không cần làm mới. Nếu banner trả về kết quả trống, bạn có thể hủy nó và tạo banner mới để thử lại. Unity đề xuất phương thức này cho các đối tác trung gian.
Phương thức cơ bản để yêu cầu quảng cáo cho banner.
-(void)load;
Lệnh ủy quyền UADSBannerView
cấp quyền truy cập vào các sự kiện vòng đời của banner.
@protocol UADSBannerViewDelegate <NSObject>
@optional
-(void)bannerViewDidLoad:(UADSBannerView *)bannerView;
-(void)bannerViewDidClick:(UADSBannerView *)bannerView;
- (void)bannerViewDidLeaveApplication:(UADSBannerView *)bannerView;
- (void)bannerViewDidError:(UADSBannerView *)bannerView error:(UADSBannerError *)error;
@end
Phương thức ủy quyền | Mô tả |
---|---|
bannerViewDidLoad |
Được gọi khi banner Unity tải xong một quảng cáo. Tham số khung nhìn sẽ tham chiếu banner cần được chèn vào hệ thống phân cấp khung nhìn. |
bannerViewDidClick |
Được gọi khi banner Unity được nhấp vào. |
bannerViewDidLeaveApplication |
Được gọi khi banner liên kết ra ngoài ứng dụng. |
bannerViewDidError |
Được gọi khi xảy ra lỗi hiển thị banner. |
NSError mở rộng đối tượng có chứa một đoạn mã lỗi và thông báo.
@interface UADSBannerError : NSError
- (instancetype)initWithCode:(UADSBannerErrorCode)code userInfo:(nullable NSDictionary<NSErrorUserInfoKey, id> *)dict;
@end
Kiểu liệt kê đại diện cho lỗi gặp phải trong vòng đời banner.
typedef NS_ENUM(NSInteger, UADSBannerErrorCode) {
UADSBannerErrorCodeUnknown = 0,
UADSBannerErrorCodeNativeError = 1,
UADSBannerErrorCodeWebViewError = 2,
UADSBannerErrorCodeNoFillError = 3
};
Sử dụng vùng chứa tên này để triển khai quảng cáo banner.
Lưu ý: API này, cùng với tất cả các phương thức và lớp của nó, đã không còn được dùng nữa để ưu tiên [UADSBannerView
](#uadsbannerview).
Phương thức cơ bản để tải nội dung quảng cáo banner. Bạn có thể điều chỉnh hàm này bằng cách thay đổi một vài tham số sao cho phù hợp với nhu cầu của bản thân.
Phương thức | Mô tả |
---|---|
+ (void)loadBanner; |
Tải quảng cáo banner với ID Vị trí mặc định. |
+ (void)loadBanner:(NSString *)placementId; |
Tải quảng cáo banner với ID Vị trí cụ thể (nằm trong bảng điều khiển nhà phát triển). |
Ví dụ:
- (void)loadBanner {
if ([UnityAds isReady:self.bannerPlacementId]) {
[UnityAdsBanner loadBanner:self.bannerPlacementId];
}
}
Đặt vị trí cho quảng cáo banner, sử dụng kiểu liệt kê [UnityAdsBannerPosition
](#uniadsbannerposition).
+ (void)setBannerPosition:(UnityAdsBannerPosition)bannerPosition;
Hủy quảng cáo banner, xóa quảng cáo này khỏi hệ thống phân cấp khung nhìn và ẩn khỏi trình phát.
+ (void)destroy;
Triển khai giao diện này để xử lý các trạng thái banner khác nhau. Lệnh ủy quyền trình nghe bao gồm các phương thức sau:
@protocol UnityAdsBannerDelegate <NSObject>
- (void)unityAdsBannerDidLoad:(NSString *)placementId view: (UIView *)view;
- (void)unityAdsBannerDidUnload:(NSString *)placementId;
- (void)unityAdsBannerDidShow:(NSString *)placementId;
- (void)unityAdsBannerDidClick:(NSString *)placementId;
- (void)unityAdsBannerDidHide:(NSString *)placementId;
- (void)unityAdsBannerDidError:(NSString *)message;
@end
Lưu ý: Unity đề xuất triển khai tất cả các phương thức này trong mã lệnh của bạn, ngay cả khi bạn không sử dụng hết.
Phương thức giao diện | Mô tả |
---|---|
unityAdsBannerDidLoad |
Được gọi khi banner Unity tải xong một quảng cáo. Tham số khung nhìn sẽ tham chiếu banner cần được chèn vào hệ thống phân cấp khung nhìn. Ví dụ:- (void)unityAdsBannerDidLoad:(NSString *)placementId view:(UIView *view { |
unityAdsBannerDidUnload |
Được gọi khi nội dung quảng cáo được gỡ khỏi banner và các tham chiếu đến khung nhìn của banner này cũng sẽ bị xóa. |
unityAdsBannerDidShow |
Được gọi khi banner Unity được hiển thị lần đầu tiên và người dùng có thể nhìn thấy. |
unityAdsBannerDidClick |
Được gọi khi banner Unity được nhấp vào. |
unityAdsBannerDidHide |
Được gọi khi banner Unity bị ẩn. |
unityAdsBannerDideError |
Được gọi khi xảy ra lỗi hiển thị banner. |
Bạn có thể đặt hoặc truy xuấtUnityAdsBannerDelegate
được chỉ định để Unity Ads gửi lệnh gọi lại banner đến, bằng cách sử dụng các phương thức sau:
+ (void)setDelegate:(id <UnityAdsBannerDelegate>)delegate;
+ (nullable id <UnityAdsBannerDelegate>)getDelegate;
Các vị trí được liệt kê mà bạn có thể đặt làm điểm neo cho quảng cáo banner.
typedef NS_ENUM(NSInteger, UnityAdsBannerPosition) {
kUnityAdsBannerPositionTopLeft,
kUnityAdsBannerPositionTopCenter,
kUnityAdsBannerPositionTopRight,
kUnityAdsBannerPositionBottomLeft,
kUnityAdsBannerPositionBottomCenter,
kUnityAdsBannerPositionBottomRight,
kUnityAdsBannerPositionCenter,
kUnityAdsBannerPositionNone
};
Sử dụng vùng chứa tên này để [ triển khai quảng cáo] (https://unityads.unity3d.com/help/ios/integration-guide-ios#integration-for-personalized-placements) để sử dụng vớiVị trí Cá nhân hóa.
#import <UnityAds/UnityMonetization.h>
Khởi tạo Unity Ads trong trò chơi của bạn vào thời gian chạy. Để tránh phát sinh lỗi, quá trình khởi tạo phải diễn ra sớm trong vòng đời thời gian vận hành của trò chơi, tốt nhất là vào lúc khởi động. Quá trình khởi tạo phải diễn ra trước khi hiển thị quảng cáo.
+ (void)initialize:(NSString *)gameId delegate:(nullable id <UnityMonetizationDelegate>)delegate testMode:(BOOL)testMode;
Tham số | Mô tả |
---|---|
gameID |
ID Trò chơi cho Dự án của bạn được tìm thấy trong bảng điều khiển nhà phát triển. |
delegate |
Lệnh ủy quyền trình nghe cho các lệnh gọi lại [UnityMonetizationDelegate ](#unitymonetizationdelegate). |
testMode |
Cho biết trò chơi có đang ở chế độ thử nghiệm hay không. Khi testMode là true , bạn sẽ chỉ nhìn thấy quảng cáo thử nghiệm. Khi testMode làfalse , bạn sẽ nhìn thấy quảng cáo trực tiếp. Sử dụng chế độ thử nghiệm trước khi khởi chạy trò chơi của bạn là điều quan trọng cần nhớ để tránh bị gắn cờ gian lận. |
Kiểm tra xem đối tượng [UMONPlacementContent
](#umonplacementcontent) sẵn sàng cho Vị trí xác định chưa. Trả về YES
nếu nội dung đã sẵn sàng và NO
nếu chưa sẵn sàng.
+ (BOOL)isReady:(NSString *)placementId;
Giao diện để xử lý các trạng thái khác nhau của các đối tượng [UMONPlacementContent
](#umonplacementcontent). Giao diện gồm có các phương thức sau:
@protocol UnityMonetizationDelegate <UnityServicesDelegate>
- (void)placementContentReady:(NSString *)placementId
placementContent:(UMONPlacementContent *)decision;
- (void)placementContentStateDidChange:(NSString *)placementId
placementContent:(UMONPlacementContent *)placementContent
previousState:(UnityMonetizationPlacementContentState)previousState
newState:(UnityMonetizationPlacementContentState)newState;
@end
Phương thức giao diện | Mô tả |
---|---|
placementContentReady |
Thông báo cho bạn biết rằng đối tượng UMONPlacementContent hiện đã khả dụng và sẵn sàng hiển thị lên Vị trí xác định. |
placementContentStateDidChange |
Thông báo cho bạn khi trạng thái của đối tượng UMONPlacementContent đã sẵn sàng có sự thay đổi do làm mới. |
Ví dụ về triển khai:UnityMonetizationDelegate
@interface MyMonetizationDelegate <UnityMonetizationDelegate>
@end
@implementation MyMonetizationDelegate
- (void)placementContentReady:(NSString *)placementId
placementContent:(UMONPlacementContent *)placementContent {
if ([placementId isEqualToString:@"video"]) {
self.interstitial = placementContent;
} else if ([placementId isEqualToString:@"rewardedVideo"]) {
self.rewardedVideo = placementContent;
}
}
- (void)placementContentStateDidChange:(NSString *)placementId
placementContent:(UMONPlacementContent *)decision
previousState:(UnityMonetizationPlacementContentState)previousState
newState:(UnityMonetizationPlacementContentState)newState {
if (newState != kPlacementContentStateReady) {
// Disable showing ads because content isn't ready anymore
}
}
@end
Triển khai lệnh ủy quyền này để cung cấp phương thức gọi lại unityAdsDidFinish
cho [UnityAdsFinishState
](#unityadsfinishstate) của quảng cáo video. Giao diện gồm có các phương thức sau:
@protocol UMONShowAdDelegate <NSObject>
- (void)unityAdsDidStart:(NSString*)placementId;
- (void)unityAdsDidFinish:(NSString*)placementId withFinishState:(UnityAdsFinishState)finishState;
@end
Phương thức giao diện | Mô tả |
---|---|
unityAdsDidStart |
Xử lý logic khi người chơi kích hoạt để phát một quảng cáo. |
unityAdsDidFinish |
Triển khai phương thức này để cung cấp logic cho việc xử lý xem quảng cáo đó được hoàn thành, bị bỏ qua hay bị lỗi, tùy thuộc vào trạng thái kết thúc. |
Lớp đại diện cho nội dung kiếm tiền mà Vị trícủa bạn có thể hiển thị.
Các phương thức liên kết:
Phương thức | Mô tả |
---|---|
- (BOOL)isReady |
Trả về YES nếu đối tượng UMONPlacementContent đã sẵn sàng hiển thị và NO nếu đối tượng chưa sẵn sàng. |
- (NSString)getType; |
Trả về kiểu dữ liệu của UMONPlacementContent có sẵn để hiển thị. Các giá trị chuỗi sau đây là hợp lệ:
|
Mở rộng lớp UMONPlacementContent
với chức năng hỗ trợ nội dung có tặng thưởng.
Các phương thức liên kết:
Phương thức | Mô tả |
---|---|
- (BOOL)isRewarded |
Trả về YES nếu UMONPlacementContent có tặng thưởng và NO nếu không tặng thưởng. |
Mở rộng lớp UMONRewardablePlacementContent
với chức năng hỗ trợ nội dung quảng cáo video.
Phương thức | Mô tả |
---|---|
- (void)show:(UIViewController *)viewController withDelegate:(id <UMONShowAdDelegate>)delegate; |
Hiển thị UMONShowAdPlacementContent có sẵn Triển khai lệnh ủy quyền [UMONShowAdDelegate ](#umonshowaddelegate) để xác định cách hàm này phản hồi với mỗi trạng thái kết thúc quảng cáo. |
Mở rộng lớp UMONShowAdPlacementContent
, cung cấp chức năng cho nội dung Khuyến mãi Mua hàng Trong Ứng dụng. Để biết thêm thông tin, hãy tham khảo tài liệu về Khuyến mãi Bản địa.
Kiểu liệt kê đại diện cho trạng thái cuối cùng của một quảng cáo khi quảng cáo đó kết thúc. Dùng để xử lý các trường hợp có tặng thưởng.
Giá trị | Mô tả |
---|---|
kUnityAdsFinishStateCompleted |
Người chơi đã xem toàn bộ quảng cáo. |
kUnityAdsFinishStateSkipped |
Người chơi đã bỏ qua quảng cáo trước khi quảng cáo chạy xong. |
kUnityAdsFinishStateError |
Không thể tải quảng cáo. |
Ví dụ về triển khaiunityAdsDidFinish
:
- (void)unityAdsDidFinish:(NSString *)placementId withFinishState:(UnityAdsFinishState)finishState {
NSLog (@"UnityAds FINISH: %@", placementId);
if (finishState == kUnityAdsFinishStateCompleted && [placementId isEqualToString: @"rewardedVideo"]) {
// Reward the player
((UMONShowAdPlacementContent *) self.rewardedContent).rewarded = YES;
NSLog (@"Reward the player");
}
}
Lớp này quản lý việc mua bộ điều hợp, là giao diện để SDK truy xuất thông tin nó cần từ việc triển khai Mua hàng Trong Ứng dụng tùy chỉnh của bạn.
@interface USRVUnityPurchasing: NSObject
+ (void)setDelegate:(id<USRVUnityPurchasingDelegate>)delegate;
+ (nullable id<USRVUnityPurchasingDelegate>)getDelegate;
@end
Logic trò chơi tùy chỉnh của bạn để xử lý một giao dịch thành công, được sử dụng trong phương thức USVRUnityPurchasingDelegate
của purchaseProduct
.
Logic trò chơi tùy chỉnh của bạn để xử lý một giao dịch không thành công. Hàm nhận đối tượng [UPURTransactionDetails
](#upurtransactiondetails). Trong ví dụ dưới đây, một giao dịch không thành công gọiUnityPurchasingTransactionErrorHandler
, trả về kiểu liệt kê [UPURTransactionError
] (#upurtransactionerror).
Giao diện để triển khai giải pháp mua hàng tùy chỉnh tương thích với Khuyến mãi Mua hàng Trong Ứng dụng. Giao diện gồm có các phương thức sau:
typedef void (^UnityPurchasingLoadProductsCompletionHandler) (NSArray<UPURProduct*>\*);
typedef void (^UnityPurchasingTransactionCompletionHandler) (UPURTransactionDetails\*);
typedef void (^UnityPurchasingTransactionErrorHandler) (UPURTransactionError, NSException*);
@protocol USRVUnityPurchasingDelegate
- (void)loadProducts:(UnityPurchasingLoadProductsCompletionHandler)completionHandler;
- (void)purchaseProduct:(NSString *)productId
completionHandler:(UnityPurchasingTransactionCompletionHandler)completionHandler
errorHandler:(UnityPurchasingTransactionErrorHandler)errorHandler
userInfo:(nullable NSDictionary *)extras;
@end
Phương thức giao diện | Mô tả |
---|---|
loadProducts |
SDK gọi hàm này để truy xuất danh sách các Sản phẩm có sẵn. Hàm này sử dụng giao diệnUnityPurchasingProductsCompletionHandler , nhận đối tượng [UPURProduct ](#upurproduct) để đăng ký Sản phẩm của bạn (xem ví dụ bên dưới). |
purchaseProduct |
SDK gọi hàm này khi người dùng nhấp vào nút mua hàng để mua nội dung khuyến mãi. Unity chuyển ID của Sản phẩm đã được mua đến hệ thống mua hàng trong ứng dụng của bạn. Hàm này sử dụng các hàm [UnityPurchasingTransactionCompletionHandler ](#unionpurchasingtransactioncompletionhandler) và [UnityPurchasingTransactionErrorHandler ](#unionpurchasingtransactionerrorhandler) để xử lý việc mua hàng thành công hay thất bại tùy theo cách triển khai của bạn. |
Ví dụ về một hàm loadProducts
được triển khai:
- (void)loadProducts:(UnityPurchasingLoadProductsCompletionHandler)completionHandler {
completionHandler (@[[UPURProduct build:^(UPURProductBuilder *builder){
builder.productId = @"100BronzeCoins";
builder.localizedTitle = @"100 Bronze Coins";
builder.localizedPriceString = @"$1.99";
builder.localizedPrice = [NSDecimalNumber decimalNumberWithString:@"1.99"];
builder.isoCurrencyCode = @"USD";
builder.localizedDescription = @"Awesome Bronze Coins available for a low price!";
builder.productType = @"Consumable";
}]]);
}
Ví dụ về triển khaipurchaseProduct
:
- (void)purchaseProduct:(NSString *)productId completionHandler:(UnityPurchasingTransactionCompletionHandler)completionHandler errorHandler:(UnityPurchasingTransactionErrorHandler)errorHandler userInfo:(nullable NSDictionary *)extras {
thirdPartyPurchasing.purchase (productId); // Generic developer purchasing function
// If purchase succeeds:
completionHandler ([UPURTransactionDetails build: ^(UPURTransactionDetailsBuilder *builder) {
builder.productId = productId;
builder.transactionId = thirdPartyPurchasing.transactionId;
builder.currency = @"USD";
builder.price = [NSDecimalNumber decimalNumberWithString: @"1.99"];
builder.receipt = @"{\n"data": "{\\"Store\\":\\"fake\\",\\"TransactionID\\":\\"ce7bb1ca-bd34-4ffb-bdee-83d2784336d8\\",\\"Payload\\":\\"{ \\\\\\"this\\\\\\": \\\\\\"is a fake receipt\\\\\\" }\\"}"\n}";
}]);
// If purchase fails:
errorHandler (kUPURTransactionErrorNetworkError, nil);
}
@end
Giao diện này cung cấp các phương thức truy cập để xử lý việc tương tác của người dùng với nội dung khuyến mãi. Hãy sử dụng các phương thức này để chuyển nội dung tùy chỉnh của bạn vào và xác định hành vi mong đợi. Chuyển đối tượng [UMONPromoAdPlacementContent
](#umonpromoadplacementcontent) thông qua hàm initWithPromo
để tạo bộ điều hợp mới. Ví dụ:
`self.nativePromoAdapter = [[UMONNativePromoAdapter alloc] initWithPromo: placementContent];`
Phương thức giao diện | Mô tả |
---|---|
- (void)promoDidShow: (UMONNativePromoShowType)showType; |
SDK gọi hàm này khi chương trình Khuyến mãi hiển thị. Hàm phải bao gồm phương thức tùy chỉnh của bạn để hiển thị nội dung khuyến mãi. Bạn có thể chuyển giá trị kiểu liệt kê [UMONNativePromoShowType ](#umonnativepromoshowtype) để tham chiếu kiểu xem trước của nội dung Khuyến mãi. |
- (void)promoDidClose; |
SDK gọi hàm này khi người chơi bỏ qua ưu đãi Khuyến mãi. |
- (void)promoDidClick; |
SDK gọi hàm này khi người chơi nhấp vào nút để mua Sản phẩm. Hành động này khởi tạo quy trình mua hàng. |
Ví dụ về triển khaiUMONNativePromoAdapter
:
@interface ViewController: UIViewController <USRVUnityPurchasingDelegate>
- (void)showPromo:(UMONPromoAdPlacementContent *)placementContent {
self.nativePromoAdapter = [[UMONNativePromoAdapter alloc] initWithPromo:placementContent];
UMONPromoMetaData *metaData = placementContent.metadata;
UPURProduct *product = metaData.premiumProduct;
NSString *price = (product == nil || product.localizedPriceString == nil) ? @"$0.99": product.localizedPriceString;
self.nativePromoView.hidden = NO;
NSString *title = [NSString stringWithFormat: @"Buy for only %@", price];
[self.purchaseButton setTitle: title forState: UIControlStateNormal];
[self.nativePromoAdapter promoDidShow];
}
// If the player clicked the purchase button:
(IBAction)purchaseButtonTapped:(id)sender {
[self.nativePromoAdapter promoDidClick];
[self.nativePromoAdapter promoDidClose];
self.nativePromoView.hidden = YES;
}
// If the player closed the promotional asset:
- (IBAction)promoCloseButtonTapped:(id)sender {
self.nativePromoView.hidden = YES;
[self.nativePromoAdapter promoDidClose];
}
Sản phẩm Mua hàng Trong Ứng dụng được chuyển đổi thành đối tượng mà SDK có thể sử dụng để tối ưu hóa việc kiếm tiền.
Đặt các trường sau lên@interface UPURProductBuilder:NSObject builder
, sau đó gọi + (instancetype)build:(void (^) (UPURProductBuilder *))buildBlock
để xây dựng đối tượng cuối cùng.
Phương thức trình tạo | Loại tham số | Mô tả |
---|---|---|
productId |
NSString |
ID tham chiếu nội bộ cho Sản phẩm. |
localizedTitle |
NSString |
Tên Sản phẩm hiển thị đến người tiêu dùng, cho mục đích lưu trữ Giao diện Người dùng. |
localizedPriceString |
NSString |
Chuỗi giá hiển thị đến người tiêu dùng, bao gồm cả ký hiệu tiền tệ, cho mục đích lưu trữ Giao diện Người dùng. |
localizedPrice |
NSDecimalNumber |
Giá trị hệ thống nội bộ dành cho việc định giá Sản phẩm. |
isoCurrencyCode |
NSString |
[Mã ISO] (https://en.wikipedia.org/wiki/ISO_4217)cho đơn vị tiền tệ được bản địa hóa của Sản phẩm. |
localizedDescription |
NSString |
Mô tả Sản phẩm hiển thị đến người tiêu dùng, cho mục đích lưu trữ Giao diện Người dùng. |
productType |
NSString |
Unity hỗ trợ các Loại Sản phẩm "Tiêu hao", "Không tiêu hao" và "Gói đăng ký". |
Để biết thêm chi tiết về thuộc tính Sản phẩm, tham khảo tài liệu về Xác định Sản phẩm.
Biên nhận giao dịch Mua hàng Trong Ứng dụng được chuyển đổi thành một đối tượng mà SDK có thể sử dụng để tối ưu hóa việc kiếm tiền.
Thuộc tính | Kiểu | Mô tả |
---|---|---|
productId |
NSString | ID tham chiếu nội bộ cho Sản phẩm. |
transactionId |
NSString | ID tham chiếu nội bộ cho giao dịch. |
receipt |
NSString | Các trường JSON từ [appStoreReceiptURL ](https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html) mô tả chi tiết giao dịch. Mã hóa biên nhận dưới dạng đối tượng JSON chứa Cửa hàng, ID Giao dịch và Tải trọng. |
price |
NSDecimalNumber | Giá trị hệ thống nội bộ dành cho việc định giá Sản phẩm. |
currency |
NSString | [Mã ISO] (https://en.wikipedia.org/wiki/ISO_4217)cho đơn vị tiền tệ được bản địa hóa của Sản phẩm. |
Để biết thêm chi tiết, hãy xem tài liệu của Apple về trường biên nhận Mua hàng Trong Ứng dụng.
Kiểu liệt kê cho biết lý do một giao dịch thất bại.
typedef NS_ENUM (NSInteger, UPURTransactionError) {
kUPURTransactionErrorNotSupported,
kUPURTransactionErrorItemUnavailable,
kUPURTransactionErrorUserCancelled,
kUPURTransactionErrorNetworkError,
kUPURTransactionErrorServerError,
kUPURTransactionErrorUnknownError
};
NSString *NSStringFromUPURTransactionError (UPURTransactionError);
Kiểu liệt kê cho biết giao dịch đến từ cửa hàng nào.
typedef NS_ENUM (NSInteger, UPURStore) {
kUPURStoreNotSpecified,
kUPURStoreGooglePlay,
kUPURStoreAmazonAppStore,
kUPURStoreCloudMoolah,
kUPURStoreSamsungApps,
kUPURStoreXiaomiMiPay,
kUPURStoreMacAppStore,
kUPURStoreAppleAppStore,
kUPURStoreWinRT,
kUPURStoreTizenStore,
kUPURStoreFacebookStore
};
NSString *NSStringFromUPURAppStore(UPURStore);
Các kiểu hiển thị nội dung Khuyến mãi Bản địa được liệt kê.
Giá trị | Mô tả |
---|---|
"FULL" |
Cho thấy khung nhìn khuyến mãi đầy đủ. |
"PREVIEW" |
Cho thấy khung nhìn thu nhỏ có thể mở rộng để hiển thị toàn bộ chương trình Khuyến mãi. |