AWS'de Toplama Hizmeti ile çalışma

1. Ön koşullar

Bu Codelab'i gerçekleştirmek için birkaç ön koşul gerekir. Her koşul, "Yerel Test" veya "Toplama Hizmeti" için gerekli olup olmadığına göre işaretlenir.

1.1. Yerel Test Aracı'nı (Local Testing) indirin

Yerel test için Yerel Test Aracı'nın indirilmesi gerekir. Araç, şifrelenmemiş hata ayıklama raporlarından özet raporlar oluşturur.

Yerel Test aracı, Lambda JAR Archives in Github'dan indirilebilir. LocalTestingTool_{version}.jar olarak adlandırılmalıdır.

1.2. JAVA JRE'nin yüklendiğini doğrulayın (Yerel Test ve Toplama Hizmeti)

"Terminal"i açın ve makinenizde Java veya openJDK'nın yüklü olup olmadığını kontrol etmek için java --version komutunu kullanın.

`java --version` komutunu kullanarak Java JRE sürümünü kontrol etme. `java --version` komutunu kullanarak Java JRE sürümünü kontrol etme.

Yüklü değilse Java sitesinden veya openJDK sitesinden indirip yükleyebilirsiniz.

1.3. Toplanabilir Rapor Dönüştürücü'yü indirin (Yerel Test ve Toplama Hizmeti)

Toplanabilir rapor dönüştürücünün bir kopyasını Privacy Sandbox Demos GitHub deposundan indirebilirsiniz.

1.4. Reklam Gizliliği API'lerini Etkinleştirme (Yerel Test ve Toplama Hizmeti)

Tarayıcınızda chrome://settings/adPrivacy simgesine gidin ve tüm Reklam Gizliliği API'lerini etkinleştirin.

Üçüncü taraf çerezlerinin etkinleştirildiğini doğrulayın.

Tarayıcınızda chrome://settings/cookies simgesine gidin ve "Gizli modda üçüncü taraf çerezlerini engelle"yi seçin.

Üçüncü taraf çerezleri için Chrome ayarı. Üçüncü taraf çerezleri için Chrome ayarı.

1.5. Web ve Android kaydı (Toplama Hizmeti)

Üretim ortamında Özel Korumalı Alan API'lerini kullanmak için hem Chrome hem de Android'e kayıt ve onay işlemlerini tamamladığınızdan emin olun.

Yerel test için kayıt, Chrome flag'i ve KSA anahtarı kullanılarak devre dışı bırakılabilir.

Demomuz için Chrome flag'ini kullanmak üzere chrome://flags/#privacy-sandbox-enrollment-overrides adresine gidin ve geçersiz kılmayı sitenizle güncelleyin. Demomuzun sitesini kullanacaksanız güncelleme yapmanız gerekmez.

Özel Korumalı Alan kaydı geçersiz kılma Chrome işareti. Privacy sandbox enrollment override chrome flag.

1.6. Aggregation Service'ı kullanmaya başlama (Aggregation Service)

Aggregation Service'in kullanılabilmesi için koordinatörlerin hizmete dahil edilmesi gerekir. Raporlama sitesi adresinizi, AWS hesap kimliğinizi ve diğer bilgileri sağlayarak Toplama Hizmeti İlk Katılım Formu'nu doldurun.

1.7. Bulut sağlayıcı (Aggregation Service)

Toplama Hizmeti, bulut ortamı kullanan bir Güvenilir Yürütme Ortamı'nın kullanılmasını gerektirir. Toplama hizmeti, Amazon Web Services (AWS) ve Google Cloud'da (GCP) desteklenir. Bu Codelab yalnızca AWS entegrasyonunu kapsar.

AWS, Nitro Enclaves adlı bir güvenilir yürütme ortamı sağlar. AWS hesabınızın olduğunu doğrulayın ve AWS CLI ortamınızı ayarlamak için AWS CLI yükleme ve güncelleme talimatlarını uygulayın.

