Skip to content

api ios

Yasuyuki Kamata edited this page Apr 9, 2021 · 1 revision

/ *
Tiêu đề: Tài liệu tham khảo về API iOS Mô tả:
Phân loại: 5 */

Tổng quan

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.

UnityAds

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>

Phương thức

initialize

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;

load

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 loadtrướ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;

show

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;

isReady

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;

addDelegate

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;

removeDelegate

Cho phép bạn xóa lệnh ủy quyền trình nghe đang hoạt động.

+ (void)removeDelegate:(id<UnityAdsDelegate>)delegate;

setDebugMode

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;

Giao diện

UnityAdsDelegate

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ả FinishStatetừ lệnh ủy quyền trình nghe (được ghi lại dưới đây). Ví dụ:

- (void)unityAdsDidFinish: (NSString *)placementId
withFinishState: (UnityAdsFinishState)state {
if (state == kUnityAdsFinishStateCompleted) {
// Thưởng cho người dùng vì đã xem hết quảng cáo.
} else if (state == kUnityAdsFinishStateSkipped) {
// Không thưởng cho người dùng vì đã bỏ qua quảng cáo.
} else if (state == kUnityAdsFinishStateError) {
// Ghi một thông báo lỗi.
}
}
unityAdsDidError Xử lý logic khi nội dung quảng cáo không hiển thị do lỗi.

Kiểu liệt kê

UnityAdsFinishState

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 unityAdsDidFinishsau 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.

UnityAdsPlacementState

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ị UnityAdsPlacementStatebằng hàm sau:

+ (UnityAdsPlacementState)getPlacementState:(NSString *)placementId;

UnityAdsError

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ộ.

UADSBannerView

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

Phương thức

initWithPlacementId

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 [UADSBannerViewDelegatetrì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.

load

Phương thức cơ bản để yêu cầu quảng cáo cho banner.

-(void)load;

Lệnh ủy quyền

UADSBannerViewDelegate

Lệnh ủy quyền UADSBannerViewcấ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.

Lớp

UADSBannerError

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

UADSBannerErrorCode

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
};

UnityAdsBanner (không dùng nữa)

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

loadBanner (không dùng nữa)

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];
    }
}

setBannerPosition (không dùng nữa)

Đặt vị trí cho quảng cáo banner, sử dụng kiểu liệt kê [UnityAdsBannerPosition](#uniadsbannerposition).

+ (void)setBannerPosition:(UnityAdsBannerPosition)bannerPosition;

destroy (không dùng nữa)

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;

Giao diện

UnityAdsBannerDelegate (không dùng nữa)

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 {
// Lưu trữ bannerView để dùng sau:
self.bannerView = view;
// Thêm banner vào hệ thống phân cấp khung nhìn của bạn:
  [self.view addSubview:self.bannerView];
}
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;

Kiểu liệt kê

UnityAdsBannerPosition (không dùng nữa)

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
};

UnityMonetization

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>

Phương thức

initialize

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 testModetrue, bạn sẽ chỉ nhìn thấy quảng cáo thử nghiệm. Khi testModefalse, 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.

isReady

Kiểm tra xem đối tượng [UMONPlacementContent](#umonplacementcontent) sẵn sàng cho Vị trí xác định chưa. Trả về YESnếu nội dung đã sẵn sàng và NOnếu chưa sẵn sàng.

+ (BOOL)isReady:(NSString *)placementId;

Giao diện

UnityMonetizationDelegate

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 UMONPlacementContenthiệ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

UMONShowAdDelegate

Triển khai lệnh ủy quyền này để cung cấp phương thức gọi lại unityAdsDidFinishcho [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

UMONPlacementContent

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ề YESnếu đối tượng UMONPlacementContentđã sẵn sàng hiển thị và NOnếu đối tượng chưa sẵn sàng.
- (NSString)getType; Trả về kiểu dữ liệu của UMONPlacementContentcó sẵn để hiển thị. Các giá trị chuỗi sau đây là hợp lệ:

  • Đề cập đến nội dung quảng cáo video sử dụng tiện ích mở rộng lớp [UMONShowAdPlacementContent](#umonshowadplacementcontent).
  • Đề cập đến nội dung Khuyến mãi Mua hàng Trong Ứng dụng sử dụng tiện ích mở rộng lớp [UMONPromoAdPlacementContent] (#umonpromoadplacementcontent).
  • NO_FILLđề cập đến việc thiếu UMONPlacementContentcó sẵn cho Vị trí được chỉ định.

UMONRewardablePlacementContent

Mở rộng lớp UMONPlacementContentvớ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ề YESnếu UMONPlacementContentcó tặng thưởng và NOnếu không tặng thưởng.

UMONShowAdPlacementContent

Mở rộng lớp UMONRewardablePlacementContentvớ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.

UMONPromoAdPlacementContent

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ê

UnityAdsFinishState

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");
    }
}

USRVUnityPurchasing

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

Phương thức

UnityPurchasingTransactionCompletionHandler

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 USVRUnityPurchasingDelegatecủa purchaseProduct.

UnityPurchasingTransactionErrorHandler

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

USVRUnityPurchasingDelegate

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

UMONNativePromoAdapter

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];
}

Lớp

UPURProduct

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""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.

UPURTransactionDetails

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ê

UPURTransactionError

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);

UPURStore

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);

UMONNativePromoShowType

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.
Clone this wiki locally