Faturalandırılabilir İşlemler

Google ile olan sözleşmenizde işlem başına faturalandırma belirtiliyorsa Google'ın faturalandırılabilir işlemleri izleyip günlüğe kaydedebilmesi için uygulamanızın her işlemin başlangıcını ve sonunu işaretlemek üzere NavigationTransactionRecorder.pickup() ve NavigationTransactionRecorder.dropoff()'i çağırması gerekir. Faturalandırılabilir işlemlerin yolculuk ve teslimatlara nasıl tahsis edileceğini belirlemek için bu sayfadaki uygulama yönergelerine bakın.

NavigationTransactionRecorder nesnesi al

pickup() ve dropoff() yöntemlerini kullanmak için önce aşağıdaki örnekte gösterildiği gibi NavigationApi.getTransactionRecorder yöntemini çağırarak bir NavigationTransactionRecorder örneği oluşturmanız gerekir:

NavigationTransactionRecorder transactionRecorder = NavigationApi.getTransactionRecorder(application);

pickup() ile işlem başlatın

Sürücü bir yolcuyu aldığında veya teslimat için bir eşya aldığında uygulamanızın NavigationTransactionRecorder.pickup() çağrısı yapması gerekir. Bu çağrıyı, sürücü teslim almayı kaydetmek için uygulamanızla etkileşime geçtiğinde başlatmanız gerekir. Bu çağrıyı onArrival() geri çağırma işleminin bir parçası olarak yapmayın.

Aşağıdaki örnek kod, sürücünün bir yolcuyu veya teslimat eşyasını alırken uygulamanızın kullanıcı arayüzündeki bir düğmeye dokunduğunu varsayar:

Button b = (Button) findViewById(R.id.btn_pickup);
b.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    transactionRecorder.pickup(
        null /* waypoint */,
        Arrays.asList("MY_TRANSACTION_ID"));
  }
});

Aşağıdaki parametreleri pickup() yöntemine geçirin:

  • Teslim almanın gerçekleştiği Waypoint veya teslim alma mevcut bir navigasyon oturumunun parçası değilse null.
  • Bu teslim alma için geçerli olan bir veya daha fazla işlem kimliği. İşlem kimliği, faturalandırılabilir bir işlemi benzersiz şekilde tanımlayan rastgele bir dizedir. Aşağıda işlem kimlikleri hakkında daha fazla bilgi edinebilirsiniz.

dropoff() ile bir işlemi sonlandırma

Sürücü, bir yolcuyu bıraktığında veya bir eşyayı teslim ettiğinde uygulamanız NavigationTransactionRecorder.dropoff() numarasını çağırmalıdır. Bu çağrıyı, sürücü, indirme işlemini kaydetmek için uygulamanızla etkileşime geçtiğinde başlatmanız gerekir. Bu çağrıyı onArrival() geri çağırma işleminin bir parçası olarak yapmayın.

Aşağıdaki örnek kod, sürücünün bir yolcuyu veya teslimat eşyasını bırakırken uygulamanızın kullanıcı arayüzündeki bir düğmeye dokunduğunu varsayar:

Waypoint waypoint = mNavigator.getCurrentRouteSegment().getDestinationWaypoint();

Button b = (Button) findViewById(R.id.btn_dropoff);
b.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    transactionRecorder.dropoff(
        waypoint,
        Arrays.asList("MY_TRANSACTION_ID"));
  }
});

Aşağıdaki parametreleri dropoff() yöntemine geçirin:

  • Düşüşün gerçekleştiği Waypoint veya azalma mevcut bir gezinme oturumunun parçası değilse null.
  • Bu ayrılma işlemi için geçerli olan bir veya daha fazla işlem kimliği. İşlem kimliği, faturalandırılabilir bir işlemi benzersiz şekilde tanımlayan rastgele bir dizedir. Aşağıda işlem kimlikleri hakkında daha fazla bilgi edinebilirsiniz.

Kendi işlem kimliğinizi kullanın veya bir tane oluşturun

İşlem kimliği, bir yolculuk ile Google'dan gelen faturalandırma işlemi arasında bağlantı oluşturmak için bir yol sağlar. İşlem kimliği, maksimum 64 karakter uzunluğunda rastgele bir dizedir. Kimlik, tüm işlemlerde benzersiz olmalıdır.

Kendi işlem kimliğinizi (sistemlerinizin kullandığı ve sakladığı) sağlayabilmeniz en iyisidir.

Alternatif olarak, NavigationTransactionRecorder.generateTransactionId() yöntemini çağırarak rastgele ve benzersiz bir işlem kimliği oluşturabilirsiniz. Oluşturulan kimliği, kuruluşunuzun yolculuk işlemlerinin mutabakatında ihtiyaç duyması durumunda kullanılmak üzere saklayın.

Gezinme işlemi kaydedici için uygulama yönergeleri

Faturalandırılabilir işlemlerin yolculuk ve teslimatlara nasıl dağıtılacağını belirlemek için aşağıdaki yönergeleri kullanın.