AWS CLI'ınız yeni ise CLI yapılandırma talimatlarını kullanarak AWS CLI'ınızı yapılandırabilirsiniz.

1.7.1. AWS S3 paketi oluşturma

Terraform durumunu depolamak için bir AWS S3 paketi, raporlarınızı ve özet raporlarınızı depolamak için başka bir S3 paketi oluşturun. Belirtilen CLI komutunu kullanabilirsiniz. <> içindeki alanı uygun değişkenlerle değiştirin.

aws s3api create-bucket --bucket <tf_bucket_name> --region us-east-1
aws s3api create-bucket --bucket <report_bucket_name> --region us-east-1

1.7.2. Kullanıcı erişim anahtarı oluşturma

AWS kılavuzunu kullanarak kullanıcı erişim anahtarları oluşturun. Bu, AWS'de oluşturulan createJob ve getJob API uç noktalarını çağırmak için kullanılır.

1.7.3. AWS kullanıcı ve grup izinleri

Toplama Hizmeti'ni AWS'de dağıtmak için hizmeti dağıtmak üzere kullanılan kullanıcıya belirli izinler vermeniz gerekir. Bu Codelab için, dağıtımda tam izinlere sahip olduğunuzdan emin olmak üzere kullanıcının yönetici erişimi olduğunu doğrulayın.

1.8. Terraform (Toplama Hizmeti)

Bu Codelab'de, Toplama Hizmeti'ni dağıtmak için Terraform kullanılır. Terraform ikili programının yerel ortamınıza yüklendiğini doğrulayın.

Terraform ikili programını yerel ortamınıza indirin.

Terraform ikili programı indirildikten sonra dosyayı çıkarın ve Terraform ikili programını /usr/local/bin konumuna taşıyın.

cp <directory>/terraform /usr/local/bin

Terraform'un sınıf yolunda kullanılabilir olduğundan emin olun.

terraform -v

1.9. Postman (Aggregation Service AWS için)

Bu Codelab'de istek yönetimi için Postman'i kullanın.

Üst gezinme çubuğundaki "Çalışma Alanları"na gidip "Çalışma Alanı Oluştur"u seçerek çalışma alanı oluşturun.

postman workspace Postman çalışma alanı

"Boş çalışma alanı"nı seçin, sonraki seçeneğini tıklayın ve çalışma alanını "Özel Korumalı Alan" olarak adlandırın. "Kişisel"i seçip "Oluştur"u tıklayın.

Önceden yapılandırılmış çalışma alanı JSON yapılandırma ve Global Environment dosyalarını indirin.

"İçe aktar" düğmesini kullanarak JSON dosyalarını "Çalışma alanım"a aktarın.

Postman JSON dosyalarını içe aktarabilirsiniz. Postman JSON dosyalarını içe aktarın.

Bu işlem, createJob ve getJob HTTP istekleriyle birlikte sizin için Özel Korumalı Alan koleksiyonunu oluşturur.

Postman'den içe aktarılan koleksiyon. Postman'den içe aktarılan koleksiyon.

"Ortama hızlı bakış" üzerinden AWS "Erişim Anahtarı" ve "Gizli Anahtar"ını güncelleyin.

Postman ortamına hızlı bir bakış. Postman ortamına hızlı bakış.

"Düzenle"yi tıklayın ve hem "access_key" hem de "secret_key" için "Geçerli Değer"i güncelleyin. frontend_api_id bilgisinin bu belgenin 3.1.4 bölümünde yer alacağını unutmayın. Ayrıca us-east-1 bölgesini kullanmanızı öneririz. Ancak farklı bir bölgede dağıtım yapmak istiyorsanız yayınlanan AMI'yi hesabınıza kopyaladığınızı veya sağlanan komut dosyalarını kullanarak kendi derlemenizi yaptığınızı doğrulayın.

