SDK ของ Google Analytics สำหรับแอปบนอุปกรณ์เคลื่อนที่สำหรับ iOS ช่วยให้คุณสามารถใช้ Google Analytics ในแอปพลิเคชันที่ใช้ iOS ได้อย่างง่ายดาย เอกสารนี้จะอธิบายวิธีผสานรวม SDK กับแอปของคุณ
ภาพรวมของ SDK
SDK นี้ใช้รูปแบบการระบุแหล่งที่มาที่ออกแบบมาเพื่อติดตามผู้ใช้ไปยังเว็บไซต์แบบดั้งเดิมและการโต้ตอบกับวิดเจ็ตในหน้าเว็บแบบดั้งเดิม ด้วยเหตุนี้ คำที่ใช้ด้านล่างนี้จึงสะท้อนรูปแบบการระบุการติดตามเว็บไซต์แบบดั้งเดิม และนำไปยังการติดตามแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ คุณควรทำความคุ้นเคยกับการติดตาม Analytics เพื่อทำความเข้าใจวิธีการทำงานของ SDK นี้
ใช้ SDK การติดตามอุปกรณ์เคลื่อนที่เพื่อติดตามแอปพลิเคชันในโทรศัพท์ที่มีการโต้ตอบของ Analytics ประเภทต่อไปนี้
- การติดตามการดูหน้าเว็บ
- การดูหน้าเว็บเป็นวิธีมาตรฐานในการวัดปริมาณการเข้าชมเว็บไซต์แบบดั้งเดิม เนื่องจากแอปบนอุปกรณ์เคลื่อนที่ไม่มีหน้า HTML คุณจึงต้องตัดสินใจว่าจะเรียกใช้คำขอการดูหน้าเว็บเมื่อใด (และบ่อยแค่ไหน) นอกจากนี้ เนื่องจากคำขอการดูหน้าเว็บออกแบบมาเพื่อรายงานโครงสร้างไดเรกทอรี คุณจึงควรระบุชื่อที่สื่อความหมายสำหรับคำขอนั้นๆ เพื่อใช้ประโยชน์จากการตั้งชื่อเส้นทางหน้าเว็บในรายงานเนื้อหาใน Analytics ระบบจะป้อนข้อมูลชื่อที่คุณเลือกในรายงาน Analytics เป็นเส้นทางหน้าเว็บ แม้ว่าจริงๆ แล้วไม่ใช่หน้า HTML แต่คุณก็ใช้ชื่อนี้ให้เกิดประโยชน์ได้โดยจัดโครงสร้างเส้นทางเพื่อจัดกลุ่มการเรียกเพิ่มเติม
- การติดตามเหตุการณ์
- ใน Analytics เหตุการณ์ได้รับการออกแบบมาเพื่อติดตามการโต้ตอบของผู้ใช้ต่อองค์ประกอบหน้าเว็บอย่างแตกต่างจากคำขอการดูหน้าเว็บ คุณสามารถใช้ฟีเจอร์การติดตามเหตุการณ์ของ Google Analytics เพื่อทำการโทรเพิ่มเติม ซึ่งจะรายงานในส่วนการติดตามเหตุการณ์ของอินเทอร์เฟซรายงาน Analytics ได้ ระบบจะจัดกลุ่มเหตุการณ์โดยใช้หมวดหมู่ และอาจใช้ป้ายกำกับต่อเหตุการณ์ด้วย ซึ่งช่วยให้การรายงานมีความยืดหยุ่น เช่น แอปมัลติมีเดียอาจมีการกระทำเล่น/หยุด/หยุดชั่วคราวสำหรับหมวดหมู่วิดีโอและกำหนดป้ายกำกับสำหรับชื่อวิดีโอแต่ละชื่อ จากนั้นรายงาน Google Analytics จะรวบรวมเหตุการณ์สําหรับเหตุการณ์ทั้งหมดที่ติดแท็กด้วยหมวดหมู่วิดีโอ ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตามเหตุการณ์ได้ที่คู่มือการติดตามเหตุการณ์
- การติดตามอีคอมเมิร์ซ
- ใช้ฟีเจอร์การติดตามอีคอมเมิร์ซเพื่อติดตามธุรกรรมจากรถเข็นช็อปปิ้งและการซื้อในแอป
หากต้องการติดตามธุรกรรม ให้เรียกใช้เมธอด
addTransaction
เพื่อสร้างธุรกรรมโดยรวม รวมถึงเมธอดaddItem
สำหรับผลิตภัณฑ์แต่ละรายการในรถเข็นช็อปปิ้ง เมื่อรวบรวมแล้ว คุณสามารถดูข้อมูลได้ในส่วนการรายงานอีคอมเมิร์ซของอินเทอร์เฟซ Google Analytics สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดตามอีคอมเมิร์ซ โปรดดูคู่มือการติดตามอีคอมเมิร์ซ - ตัวแปรที่กำหนดเอง
- ตัวแปรที่กำหนดเองคือแท็กคู่ชื่อ-ค่าที่คุณแทรกในโค้ดติดตามเพื่อปรับแต่งการติดตามของ Google Analytics ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ตัวแปรที่กำหนดเอง โปรดอ่านคู่มือตัวแปรที่กำหนดเอง
- การสนับสนุน NoThumb
-
ตอนนี้ SDK สำหรับ iPhone มาพร้อมกับ Library เวอร์ชัน NoThumb และเวอร์ชัน Thumb มาตรฐาน หากต้องการใช้ไลบรารีเวอร์ชัน NoThumb ให้ใช้ไฟล์
libGoogleAnalytics_NoThumb.a
แทนไฟล์libGoogleAnalytics.a
เริ่มกระบวนการ
ข้อกำหนด
ในการผสานรวมความสามารถในการติดตามของ Google Analytics กับแอป iOS คุณต้องมีสิ่งต่อไปนี้
- SDK สำหรับนักพัฒนาซอฟต์แวร์ iOS (ต้องใช้ Xcode 3.1 ขึ้นไปที่ทำงานใน Mac OS X 10.5.3 ขึ้นไป)
- SDK ของ Google Analytics สำหรับแอปบนอุปกรณ์เคลื่อนที่
ตั้งค่า
- เปิด Xcode แล้วสร้างโปรเจ็กต์ iPhone OS ใหม่
- ลาก
GANTracker.h
และlibGoogleAnalytics.a
จากไดเรกทอรีไลบรารีของ SDK ไปยังโปรเจ็กต์ใหม่ - รวมเฟรมเวิร์ก
CFNetwork
ไว้ในโปรเจ็กต์และลิงก์กับlibsqlite3.0.dylib
Google Analytics สำหรับ Mobile Apps SDK ควรทำงานได้กับ iPhone หรือ iPod Touch ทุกรุ่นที่ใช้ iOS 2.0 หรือสูงกว่า ไลบรารีสามารถทำงานร่วมกับ iOS ทุกเวอร์ชันที่สนับสนุนแอปพลิเคชันของระบบ
แอปพลิเคชันตัวอย่างจะรวมอยู่ใน SDK ซึ่งแสดงให้เห็นว่าโปรเจ็กต์ควรมีลักษณะอย่างไรหากตั้งค่าสำเร็จ คุณใช้อีเมลนี้เป็นเทมเพลตสำหรับแอปที่ผสานรวม Analytics ของคุณเองได้
การใช้ SDK
ก่อนที่คุณจะเริ่มใช้ SDK คุณต้องสร้างบัญชีฟรีที่ www.google.com/analytics ก่อน แล้วสร้างเว็บพร็อพเพอร์ตี้ใหม่ในบัญชีนั้นโดยใช้ URL เว็บไซต์ปลอมแต่มีความหมาย (เช่น http://mymobileapp.mywebsite.com
) เมื่อคุณสร้างพร็อพเพอร์ตี้ ให้จดหรือเก็บสำเนารหัสเว็บพร็อพเพอร์ตี้ที่สร้างขึ้นสำหรับพร็อพเพอร์ตี้ที่สร้างใหม่
คุณต้องระบุให้ผู้ใช้ทราบในแอปพลิเคชันหรือในข้อกำหนดในการให้บริการของคุณว่าคุณมีสิทธิ์ในการติดตามและรายงานกิจกรรมของผู้ใช้ภายในแอปโดยไม่ระบุตัวตน การใช้ Google Analytics SDK ของคุณอยู่ภายใต้ข้อกำหนดในการให้บริการของ Google Analytics เพิ่มเติม ซึ่งคุณต้องยอมรับเมื่อลงชื่อสมัครใช้บัญชี
ตัวอย่างและแนวทางปฏิบัติแนะนำ
คุณดูโค้ดตัวอย่างและแนวทางปฏิบัติแนะนำได้ที่ code.google.com ภายใต้โปรเจ็กต์ analytics-api-sample
ไลบรารี EasyTracker
ไลบรารี EasyTracker พร้อมใช้งาน โดยมอบการติดตามระดับแอปพลิเคชันและ UIViewController โดยแทบไม่ต้องใช้ความพยายามในการพัฒนา คุณดูรหัสนี้ได้ในส่วนดาวน์โหลดของโปรเจ็กต์ analytics-api-sample
การเริ่มต้นเครื่องมือติดตาม
เริ่มใช้งานเครื่องมือติดตามโดยเรียกใช้เมธอด startTrackerWithAccountID
ใน Singleton ที่ได้รับจาก [GANTracker sharedTracker]
วิธีเรียกวิธีนี้โดยตรงในเมธอด applicationDidFinishLaunching
ของมอบสิทธิ์ของแอปมักจะสะดวกกว่า ส่งรหัสเว็บพร็อพเพอร์ตี้ ระยะเวลาการจัดส่งที่จำเป็น และผู้รับมอบสิทธิ์ที่ไม่บังคับ เช่น
#import "BasicExampleAppDelegate.h" #import "GANTracker.h" // Dispatch period in seconds static const NSInteger kGANDispatchPeriodSec = 10; @implementation BasicExampleAppDelegate @synthesize window = window_; - (void)applicationDidFinishLaunching:(UIApplication *)application { // ************************************************************************** // PLEASE REPLACE WITH YOUR ACCOUNT DETAILS. // ************************************************************************** [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1" dispatchPeriod:kGANDispatchPeriodSec delegate:nil]; NSError *error; if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1 name:@"iPhone1" value:@"iv1" withError:&error]) { // Handle error here } if (![[GANTracker sharedTracker] trackEvent:@"my_category" action:@"my_action" label:@"my_label" value:-1 withError:&error]) { // Handle error here } if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point" withError:&error]) { // Handle error here } [window_ makeKeyAndVisible]; } - (void)dealloc { [[GANTracker sharedTracker] stopTracker]; [window_ release]; [super dealloc]; } @end
การติดตามการดูหน้าเว็บและเหตุการณ์
การติดตามการดูหน้าเว็บและเหตุการณ์นั้นทำได้ง่าย เพียงเรียกใช้ trackPageView
ของออบเจ็กต์เครื่องมือติดตามทุกครั้งที่คุณต้องการเรียกการดูหน้าเว็บ โทร trackEvent
เพื่อบันทึกกิจกรรม ดูข้อมูลเพิ่มเติมเกี่ยวกับการดูหน้าเว็บและเหตุการณ์ได้ที่ภาพรวม SDK ด้านบน
การใช้ตัวแปรที่กำหนดเอง
การเพิ่มตัวแปรที่กำหนดเองก็ทำได้ง่ายเช่นกัน เพียงใช้เมธอด setCustomVariableAtIndex
ที่ SDK อุปกรณ์เคลื่อนที่ระบุ คุณจะต้องวางแผนล่วงหน้าว่าระบบจะจัดทำดัชนีตัวแปรที่กำหนดเองแต่ละรายการกับตัวแปรใด เพื่อไม่ให้เขียนทับตัวแปรเดิมที่มีอยู่ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรที่กำหนดเองได้ที่คู่มือตัวแปรที่กำหนดเอง โปรดทราบว่าเมธอด setCustomVariableAtIndex
ไม่ได้ส่งข้อมูลด้วยตัวเองโดยตรง แต่ระบบจะส่งข้อมูลพร้อมกับการดูหน้าเว็บหรือเหตุการณ์ที่ติดตามถัดไป คุณต้องเรียกใช้ setCustomVariableAtIndex
ก่อนที่จะติดตามการดูหน้าเว็บหรือเหตุการณ์ โปรดทราบว่าขอบเขตเริ่มต้นของตัวแปรที่กำหนดเองคือขอบเขตระดับหน้า
การใช้การติดตามอีคอมเมิร์ซ
มี 4 วิธีที่คุณใช้เพื่อเปิดใช้การติดตามอีคอมเมิร์ซในแอปพลิเคชันของคุณ ได้แก่
addTransaction
addItem
trackTransactions
clearTransactions
การเรียก addTransaction
และ addItem
จะเพิ่มธุรกรรมหรือรายการลงในบัฟเฟอร์อีคอมเมิร์ซภายใน ซึ่งจะเพิ่มรายการและธุรกรรมอื่นๆ ได้ เฉพาะเวลาที่โทรหา trackTransactions
ระบบจะส่งธุรกรรมและรายการต่างๆ ไปยังผู้มอบหมายงานและเข้าคิวเพื่อส่งไปยัง Google Analytics
หากต้องการล้างบัฟเฟอร์ ให้เรียกใช้เมธอด clearTransactions
หมายเหตุ: จะไม่มีการเรียกคืนธุรกรรมใดๆ ที่เคยได้ส่งไปยังผู้มอบหมายงานก่อนหน้านี้ หรือการทำธุรกรรมใดๆ ที่ Google Analytics รวบรวมไว้แล้ว
โดยโค้ดตัวอย่างต่อไปนี้จะช่วยคุณเริ่มต้นใช้งานได้
/** * The purchase was processed. We will track the transaction and its associated line items * now, but only if the purchase has been confirmed. */ - (void) processPurchase:Purchase purchase { [[GANTracker sharedTracker] addTransaction:[purchase transactionId] totalPrice:[purchase totalPrice] storeName:[purchase store] totalTax:[purchase tax] shippingCost:[purchase shipping] withError:&error]; if (error) { // Handle error } for (PurchaseItem item in [purchase items]) { [[GANTracker sharedTracker] addItem:[purchase transactionId] itemSKU:[item itemSKU] itemPrice:[item price] itemCount:[item count] itemCategory:[item category] withError:&error]; if (error) { // Handle error } } if ([purchase isConfirmed]) { [[GANTracker sharedTracker] trackTransactions:&error]; } else { // The purchase was denied or failed in some way. We need to clear out // any data we've already put in the Ecommerce buffer. [[GANTracker sharedTracker] clearTransactions:&error]; } }
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอีคอมเมิร์ซ โปรดดูคู่มือการติดตามอีคอมเมิร์ซ
ทำให้ IP ไม่ระบุตัวตน
หากต้องการปกปิดข้อมูล IP ของผู้ใช้ ให้ตั้งค่าพร็อพเพอร์ตี้ anonymizeIp
เป็น "ใช่"
การดำเนินการนี้จะทำให้ Google Analytics ลบข้อมูลระบุตัวบุคคลของข้อมูลที่ส่งมาจาก SDK โดยลบอ็อกเท็ตสุดท้ายของที่อยู่ IP ออกก่อนพื้นที่เก็บข้อมูล
ตัวอย่างวิธีตั้งค่ามีดังนี้
[[GANTracker sharedTracker] setAnonymizeIp:YES];
คุณตั้งค่า anonymizeIp
ได้ทุกเมื่อ
การตั้งค่าอัตราการสุ่มตัวอย่าง
คุณตั้งค่าอัตราการสุ่มตัวอย่างได้โดยใช้พร็อพเพอร์ตี้ sampleRate
หากแอปพลิเคชันของคุณสร้างการเข้าชม Analytics จำนวนมาก การตั้งค่าอัตราการสุ่มตัวอย่างอาจทำให้สร้างรายงานโดยใช้ข้อมูลตัวอย่างไม่ได้ การสุ่มตัวอย่างจะเกิดขึ้นอย่างสม่ำเสมอในผู้ใช้ที่ไม่ซ้ำ ดังนั้นเมื่อเปิดใช้อัตราการสุ่มตัวอย่างก็จะมีความสมบูรณ์ของแนวโน้มและการรายงาน
พารามิเตอร์ sampleRate
คือ NSUInteger และมีค่าอยู่ระหว่าง 0 ถึง 100 นี่คือตัวอย่างที่จะลด sampleRate
ลงเป็น 95%
[[GANTracker sharedTracker] setSampleRate:95];
อัตรา 0 จะปิดการสร้าง Hit ขณะที่อัตรา 100 จะส่งข้อมูลทั้งหมดไปยัง Google Analytics
คุณควรตั้งค่า sampleRate
ก่อนที่จะเรียกใช้วิธีการติดตามใดๆ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสุ่มตัวอย่างได้จากคู่มือแนวคิดการสุ่มตัวอย่าง
เกมรวมพล
เราขอแนะนำให้รวมคำขอติดตามเป็นกลุ่มๆ เพื่อประหยัดค่าใช้จ่ายในการเชื่อมต่อและแบตเตอรี่ คุณเรียกใช้ dispatch
ในออบเจ็กต์การติดตามได้ทุกเมื่อที่ต้องการสร้างคำขอแบบกลุ่ม โดยจะดำเนินการด้วยตนเองหรือในช่วงเวลาที่กำหนดก็ได้
ปัญหาที่ทราบ
dispatch
ในสถานการณ์ต่อไปนี้
-
ในเมธอด
applicationWillTerminate
-
ใน
applicationDidEnterBackground
-
ก่อนโทรหา
stopTracker
dispatchSynchronous:
แทน
การติดตามแคมเปญ
การติดตามแคมเปญทั่วไป
ด้วย Google Analytics SDK เวอร์ชัน 1.3 สำหรับ iOS ตอนนี้คุณสามารถติดตามการอ้างอิงแคมเปญได้แล้ว ตัวอย่างเช่น หากแอปพลิเคชันของคุณใช้สคีม URL ที่กำหนดเอง คุณสามารถสร้าง URL ที่มีพารามิเตอร์การค้นหาของแคมเปญได้ เมื่อแอปพลิเคชันเปิดขึ้นเพื่อตอบสนองต่อ URL ดังกล่าว คุณสามารถดึงพารามิเตอร์การค้นหาและส่งไปยัง setReferrer เพื่อให้มีการเก็บข้อมูลใน Google Analytics
หากต้องการตั้งค่าข้อมูลการอ้างอิงของแคมเปญ ให้ใช้เมธอด setReferrer
ดังนี้
[[GANTracker sharedTracker] setReferrer:referrer withError:&error];
การใช้ฟีเจอร์นี้มีข้อจำกัด 2 ประการ คุณต้องโทรหา startTrackerWithAccountID
ก่อนโทรติดต่อ setReferrer
คุณต้องดําเนินการนี้เนื่องจากฐานข้อมูล SQLite ที่ Google Analytics ใช้ไม่ได้ตั้งค่าไว้ก่อนที่จะเรียกใช้ startTrackerWithAccountID
และ setReferrer
จำเป็นต้องใช้ฐานข้อมูลนั้น หากยังไม่ได้โทรหา startTrackerWithAccountID
ระบบจะแสดงข้อผิดพลาด
ข้อจำกัดที่ 2 คือสตริงการอ้างอิงที่ส่งผ่านไปยัง setReferrer
ต้องเป็นไปตามรูปแบบที่เฉพาะเจาะจง
โดยต้องอยู่ในรูปแบบของชุดพารามิเตอร์ของ URL และต้องประกอบด้วยพารามิเตอร์ gclid เป็นอย่างน้อย หรือแต่ละรายการ utm_campaign,
utm_medium และ utm_source ซึ่งในกรณีหลังนี้ อาจมีพารามิเตอร์ utm_term และ utm_content ด้วยเช่นกัน
พารามิเตอร์ gclid เป็นส่วนหนึ่งของฟีเจอร์การติดแท็กอัตโนมัติที่ลิงก์ Google Analytics กับ Google Ads โดยอัตโนมัติ ตัวอย่างการอ้างอิงแคมเปญที่ใช้การติดแท็กอัตโนมัติอาจมีลักษณะดังนี้
referrer = @“gclid=gclidValue”;
สตริงการอ้างอิงแคมเปญที่กำหนดเองอาจมีลักษณะดังนี้
referrer = @“utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
หากคุณส่งผ่านสตริง URL ที่มาที่มีรูปแบบไม่ถูกต้องไปยัง setReferrer
ข้อมูล URL ที่มาจะไม่เปลี่ยนแปลงและคุณจะได้รับค่า "เท็จ" ค่าที่เป็นจริงแสดงให้เห็นว่า URL ที่มาได้รับการอัปเดตแล้วและจะเพิ่มลงใน Hit ทุกรายการนับจากนี้เป็นต้นไป
คุณจะได้รับข้อผิดพลาดด้วย ซึ่งคุณสามารถตรวจสอบเพื่อดูรายละเอียดเกี่ยวกับข้อผิดพลาดในกรณีที่โทรไม่สำเร็จ
โปรดทราบว่าเซสชันใหม่จะเริ่มต้นเมื่อคุณเรียกใช้ setReferrer และคืนค่าเป็น true
พารามิเตอร์ลิงก์การอ้างอิง
พารามิเตอร์ | จำเป็น | คำอธิบาย | ตัวอย่าง |
---|---|---|---|
utm_campaign |
ได้ | ชื่อแคมเปญ ใช้เพื่อวิเคราะห์คีย์เวิร์ดเพื่อระบุการโปรโมตผลิตภัณฑ์หรือแคมเปญเชิงกลยุทธ์ที่เฉพาะเจาะจง | utm_campaign=spring_sale |
utm_source |
ได้ | แหล่งที่มาของแคมเปญ ใช้เพื่อระบุเครื่องมือค้นหา จดหมายข่าว หรือแหล่งที่มาอื่นๆ | utm_source=google |
utm_medium |
ได้ | สื่อของแคมเปญ ใช้เพื่อระบุสื่อ เช่น อีเมลหรือต้นทุนต่อคลิก (CPC) | utm_medium=cpc |
utm_term |
ไม่ได้ | คำของแคมเปญ ใช้กับการค้นหาที่เสียค่าใช้จ่ายเพื่อระบุคีย์เวิร์ดสำหรับโฆษณา | utm_term=running+shoes |
utm_content |
ไม่ได้ | เนื้อหาแคมเปญ ใช้สำหรับการทดสอบ A/B และโฆษณาที่กำหนดเป้าหมายตามเนื้อหาเพื่อแยกความแตกต่างของโฆษณาหรือลิงก์ที่ชี้ไปยัง URL เดียวกัน |
utm_content=logolink
utm_content=textlink
|