Genel yönergeler:

  • Android için Navigasyon SDK'sı kullanımdayken, yola eklenen konum sağlayıcının kullanımı ve uygulama belirli bir yolculuk için ön planda olmasa bile faturalandırılabilir işlemleri bildirmeniz gerekir. Faturalandırılabilir işlemleri raporlamayı durdurmak istediğinizde stopGuidance() yöntemini çağırarak navigasyonu devre dışı bırakın ve stopRequestingLocationUpdates() işleviyle trafiğe eklenmiş konumu kapatın.
  • Bir sürücü aynı anda hem yolculuk hem de teslimat yapsa bile yolculukları ve teslimatları ayrı ve bağımsız işlemler olarak kaydetmeniz gerekir.
  • Teslim alma ve bırakma etkinliklerini, etkinlik gerçekleşir gerçekleşmez hemen kaydetmeniz gerekir.

Yolculuk işlemleriyle ilgili kurallar:

  • Bir yolcunun dahil olmadığı navigasyon oturumları (ör. bir yolcuya araçla gitme veya bir sürücüyü gelecekte teslim alınacak popüler bir konuma yönlendirme) faturalandırılabilir işlem olarak sayılmaz.
  • Bir yolcunun yolcu alması ve bırakması faturalandırılabilir bir işlem olarak sayılır.
  • Bir grup yolcu için grup olarak faturalandırılan yolculuk, faturalandırılabilir bir işlem olarak sayılır. Daha ayrıntılı şekilde açıklayalım: Sürücü bir konumdan iki veya daha fazla yolcuyu alıp başka bir konuma bırakırsa ve bu yolcuları grup olarak faturalandırırsanız bu tek bir işlem sayılır. İlgili işlem kimliğiyle pickup() numaralı telefonu yalnızca bir kez arayın ve dropoff() numarasını bir kez arayın.
  • Ayrı faturalandırılan iki yolcu için ortak bir yolculuk, yolcular aynı konumlardan alınıp bırakılsa bile iki faturalandırılabilir işlem olarak sayılır. Sürücü yolcuları aldığında her iki işlem kimliğiyle (her işlem için bir) pickup() ve sürücü yolcuları indirdiğinde her iki işlem kimliğiyle de dropoff() çağrısı yapın.
  • İsteğe bağlı duraklamalar, ayrı faturalandırılabilir işlemler olarak sayılmaz. Yolculuğa çıkarak kahve almak veya ayrı olarak faturalandırılmayan bir yolcudan birini bırakmak buna örnek olarak verilebilir. Bu gibi duraklamalar için dropoff() aramasını normal olarak yapmayın.
  • Kuruluşunuz bazı yolculukları yolculuk başında faturalandırmak yerine dolaylı olarak faturalandırıyorsa bu yolculukları yolculuk başına yapılan faturalandırma gibi değerlendirmeniz gerekir. Örneğin, kuruluşunuz sınırsız kullanım için aylık abonelik modeli sunabilir. Bu yolculuklar için pickup() ve dropoff() numaralı telefonu arayın.
  • Kuruluşunuz, belirli bir duraklardaki yolcuları alıp getiren otobüs hizmetleri sağlıyorsa ancak her durakta inen ve sonra kalkan kişileri takip etmiyorsa ayrı bir ürün lisansı almanız gerekir. Bu tür otobüs hizmetleri, işlem başına faturalandırmanın kapsamı dışındadır.
  • Kuruluşunuz, yolcuların uzun bir süre boyunca sınırsız sayıda duraklama yapmasına olanak tanıyan ve tümü tek bir ücret olarak faturalandırılan kiralık araç hizmetleri sunuyorsa ayrı bir ürün lisansı almanız gerekir. Bu hizmetler işlem başına faturalandırmanın kapsamı dışındadır.

Teslimat işlemlerine ilişkin yönergeler:

  • Teslim edilecek bir öğe içermeyen gezinme oturumları (ör. teslim edilecek ürünleri teslim almak üzere mağazaya gitmek) faturalandırılabilir işlem olarak sayılmaz.
  • Bir siparişin tek bir konumdan teslim alınması ve bırakılması, faturalandırılabilir bir işlem olarak sayılır. Bir sipariş birden fazla fiziksel nesne içerebilir. Örneğin, iki paket market alışverişi yapılabilir. Sürücü siparişi teslim aldığında pickup() ve sürücü siparişi teslim ettiğinde dropoff() numaralı telefonu arayın.
  • Sürücü, aynı sipariş kapsamında birden fazla konumdan (ör. mağazalar veya restoranlar) öğe teslim aldığında her konum ayrı bir faturalandırılabilir işlem olarak sayılır. Her konum için farklı bir işlem kimliği kullanın.
  • Bir sürücü, birden fazla müşterinin siparişiyle ilgili öğeleri aynı konumdan teslim aldığında her sipariş ayrı bir faturalandırılabilir işlem olarak sayılır. Her sipariş için farklı bir işlem kimliği kullanın.
  • İki sürücü aynı müşteri siparişinin bir parçası olarak öğeleri ayrı ayrı alıp bıraktığında, öğeler aynı mağaza konumundan olsa bile her sürücünün teslimatı ayrı bir faturalandırılabilir işlem olarak sayılır. Her sürücü için farklı bir işlem kimliği kullanın.