Postman genel değişkenleri. Postman genel değişkenleri. Postman'de genel değişkenleri düzenleme Postman'de genel değişkenleri düzenleme

2. Yerel Test Codelab'i

Şifrelenmemiş hata ayıklama raporlarını kullanarak toplama işlemi gerçekleştirmek ve özet raporlar oluşturmak için makinenizdeki yerel test aracını kullanabilirsiniz.

Codelab Adımları

Adım 2.1. Raporu tetikleme: Raporu toplayabilmek için Private Aggregation raporlamasını tetikleyin.

Adım 2.2. Hata ayıklama için toplanabilir rapor oluşturma: Toplanan JSON raporunu AVRO biçimli bir rapora dönüştürün.
Bu adım, reklam teknolojileri API raporlama uç noktalarından raporları topladığında ve JSON biçimli raporları AVRO biçimli raporlara dönüştürdüğünde yapılan işleme benzer.

2.3. adım: Paket anahtarını hata ayıklama raporundan ayrıştırın: Paket anahtarları, reklam teknolojileri tarafından tasarlanır. Bu codelab'de, paketler önceden tanımlandığı için paket anahtarlarını sağlandığı şekilde alın.

2.4. Adım: Çıkış alanı AVRO'sunu oluşturun: Bucket anahtarları alındıktan sonra çıkış alanı AVRO dosyasını oluşturun.

2.5. adım. Yerel Test Aracı'nı kullanarak özet raporlar oluşturma: Yerel ortamda özet raporlar oluşturmak için Yerel Test Aracı'nı kullanın.

Adım 2.6. Özet raporu inceleyin: Yerel Test Aracı tarafından oluşturulan Özet Raporu inceleyin.

2.1. Tetikleyici raporu

Özel Korumalı Alan demosunun sitesine gidin. Bu işlem, özel toplama raporunu tetikler. Raporu chrome://private-aggregation-internals adresinde görüntüleyebilirsiniz.

Chrome özel toplama iç bilgileri. Chrome özel toplama iç bilgileri.

Raporunuz "Beklemede" durumundaysa raporu seçip "Seçili Raporları Gönder"i tıklayabilirsiniz.

Gizli toplama raporu gönderin. Özel toplama raporu gönderme

2.2. Hata ayıklama için toplu rapor oluşturma

chrome://private-aggregation-internals içinde, [reporting-origin]/.well-known/private-aggregation/report-shared-storage uç noktasında alınan "Report Body" (Rapor Gövdesi) bölümünü kopyalayın.

"Rapor Gövdesi"nde aggregation_coordinator_origin öğesinin https://publickeyservice.msmt.aws.privacysandboxservices.com içerdiğinden emin olun. Bu, raporun AWS'de toplanabilir bir rapor olduğu anlamına gelir.

Private Aggregation API raporu. Private Aggregation raporu.

JSON "Rapor Gövdesi"ni bir JSON dosyasına yerleştirin. Bu örnekte vim'i kullanabilirsiniz. Ancak istediğiniz metin düzenleyiciyi kullanabilirsiniz.

vim report.json

Raporu report.json içine yapıştırın ve dosyanızı kaydedin.

Rapor JSON dosyası. Rapor JSON dosyası.

Bu raporu aldıktan sonra rapor klasörünüze gidin ve hata ayıklama için toplu rapor oluşturmaya yardımcı olması amacıyla aggregatable_report_converter.jar simgesini kullanın. Bu işlem, geçerli dizininizde report.avro adlı bir toplanabilir rapor oluşturur.

java -jar aggregatable_report_converter.jar \
 --request_type convertToAvro \
 --input_file report.json \
 --debug

2.3. Hata ayıklama raporundan paket anahtarını ayrıştırma

