Google Analytics SDK สำหรับ iOS v1 (เดิม)

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 คุณต้องมีสิ่งต่อไปนี้

ตั้งค่า

  • เปิด 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 ในออบเจ็กต์การติดตามได้ทุกเมื่อที่ต้องการสร้างคำขอแบบกลุ่ม โดยจะดำเนินการด้วยตนเองหรือในช่วงเวลาที่กำหนดก็ได้

ปัญหาที่ทราบ

  • การอ้างอิง/แหล่งที่มาของการเข้าชม: ปัจจุบันยังไม่สามารถติดตามแคมเปญ/แหล่งการอ้างอิงของการดาวน์โหลดแอปบนอุปกรณ์ iOS ได้
  • เราไม่แนะนำอย่างยิ่งให้โทรหา dispatch ในสถานการณ์ต่อไปนี้
    • ในเมธอด applicationWillTerminate
    • ใน applicationDidEnterBackground
    • ก่อนโทรหา stopTracker
    การทำเช่นนี้อาจส่งผลให้ระบบส่ง Hit ซ้ำ 2 ครั้ง ให้ใช้เมธอด dispatchSynchronous: แทน
  • การเรียกใช้เมธอด GANTracker ในเทรดที่ต่างกันอาจส่งผลให้เกิดข้อผิดพลาด SQLite ที่คลุมเครือ โปรดตรวจสอบว่าได้ทำการโทรทั้งหมดจากชุดข้อความเดียวกัน
  • การติดตามแคมเปญ

    การติดตามแคมเปญทั่วไป

    ด้วย 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