Toplama Hizmeti, toplu işleme sırasında iki dosya gerektirir. Toplanabilir rapor ve çıkış alanı dosyası. Çıkış alan adı dosyası, toplanabilir raporlardan almak istediğiniz anahtarları içerir. output_domain.avro dosyasını oluşturmak için raporlardan alınabilen paket anahtarlarına ihtiyacınız vardır.

Bucket anahtarları, API'yi çağıran tarafından tasarlanır ve demo, önceden oluşturulmuş örnek bucket anahtarları içerir. Demoda Özel Toplama için hata ayıklama modu etkinleştirildiğinden, paket anahtarını almak üzere "Rapor Gövdesi"nden hata ayıklama şifresiz metin yükünü ayrıştırabilirsiniz. Ancak bu durumda, site privacy sandbox demo, grup anahtarlarını oluşturur. Bu site için özel toplama hata ayıklama modunda olduğundan, bucket anahtarını almak için "Rapor Gövdesi"ndeki debug_cleartext_payload öğesini kullanabilirsiniz.

Rapor gövdesinden debug_cleartext_payload değerini kopyalayın.

Rapor gövdesinden düz metin yükünde hata ayıklama. Rapor gövdesindeki şifresiz metin yükünde hata ayıklama.

Özel toplama için hata ayıklama yükü kod çözücüsü aracını açın ve debug_cleartext_payload değerini "INPUT" (GİRİŞ) kutusuna yapıştırıp "Decode" (Kod çöz) seçeneğini tıklayın.

Yük kod çözücü. Yük kod çözücü.

Sayfa, paket anahtarının ondalık değerini döndürür. Aşağıda örnek bir paket anahtarı verilmiştir.

Yük kod çözücü sonucu. Yük kod çözücü sonucu.

2.4. Çıkış alanı AVRO'sunu oluşturma

Paket anahtarını aldığımıza göre paket anahtarının ondalık değerini kopyalayın. Paket anahtarını kullanarak output_domain.avro oluşturma işlemine devam edin. yerine aldığınız paket anahtarını kullandığınızı doğrulayın.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

Komut dosyası, geçerli klasörünüzde output_domain.avro dosyasını oluşturur.

2.5. Yerel Test Aracı'nı kullanarak özet raporlar oluşturma

Özet raporları oluşturmak için Bölüm 1.1'de indirilen LocalTestingTool_{version}.jar kullanılacaktır. Aşağıdaki komutu kullanın. LocalTestingTool_{version}.jar yerine LocalTestingTool için indirilen sürümü kullanmanız gerekir.

Yerel geliştirme ortamınızda özet rapor oluşturmak için aşağıdaki komutu çalıştırın:

java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .

Komut çalıştırıldıktan sonra aşağıdaki resme benzer bir şey görmeniz gerekir. Bu işlem tamamlandığında bir rapor output.avro oluşturulur.

Yerel test özeti raporu avro dosyası. Yerel test özeti raporu Avro dosyası.

2.6. Özet raporu inceleme

Oluşturulan özet rapor AVRO biçimindedir. Bunu okuyabilmek için AVRO'dan JSON biçimine dönüştürmeniz gerekir. İdeal olarak, reklam teknolojisi, AVRO raporlarını tekrar JSON'a dönüştürecek şekilde kodlanmalıdır.

Codelab'imizde, AVRO raporunu tekrar JSON'a dönüştürmek için sağlanan aggregatable_report_converter.jar aracını kullanacağız.

java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro

Bu işlem, aşağıdaki resme benzer bir rapor döndürür. Aynı dizinde oluşturulan bir rapor output.json ile birlikte.

Özet avro dosyası json'a dönüştürüldü. Özet avro dosyası JSON'a dönüştürülür.

Özet raporu incelemek için JSON dosyasını istediğiniz bir düzenleyicide açın.

3. Aggregation Service dağıtımı

Toplama Hizmeti'ni dağıtmak için aşağıdaki adımları uygulayın:

3. adım: Toplama Hizmeti Dağıtımı: Toplama Hizmeti'ni AWS'ye dağıtma
3.1.Adım Toplama Hizmeti deposunu klonlayın
3.2.adım Önceden oluşturulmuş bağımlılıkları indirin
3.3.adım Geliştirme ortamı oluşturma
3.4.adım Aggregation Service'i dağıtma

3.1. Aggregation Service deposunu klonlayın

Yerel ortamınızda Aggregation Service Github deposunu klonlayın.

git clone https://github.com/privacysandbox/aggregation-service.git

3.2. Önceden oluşturulmuş bağımlılıkları indirme

Aggregation Service deposunu klonladıktan sonra, deponun Terraform klasörüne ve ilgili bulut klasörüne gidin. cloud_provider değeriniz AWS ise /terraform/aws bölümüne geçebilirsiniz.

cd <repository_root>/terraform/aws

/terraform/aws içinde download_prebuilt_dependencies.sh komutunu çalıştırın.

bash download_prebuilt_dependencies.sh

3.3. Geliştirme ortamı oluşturma

/terraform/aws/environments içinde geliştirme ortamı oluşturun. dev adlı bir klasör oluştur.

mkdir dev

demo klasörünün içeriğini dev klasörüne kopyalayın.

cp -R demo/* dev

dev klasörünüze taşıyın.

cd dev

main.tf dosyanızı güncelleyin ve dosyayı düzenlemek için input'ye yönelik i tuşuna basın.

vim main.tf

# işaretini kaldırıp paket ve anahtar adlarını güncelleyerek kırmızı kutudaki kodun yorumunu kaldırın.

AWS main.tf için:

AWS ana tf dosyası. AWS ana tf dosyası.

Yorumdan çıkarılan kod aşağıdaki gibi görünmelidir.

backend "s3" {
  bucket = "<tf_state_bucket_name>"
  key    = "<environment_name>.tfstate"
  region = "us-east-1"
}

Güncellemeler tamamlandıktan sonra esc -> :wq! tuşlarına basarak güncellemeleri kaydedin ve düzenleyiciden çıkın. Bu işlem, güncellemeleri main.tf üzerine kaydeder.

Ardından, example.auto.tfvars dosyasını dev.auto.tfvars olarak yeniden adlandırın.

mv example.auto.tfvars dev.auto.tfvars

dev.auto.tfvars değerini güncelleyin ve dosyayı düzenlemek için input yerine i tuşuna basın.

vim dev.auto.tfvars

Aşağıdaki resimde kırmızı kutu içindeki alanları, Aggregation Service oryantasyonu, ortamı ve bildirim e-postası sırasında sağlanan doğru AWS ARN parametreleriyle güncelleyin.

Geliştirme için otomatik tfvars dosyasını düzenleyin. Edit dev auto tfvars file.

Güncellemeler tamamlandıktan sonra esc -> :wq! tuşlarına basın. Bu işlem, dev.auto.tfvars dosyasını kaydeder ve dosya aşağıdaki resme benzer şekilde görünür.

Geliştirme için otomatik tfvars dosyası güncellendi. Updated dev auto tfvars file.

3.4. Aggregation Service'i dağıtma

Aggregation Service'i dağıtmak için aynı klasörde /terraform/aws/environments/dev Terraform'u başlatın.

terraform init

Bu işlem, aşağıdaki resme benzer bir sonuç döndürmelidir:

Terraform init. Terraform init.

Terraform başlatıldıktan sonra Terraform yürütme planını oluşturun. Eklenecek kaynakların sayısını ve aşağıdaki resme benzer diğer ek bilgileri döndürür.

terraform plan

Aşağıdaki "Plan" özetini görebilirsiniz. Bu yeni bir dağıtımsa eklenecek kaynak sayısını, değiştirilecek ve yok edilecek kaynak sayısı 0 olarak görürsünüz.

Terraform planı. Terraform planı.

Bu işlemi tamamladıktan sonra Terraform'u uygulamaya devam edebilirsiniz.

terraform apply

Terraform'un işlemleri gerçekleştirmesini onaylamanız istendiğinde değere yes girin.

Terraform uygulama istemi. Terraform uygulama istemi.

terraform apply işlemi tamamlandığında createJob ve getJob için aşağıdaki uç noktalar döndürülür. Bölüm 1.9'da Postman'de güncellemeniz gereken frontend_api_id da döndürülür.

Terraform uygulama işlemi tamamlandı. Terraform apply complete.

4. Aggregation Service girişi oluşturma

Toplama Hizmeti'nde gruplandırma için AVRO raporları oluşturmaya devam edin.

4. adım: Aggregation Service Girişi Oluşturma: Aggregation Service için gruplandırılmış Aggregation Service raporlarını oluşturun.
4.1.adım Tetikleyici Raporu
4.2.Adım Toplanabilir raporları toplama
4.3.adım Raporları AVRO'ya dönüştürme
4.4.adım Çıkış alanı AVRO'sunu oluşturma

4.1. Tetikleyici raporu

Özel Korumalı Alan demosunun bulunduğu siteye gidin. Bu işlem, özel toplama raporunu tetikler. Raporu chrome://private-aggregation-internals adresinde görüntüleyebilirsiniz.

Chrome özel toplama iç bilgileri. Chrome özel toplama iç bilgileri.

Raporunuz "Beklemede" durumundaysa raporu seçip "Seçili Raporları Gönder"i tıklayabilirsiniz. '

Gizli toplama raporu gönderin. Özel toplama raporu gönderme

4.2. Toplanabilir raporları toplama

Toplanabilir raporlarınızı ilgili API'nizin .well-known uç noktalarından toplayın.

  • Private Aggregation
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • İlişkilendirme Raporlama - Özet Rapor
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

Bu Codelab'de rapor koleksiyonunu manuel olarak gerçekleştireceksiniz. Üretim aşamasında, reklam teknolojilerinin raporları programatik olarak toplaması ve dönüştürmesi beklenir.

chrome://private-aggregation-internals içinde, [reporting-origin]/.well-known/private-aggregation/report-shared-storage uç noktasında alınan "Report Body" (Rapor Gövdesi) bölümünü kopyalayın.

"Rapor Gövdesi"nde aggregation_coordinator_origin öğesinin https://publickeyservice.msmt.aws.privacysandboxservices.com içerdiğinden emin olun. Bu, raporun AWS'de toplanabilir bir rapor olduğu anlamına gelir.

Private Aggregation API raporu. Private Aggregation raporu.

JSON "Rapor Gövdesi"ni bir JSON dosyasına yerleştirin. Bu örnekte vim'i kullanabilirsiniz. Ancak istediğiniz metin düzenleyiciyi kullanabilirsiniz.

vim report.json

Raporu report.json içine yapıştırın ve dosyanızı kaydedin.

Rapor JSON dosyası. Rapor JSON dosyası.

4.3. Raporları AVRO'ya dönüştürme

.well-known uç noktalarından alınan raporlar JSON biçimindedir ve AVRO rapor biçimine dönüştürülmelidir. JSON raporunu aldıktan sonra rapor klasörünüze gidin ve hata ayıklama yapılabilir toplu raporu oluşturmak için aggregatable_report_converter.jar simgesini kullanın. Bu işlem, geçerli dizininizde report.avro adlı bir toplanabilir rapor oluşturur.

java -jar aggregatable_report_converter.jar \
 --request_type convertToAvro \
 --input_file report.json

4.4 Çıkış alanı AVRO'sunu oluşturma

output_domain.avro dosyasını oluşturmak için raporlardan alınabilen paket anahtarlarına ihtiyacınız vardır.

Grup anahtarları, reklam teknolojisi tarafından tasarlanır. Ancak bu durumda, Privacy Sandbox demo sitesi grup anahtarlarını oluşturur. Bu site için özel toplama hata ayıklama modunda olduğundan, bucket anahtarını almak için "Rapor Gövdesi"ndeki debug_cleartext_payload öğesini kullanabilirsiniz.

Rapor gövdesinden debug_cleartext_payload değerini kopyalayın.

Rapor gövdesinden düz metin yükünde hata ayıklama. Rapor gövdesindeki şifresiz metin yükünde hata ayıklama.

goo.gle/ags-payload-decoder adresini açın, debug_cleartext_payload kodunuzu "INPUT" (GİRİŞ) kutusuna yapıştırıp "Decode" (Kod Çöz) seçeneğini tıklayın.

Yük kod çözücü. Yük kod çözücü.

Sayfa, paket anahtarının ondalık değerini döndürür. Aşağıda örnek bir paket anahtarı verilmiştir.

Yük kod çözücü sonucu. Yük kod çözücü sonucu.

Paket anahtarını aldığımıza göre output_domain.avro oluşturmaya devam edelim. yerine aldığınız paket anahtarını kullandığınızı doğrulayın.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

Komut dosyası, geçerli klasörünüzde output_domain.avro dosyasını oluşturur.

4.5. Raporları AWS paketine taşıma

AVRO raporları (bölüm 3.2.3) ve çıkış alanı (bölüm 3.2.4) oluşturulduktan sonra raporları ve çıkış alanını raporlama S3 paketlerine taşıyın.

Yerel ortamınızda AWS KSA kurulumu varsa raporları ilgili S3 paketi ve rapor klasörüne kopyalamak için aşağıdaki komutları kullanın.

aws s3 cp report.avro s3://<report_bucket_name>/<report_folder>/
aws s3 cp output_domain.avro s3://<report_bucket_name>/<output_domain_folder>/

5. Aggregation Service kullanımı

terraform apply tarafından create_job_endpoint, get_job_endpoint ve frontend_api_id iade edilir. frontend_api_id değerini kopyalayın ve ön koşullar bölümündeki 1.9 numaralı adımda ayarladığınız Postman genel değişkeni frontend_api_id içine yerleştirin.

5. adım: Aggregation Service Kullanımı: Özet raporlar oluşturmak ve özet raporları incelemek için Aggregation Service API'yi kullanın.
Adım 5.1. createJob uç noktasını kullanarak toplu işleme
Adım 5.2. Toplu iş durumunu almak için getJob uç noktasını kullanma
Adım 5.3. Özet raporu inceleme

5.1. Toplu iş için createJob uç noktasını kullanma

Postman'de "Özel Korumalı Alan" koleksiyonunu açın ve "createJob"u seçin.

"Body"yi ve istek yükünüzü yerleştirmek için "raw"ı seçin.

postman createJob istek gövdesi postman createJob request body

createJob yük şeması github'da mevcuttur ve aşağıdakine benzer. <> yerine uygun alanları girin.

{
    "job_request_id": "<job_request_id>",
    "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
    "input_data_blob_prefixes": [
      "<report_folder>/<report_name-1>/",
      "<report_folder>/<report_name-2>/",
      "<report_folder>/<report_name>.avro"
    ], // Mutually exclusive to input_data_blob_prefix as of v2.11.0
    "input_data_bucket_name": "<bucket_name>",
    "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
    "output_data_bucket_name": "<bucket_name>",
    "job_parameters": {
      "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
      "output_domain_bucket_name": "<bucket_name>",
      "attribution_report_to": "<reporting origin of report>",
      "reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
      "report_error_threshold_percentage": "10",
      "debug_run": "true"
    }
}

"Gönder"i tıkladığınızda job_request_id ile iş oluşturulur. İstek, toplama hizmeti tarafından kabul edildikten sonra HTTP 202 yanıtı alırsınız. Diğer olası dönüş kodlarını HTTP yanıt kodları bölümünde bulabilirsiniz.

postman createJob request status postman createJob request status

5.2. Toplu iş durumunu almak için getJob uç noktasını kullanma

İş isteğinin durumunu kontrol etmek için getJob uç noktasını kullanabilirsiniz. "Özel Korumalı Alan" koleksiyonunda "getJob"ı seçin.

"Params" bölümünde, job_request_id değerini createJob isteğinde gönderilen job_request_id ile güncelleyin.

postman getJob isteği postman getJob isteği

getJob sonucunda, iş isteğinizin durumu 200 HTTP durumuyla döndürülmelidir. "Body" isteği, job_status, return_message ve error_messages gibi gerekli bilgileri içerir (işte hata varsa).

postman getJob request status postman getJob isteğinin durumu

Oluşturulan demo raporunun raporlama sitesi, AWS kimliğinizde kullanıma alınan sitenizden farklı olduğundan PRIVACY_BUDGET_AUTHORIZATION_ERROR return_code ile yanıt alabilirsiniz. Raporların "raporlama kaynağı" sitesi, AWS kimliği için kullanılan raporlama sitesiyle eşleşmediğinden bu durum normaldir.

{
      "job_status": "FINISHED",
      "request_received_at": "2023-12-07T22:50:58.830956Z",
      "request_updated_at": "2023-12-07T22:51:10.526326456Z",
      "job_request_id": "<job_request_id>",
      "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
      "input_data_blob_prefixes": [ // Mutually exclusive to input_data_blob_prefix as of v2.11.0
        "<report_folder>/<report_name-1>/",
        "<report_folder>/<report_name-2>/",
        "<report_folder>/<report_name>.avro"
      ],
      "input_data_bucket_name": "<input_bucket_name>",
      "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
      "output_data_bucket_name": "<output_bucket_name>",
      "postback_url": "",
      "result_info": {
          "return_code": "PRIVACY_BUDGET_AUTHORIZATION_ERROR",
          "return_message": "Aggregation job successfully processed",
          "error_summary": {
              "error_counts": [],
              "error_messages": []
          },
          "finished_at": "2023-12-07T22:51:10.517730898Z"
      },
      "job_parameters": {
          "debug_run": "true",
          "output_domain_bucket_name": "<output_domain_bucket_name>",
          "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
          "attribution_report_to": "https://privacy-sandbox-demos-dsp.dev",
          "reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
      },
      "request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}

5.3. Özet raporu inceleme

Özet raporunuzu çıktı S3 paketinizde aldıktan sonra yerel ortamınıza indirebilirsiniz. Özet raporlar AVRO biçimindedir ve tekrar JSON'a dönüştürülebilir. Aşağıdaki komutu kullanarak raporunuzu okumak için aggregatable_report_converter.jar simgesini kullanabilirsiniz.

java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>

Bu işlem, her paket anahtarının toplanmış değerlerinin aşağıdaki resme benzer bir JSON'unu döndürür.

Özet rapor Özet rapor.

createJob isteğiniz debug_run olarak true içeriyorsa özet raporunuzu output_data_blob_prefix içindeki hata ayıklama klasöründe alabilirsiniz. Rapor AVRO biçimindedir ve önceki komut kullanılarak JSON'a dönüştürülebilir.

Rapor; gruplandırma anahtarını, gürültü içermeyen metriği ve özet raporu oluşturmak için gürültü içermeyen metriğe eklenen gürültüyü içerir. Rapor, aşağıdaki resme benzer.

Hata ayıklama özeti raporu. Hata ayıklama özeti raporu.

Açıklamalarda in_reports ve in_domain da bulunur. Bu işaretler şunları ifade eder:

  • in_reports: Paket anahtarı, toplanabilir raporlarda kullanılabilir.
  • in_domain: Paket anahtarı, output_domain AVRO dosyasında kullanılabilir.