مهام الزيارات الشائعة

توضّح هذه الصفحة كيفية تنفيذ بعض مهام عدد الزيارات الأكثر شيوعًا باستخدام واجهة برمجة التطبيقات لإعداد التقارير في DCM/DFA.

نصائح عامة حول الترميز

  • السمات والمعلَمات المطلوبة والاختيارية: يمكنك الاطّلاع على المستندات المرجعية لمعرفة ما إذا كان من المطلوب استخدام سمة أو مَعلمة لطلب بيانات من واجهة برمجة التطبيقات.
  • عمليات البحث عن اسم حرف البدل - يمكنك استخدام حرف البدل (*) عند البحث عن أسماء الكائنات. علامة النجمة تطابق صفرًا أو أكثر من أي حرف. تدعم واجهة برمجة التطبيقات أيضًا بحث السلسلة الفرعية الضمني، لذلك فإن البحث عن "abc" سيتم البحث ضمنيًا عن "*abc*".
  • التحديث مقابل التصحيح - لتعديل كائن حالي، لديك خياران:
    1. التحديث - عند تحديث كائن، سيتم استبدال جميع الحقول عند الإدراج. من المهم تحميل العنصر الذي تريد تعديله وإجراء أي تغييرات عليه. بخلاف ذلك، سيتم إلغاء ضبط أي حقول غير متوفّرة في طلب التحديث.
    2. التصحيح: عند التصحيح، سيتم استبدال الحقول المحددة فقط عند الإدراج. في هذه الحالة، يمكنك إنشاء كائن جديد، وتعيين رقم التعريف نفسه له باعتباره الكائن المطلوب تعديله، وضبط الحقول المطلوب تحديثها، وتنفيذ طلب رمز التصحيح.
  • الأحجام - يتم تمثيل الأبعاد المادية بكائن Size يتم تحديده من خلال خدمة المقاسات. ويوفر الحساب مجموعة من الأحجام القياسية، ويمكنك إضافة مقاساتك المخصصة إلى هذه القائمة.
  • التواريخ والأوقات: يمكنك حفظ التواريخ/الأوقات بالتنسيق RFC 3339 باستخدام المناطق الزمنية المحلية. جميع القيم التي تعرضها واجهة برمجة التطبيقات تكون بالتوقيت العالمي المنسّق. يختلف ذلك عن الموقع الإلكتروني الذي تظهر فيه التواريخ والأوقات حسب منطقتك الزمنية التي تم ضبطها (توقيت أمريكا/نيويورك، تلقائيًا).

إنشاء معلن

#C

  1. أنشِئ كائن Advertiser واضبط سمتَي name وstatus المطلوبتين.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.Name = advertiserName;
    advertiser.Status = "APPROVED";
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    // Create the advertiser.
    Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();
    

Java

  1. أنشِئ كائن Advertiser واضبط سمتَي name وstatus المطلوبتين.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.setName(advertiserName);
    advertiser.setStatus("APPROVED");
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    // Create the advertiser.
    Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();
    

PHP

  1. أنشِئ كائن Advertiser واضبط سمتَي name وstatus المطلوبتين.
    $advertiser = new Google_Service_Dfareporting_Advertiser();
    $advertiser->setName($values['advertiser_name']);
    $advertiser->setStatus('APPROVED');
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    $result = $this->service->advertisers->insert(
        $values['user_profile_id'],
        $advertiser
    );
    

Python

  1. أنشِئ كائن Advertiser واضبط سمتَي name وstatus المطلوبتين.
    # Construct and save advertiser.
    advertiser = {
        'name': 'Test Advertiser',
        'status': 'APPROVED'
    }
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    request = service.advertisers().insert(
        profileId=profile_id, body=advertiser)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشِئ كائن Advertiser واضبط سمتَي name وstatus المطلوبتين.
    # Create a new advertiser resource to insert.
    advertiser = DfareportingUtils::API_NAMESPACE::Advertiser.new(
      name: format('Example Advertiser #%s', SecureRandom.hex(3)),
      status: 'APPROVED'
    )
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    # Insert the advertiser.
    result = service.insert_advertiser(profile_id, advertiser)
    

إنشاء حملة

#C

  1. أنشئ كائن Campaign واضبط خصائصه المطلوبة:

    • advertiserId - المعلِن المطلوب ربط هذه الحملة به.
    • name - يجب أن يكون هذا العمود فريدًا على مستوى جميع الحملات لهذا المعلِن.
    • defaultLandingPageId - الصفحة المقصودة التي سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، إذا لم يتم تعيين أحد الإعلانات لهذا الإعلان. يمكنك البحث عن الصفحات المقصودة الحالية من خلال الاتصال بالرقم advertiserLandingPages.list أو إنشاء صفحة مقصودة جديدة من خلال الاتصال على الرقم advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء - يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. يمكنك الاطّلاع على التعداد النقطي للتواريخ والأوقات في معلومات عامة حول الترميز للحصول على مزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، وذلك إذا لم يتم ملؤه في تاريخ انتهاء الحملة المحدّد.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.Name = campaignName;
    campaign.AdvertiserId = advertiserId;
    campaign.Archived = false;
    campaign.DefaultLandingPageId = defaultLandingPage.Id;
    
    // Set the campaign start date. This example uses today's date.
    campaign.StartDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now);
    
    // Set the campaign end date. This example uses one month from today's date.
    campaign.EndDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now.AddMonths(1));
    
  2. يمكنك الاتصال بالرقم campaigns.insert() لحفظ الحملة.

    // Insert the campaign.
    Campaign result = service.Campaigns.Insert(campaign, profileId).Execute();
    

Java

  1. أنشئ كائن Campaign واضبط خصائصه المطلوبة:

    • advertiserId - المعلِن المطلوب ربط هذه الحملة به.
    • name - يجب أن يكون هذا العمود فريدًا على مستوى جميع الحملات لهذا المعلِن.
    • defaultLandingPageId - الصفحة المقصودة التي سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، إذا لم يتم تعيين أحد الإعلانات لهذا الإعلان. يمكنك البحث عن الصفحات المقصودة الحالية من خلال الاتصال بالرقم advertiserLandingPages.list أو إنشاء صفحة مقصودة جديدة من خلال الاتصال على الرقم advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء - يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. يمكنك الاطّلاع على التعداد النقطي للتواريخ والأوقات في معلومات عامة حول الترميز للحصول على مزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، وذلك إذا لم يتم ملؤه في تاريخ انتهاء الحملة المحدّد.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.setName(campaignName);
    campaign.setAdvertiserId(advertiserId);
    campaign.setArchived(false);
    campaign.setDefaultLandingPageId(defaultLandingPage.getId());
    
    // Set the campaign start date. This example uses today's date.
    Calendar today = Calendar.getInstance();
    DateTime startDate = new DateTime(true, today.getTimeInMillis(), null);
    campaign.setStartDate(startDate);
    
    // Set the campaign end date. This example uses one month from today's date.
    Calendar nextMonth = Calendar.getInstance();
    nextMonth.add(Calendar.MONTH, 1);
    DateTime endDate = new DateTime(true, nextMonth.getTimeInMillis(), null);
    campaign.setEndDate(endDate);
    
  2. يمكنك الاتصال بالرقم campaigns.insert() لحفظ الحملة.

    // Insert the campaign.
    Campaign result = reporting.campaigns().insert(profileId, campaign).execute();
    

PHP

  1. أنشئ كائن Campaign واضبط خصائصه المطلوبة:

    • advertiserId - المعلِن المطلوب ربط هذه الحملة به.
    • name - يجب أن يكون هذا العمود فريدًا على مستوى جميع الحملات لهذا المعلِن.
    • defaultLandingPageId - الصفحة المقصودة التي سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، إذا لم يتم تعيين أحد الإعلانات لهذا الإعلان. يمكنك البحث عن الصفحات المقصودة الحالية من خلال الاتصال بالرقم advertiserLandingPages.list أو إنشاء صفحة مقصودة جديدة من خلال الاتصال على الرقم advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء - يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. يمكنك الاطّلاع على التعداد النقطي للتواريخ والأوقات في معلومات عامة حول الترميز للحصول على مزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، وذلك إذا لم يتم ملؤه في تاريخ انتهاء الحملة المحدّد.
    $startDate = new DateTime('today');
    $endDate = new DateTime('+1 month');
    
    $campaign = new Google_Service_Dfareporting_Campaign();
    $campaign->setAdvertiserId($values['advertiser_id']);
    $campaign->setDefaultLandingPageId($values['default_landing_page_id']);
    $campaign->setName($values['campaign_name']);
    $campaign->setStartDate($startDate->format('Y-m-d'));
    $campaign->setEndDate($endDate->format('Y-m-d'));
    
  2. يمكنك الاتصال بالرقم campaigns.insert() لحفظ الحملة.

    $result = $this->service->campaigns->insert(
        $values['user_profile_id'],
        $campaign
    );
    

Python

  1. أنشئ كائن Campaign واضبط خصائصه المطلوبة:

    • advertiserId - المعلِن المطلوب ربط هذه الحملة به.
    • name - يجب أن يكون هذا العمود فريدًا على مستوى جميع الحملات لهذا المعلِن.
    • defaultLandingPageId - الصفحة المقصودة التي سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، إذا لم يتم تعيين أحد الإعلانات لهذا الإعلان. يمكنك البحث عن الصفحات المقصودة الحالية من خلال الاتصال بالرقم advertiserLandingPages.list أو إنشاء صفحة مقصودة جديدة من خلال الاتصال على الرقم advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء - يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. يمكنك الاطّلاع على التعداد النقطي للتواريخ والأوقات في معلومات عامة حول الترميز للحصول على مزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، وذلك إذا لم يتم ملؤه في تاريخ انتهاء الحملة المحدّد.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Construct and save campaign.
    campaign = {
        'name': 'Test Campaign #%s' % uuid.uuid4(),
        'advertiserId': advertiser_id,
        'archived': 'false',
        'defaultLandingPageId': default_landing_page['id'],
        'startDate': '2015-01-01',
        'endDate': '2020-01-01'
    }
    
  2. يمكنك الاتصال بالرقم campaigns.insert() لحفظ الحملة.

    request = service.campaigns().insert(profileId=profile_id, body=campaign)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشئ كائن Campaign واضبط خصائصه المطلوبة:

    • advertiserId - المعلِن المطلوب ربط هذه الحملة به.
    • name - يجب أن يكون هذا العمود فريدًا على مستوى جميع الحملات لهذا المعلِن.
    • defaultLandingPageId - الصفحة المقصودة التي سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، إذا لم يتم تعيين أحد الإعلانات لهذا الإعلان. يمكنك البحث عن الصفحات المقصودة الحالية من خلال الاتصال بالرقم advertiserLandingPages.list أو إنشاء صفحة مقصودة جديدة من خلال الاتصال على الرقم advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء - يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. يمكنك الاطّلاع على التعداد النقطي للتواريخ والأوقات في معلومات عامة حول الترميز للحصول على مزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، وذلك إذا لم يتم ملؤه في تاريخ انتهاء الحملة المحدّد.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Create a new campaign resource to insert.
    campaign = DfareportingUtils::API_NAMESPACE::Campaign.new(
      advertiser_id: advertiser_id,
      archived: false,
      default_landing_page_id: default_landing_page.id,
      name: format('Example Campaign #%s', SecureRandom.hex(3)),
      start_date: '2014-01-01',
      end_date: '2020-01-01'
    )
    
  2. يمكنك الاتصال بالرقم campaigns.insert() لحفظ الحملة.

    # Insert the campaign.
    result = service.insert_campaign(profile_id, campaign)
    

إنشاء موضع إعلان

#C

  1. أنشِئ عنصر Placement وحدِّد خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). كما يجب التأكد من تحديد نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك على الويب.
    // Create the placement.
    Placement placement = new Placement();
    placement.Name = placementName;
    placement.CampaignId = campaignId;
    placement.Compatibility = "DISPLAY";
    placement.PaymentSource = "PLACEMENT_AGENCY_PAID";
    placement.SiteId = dfaSiteId;
    placement.TagFormats = new List<string>() { "PLACEMENT_TAG_STANDARD" };
    
    // Set the size of the placement.
    Size size = new Size();
    size.Id = sizeId;
    placement.Size = size;
    
  2. أنشئ كائن PricingSchedule جديدًا لتخصيصه لموضع الإعلان.
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.EndDate = campaign.EndDate;
    pricingSchedule.PricingType = "PRICING_TYPE_CPM";
    pricingSchedule.StartDate = campaign.StartDate;
    placement.PricingSchedule = pricingSchedule;
    
  3. يمكنك حفظ الكائن Placement من خلال استدعاء placements.insert(). تأكّد من تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();
    

Java

  1. أنشِئ عنصر Placement وحدِّد خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). كما يجب التأكد من تحديد نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك على الويب.
    // Create the placement.
    Placement placement = new Placement();
    placement.setName(placementName);
    placement.setCampaignId(campaignId);
    placement.setCompatibility("DISPLAY");
    placement.setPaymentSource("PLACEMENT_AGENCY_PAID");
    placement.setSiteId(dfaSiteId);
    placement.setTagFormats(ImmutableList.of("PLACEMENT_TAG_STANDARD"));
    
    // Set the size of the placement.
    Size size = new Size();
    size.setId(sizeId);
    placement.setSize(size);
    
  2. أنشئ كائن PricingSchedule جديدًا لتخصيصه لموضع الإعلان.
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.setEndDate(campaign.getEndDate());
    pricingSchedule.setPricingType("PRICING_TYPE_CPM");
    pricingSchedule.setStartDate(campaign.getStartDate());
    placement.setPricingSchedule(pricingSchedule);
    
  3. يمكنك حفظ الكائن Placement من خلال استدعاء placements.insert(). تأكّد من تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();
    

PHP

  1. أنشِئ عنصر Placement وحدِّد خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). كما يجب التأكد من تحديد نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك على الويب.
    $placement = new Google_Service_Dfareporting_Placement();
    $placement->setCampaignId($values['campaign_id']);
    $placement->setCompatibility('DISPLAY');
    $placement->setName($values['placement_name']);
    $placement->setPaymentSource('PLACEMENT_AGENCY_PAID');
    $placement->setSiteId($values['site_id']);
    $placement->setTagFormats(['PLACEMENT_TAG_STANDARD']);
    
    // Set the size of the placement.
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $placement->setSize($size);
    
  2. أنشئ كائن PricingSchedule جديدًا لتخصيصه لموضع الإعلان.
    // Set the pricing schedule for the placement.
    $pricingSchedule = new Google_Service_Dfareporting_PricingSchedule();
    $pricingSchedule->setEndDate($campaign->getEndDate());
    $pricingSchedule->setPricingType('PRICING_TYPE_CPM');
    $pricingSchedule->setStartDate($campaign->getStartDate());
    $placement->setPricingSchedule($pricingSchedule);
    
  3. يمكنك حفظ الكائن Placement من خلال استدعاء placements.insert(). تأكّد من تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );
    

Python

  1. أنشِئ عنصر Placement وحدِّد خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). كما يجب التأكد من تحديد نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك على الويب.
    # Construct and save placement.
    placement = {
        'name': 'Test Placement',
        'campaignId': campaign_id,
        'compatibility': 'DISPLAY',
        'siteId': site_id,
        'size': {
            'height': '1',
            'width': '1'
        },
        'paymentSource': 'PLACEMENT_AGENCY_PAID',
        'tagFormats': ['PLACEMENT_TAG_STANDARD']
    }
    
  2. أنشئ كائن PricingSchedule جديدًا لتخصيصه لموضع الإعلان.
    # Set the pricing schedule for the placement.
    placement['pricingSchedule'] = {
        'startDate': campaign['startDate'],
        'endDate': campaign['endDate'],
        'pricingType': 'PRICING_TYPE_CPM'
    }
    
  3. يمكنك حفظ الكائن Placement من خلال استدعاء placements.insert(). تأكّد من تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    request = service.placements().insert(profileId=profile_id, body=placement)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشِئ عنصر Placement وحدِّد خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). كما يجب التأكد من تحديد نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك على الويب.
    # Create a new placement resource to insert.
    placement = DfareportingUtils::API_NAMESPACE::Placement.new(
      campaign_id: campaign_id,
      compatibility: 'DISPLAY',
      name: 'Example Placement',
      payment_source: 'PLACEMENT_AGENCY_PAID',
      site_id: site_id,
      size: DfareportingUtils::API_NAMESPACE::Size.new(
        height: 1,
        width: 1
      ),
      tag_formats: ['PLACEMENT_TAG_STANDARD']
    )
    
  2. أنشئ كائن PricingSchedule جديدًا لتخصيصه لموضع الإعلان.
    # Set the pricing schedule for the placement.
    placement.pricing_schedule =
      DfareportingUtils::API_NAMESPACE::PricingSchedule.new(
        end_date: campaign.end_date,
        pricing_type: 'PRICING_TYPE_CPM',
        start_date: campaign.start_date
      )
    
  3. يمكنك حفظ الكائن Placement من خلال استدعاء placements.insert(). تأكّد من تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    # Insert the placement strategy.
    result = service.insert_placement(profile_id, placement)
    

تحميل مواد العرض

يمكنك تحميل العديد من أنواع مواد العرض من خلال عملية تُعرف باسم تحميل الوسائط. على الرغم من أنّ هذه العملية مماثلة لجميع أنواع تصميمات الإعلانات، قد تتطلب بعض الأنواع تمرير خصائص معيّنة كبيانات وصفية حتى يتم استخدامها بشكل صحيح.

#C

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. ويجب تحديد assetIdentifier في جميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، وهي اسم مادة العرض على الخادم. يجب أن يشتمل الاسم على امتداد يشير إلى نوع الملف مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّ هذا الاسم يمكن أن يغيّره "مدير الحملة 360" ليصبح فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها.
    • السمة type التي تحدد نوع مادة العرض. سيحدِّد هذا الموقع أنواع تصميمات الإعلانات التي يمكن ربط مادة العرض هذه بها.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.Name = Path.GetFileName(assetFile);
    assetId.Type = assetType;
    
  2. يمكنك تحميل الملف من خلال الاتصال بالرقم creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. وفي حال نجاح الإجراء، سيتم عرض مورد "CreativeAsset" مع assetIdentifier الذي ستستخدمه لتخصيص مادة العرض هذه لتصميم إعلان.

    // Prepare an input stream.
    FileStream assetContent = new FileStream(assetFile, FileMode.Open, FileAccess.Read);
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.AssetIdentifier = assetId;
    
    // Insert the creative.
    String mimeType = determineMimeType(assetFile, assetType);
    CreativeAssetsResource.InsertMediaUpload request =
        Service.CreativeAssets.Insert(metaData, ProfileId, AdvertiserId, assetContent, mimeType);
    
    IUploadProgress progress = request.Upload();
    if (UploadStatus.Failed.Equals(progress.Status)) {
        throw progress.Exception;
    }
    

Java

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. ويجب تحديد assetIdentifier في جميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، وهي اسم مادة العرض على الخادم. يجب أن يشتمل الاسم على امتداد يشير إلى نوع الملف مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّ هذا الاسم يمكن أن يغيّره "مدير الحملة 360" ليصبح فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها.
    • السمة type التي تحدد نوع مادة العرض. سيحدِّد هذا الموقع أنواع تصميمات الإعلانات التي يمكن ربط مادة العرض هذه بها.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.setName(assetName);
    assetId.setType(assetType);
    
  2. يمكنك تحميل الملف من خلال طلب الرقم creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. وفي حال نجاح الإجراء، سيتم عرض مورد "CreativeAsset" مع assetIdentifier الذي ستستخدمه لتعيين مادة العرض هذه لتصميم إعلان.

    // Open the asset file.
    File file = new File(assetFile);
    
    // Prepare an input stream.
    String contentType = getMimeType(assetFile);
    InputStreamContent assetContent =
        new InputStreamContent(contentType, new BufferedInputStream(new FileInputStream(file)));
    assetContent.setLength(file.length());
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.setAssetIdentifier(assetId);
    
    // Insert the creative.
    CreativeAssetMetadata result = reporting.creativeAssets()
        .insert(profileId, advertiserId, metaData, assetContent).execute();
    

PHP

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. ويجب تحديد assetIdentifier في جميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، وهي اسم مادة العرض على الخادم. يجب أن يشتمل الاسم على امتداد يشير إلى نوع الملف مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّ هذا الاسم يمكن أن يغيّره "مدير الحملة 360" ليصبح فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها.
    • السمة type التي تحدد نوع مادة العرض. سيحدِّد هذا الموقع أنواع تصميمات الإعلانات التي يمكن ربط مادة العرض هذه بها.
    $assetId = new Google_Service_Dfareporting_CreativeAssetId();
    $assetId->setName($asset['name']);
    $assetId->setType($type);
    
  2. يمكنك تحميل الملف من خلال طلب الرقم creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. وفي حال نجاح الإجراء، سيتم عرض مورد "CreativeAsset" مع assetIdentifier الذي ستستخدمه لتعيين مادة العرض هذه لتصميم إعلان.

    $metadata = new Google_Service_Dfareporting_CreativeAssetMetadata();
    $metadata->setAssetIdentifier($assetId);
    
    $result = $service->creativeAssets->insert(
        $userProfileId,
        $advertiserId,
        $metadata,
        ['data' => file_get_contents($asset['tmp_name']),
         'mimeType' => $asset['type'],
         'uploadType' => 'multipart']
    );
    

Python

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. ويجب تحديد assetIdentifier في جميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، وهي اسم مادة العرض على الخادم. يجب أن يشتمل الاسم على امتداد يشير إلى نوع الملف مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّ هذا الاسم يمكن أن يغيّره "مدير الحملة 360" ليصبح فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها.
    • السمة type التي تحدد نوع مادة العرض. سيحدِّد هذا الموقع أنواع تصميمات الإعلانات التي يمكن ربط مادة العرض هذه بها.
    # Construct the creative asset metadata
    creative_asset = {'assetIdentifier': {'name': asset_name, 'type': asset_type}}
    
  2. يمكنك تحميل الملف من خلال الاتصال بالرقم creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. وفي حال نجاح الإجراء، سيتم عرض مورد "CreativeAsset" مع assetIdentifier الذي ستستخدمه لتخصيص مادة العرض هذه لتصميم إعلان.

    media = MediaFileUpload(path_to_asset_file)
    if not media.mimetype():
      media = MediaFileUpload(path_to_asset_file, 'application/octet-stream')
    
    response = service.creativeAssets().insert(
        advertiserId=advertiser_id,
        profileId=profile_id,
        media_body=media,
        body=creative_asset).execute()
    

Ruby

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. ويجب تحديد assetIdentifier في جميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، وهي اسم مادة العرض على الخادم. يجب أن يشتمل الاسم على امتداد يشير إلى نوع الملف مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّ هذا الاسم يمكن أن يغيّره "مدير الحملة 360" ليصبح فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها.
    • السمة type التي تحدد نوع مادة العرض. سيحدِّد هذا الموقع أنواع تصميمات الإعلانات التي يمكن أن ترتبط بها مادة العرض هذه.
    # Construct the creative asset metadata
    creative_asset = DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
      asset_identifier: DfareportingUtils::API_NAMESPACE::CreativeAssetId.new(
        name: asset_name,
        type: asset_type
      )
    )
    
  2. يمكنك تحميل الملف من خلال الاتصال بالرقم creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. وفي حال نجاح الإجراء، سيتم عرض مورد "CreativeAsset" مع assetIdentifier الذي ستستخدمه لتخصيص مادة العرض هذه لتصميم إعلان.

    # Upload the asset.
    mime_type = determine_mime_type(path_to_asset_file, asset_type)
    
    result = @service.insert_creative_asset(
      @profile_id,
      advertiser_id,
      creative_asset,
      content_type: mime_type,
      upload_source: path_to_asset_file
    )
    

إنشاء تصميم إعلان

يلتف العنصر Creative مادة عرض حالية. واعتمادًا على كيفية استخدامك للمواد الإبداعية على صفحة المضيف، يمكنك إنشاء كائنات Creative لأنواع مختلفة من التصميمات. راجِع المستندات المرجعية لتحديد النوع المناسب لك.

يوضح المثال التالي كيفية إنشاء تصميم إعلان جديد بتنسيق HTML5.

#C

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجع تحميل مواد العرض لمعرفة التفاصيل. في كلّ مرة تحمّل فيها مادة عرض بنجاح، ستحصل على assetIdenfitier في الردّ. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في تصميم إعلانك، بدلاً من معرّف تقليدي.
  2. أنشِئ تصميم إعلان وحدِّد قيمًا مناسبة. إنشاء مثيل Creative وضبط type المناسب لا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.AdvertiserId = advertiserId;
    creative.Name = "Test HTML5 display creative";
    creative.Size = new Size() { Id = sizeId };
    creative.Type = "DISPLAY";
    
    // Upload the HTML5 asset.
    CreativeAssetUtils assetUtils = new CreativeAssetUtils(service, profileId, advertiserId);
    CreativeAssetId html5AssetId =
        assetUtils.uploadAsset(pathToHtml5AssetFile, "HTML").AssetIdentifier;
    
    CreativeAsset html5Asset = new CreativeAsset();
    html5Asset.AssetIdentifier = html5AssetId;
    html5Asset.Role = "PRIMARY";
    
    // Upload the backup image asset.
    CreativeAssetId imageAssetId =
        assetUtils.uploadAsset(pathToImageAssetFile, "HTML_IMAGE").AssetIdentifier;
    
    CreativeAsset imageAsset = new CreativeAsset();
    imageAsset.AssetIdentifier = imageAssetId;
    imageAsset.Role = "BACKUP_IMAGE";
    
    // Add the creative assets.
    creative.CreativeAssets = new List<CreativeAsset>() { html5Asset, imageAsset };
    
    // Configure the bacup image.
    creative.BackupImageClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.BackupImageReportingLabel = "backup";
    creative.BackupImageTargetWindow = new TargetWindow() { TargetWindowOption = "NEW_WINDOW" };
    
    // Add a click tag.
    ClickTag clickTag = new ClickTag();
    clickTag.Name = "clickTag";
    clickTag.EventName = "exit";
    clickTag.ClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.ClickTags = new List<ClickTag>() { clickTag };
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بالرقم creatives.insert(). يلزم تحديد رقم تعريفي للمعلِن ليتم ربط تصميم الإعلان هذا به.
    Creative result = service.Creatives.Insert(creative, profileId).Execute();
    
  4. (اختياري) اربط تصميم الإعلان بإحدى الحملات. ويمكن إجراء ذلك من خلال استدعاء campaignCreativeAssociations.insert()، مع إدخال أرقام تعريف الحملة وتصميمات الإعلانات.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
    

Java

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجع تحميل مواد العرض لمعرفة التفاصيل. في كلّ مرة تحمّل فيها مادة عرض بنجاح، ستحصل على assetIdenfitier في الردّ. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في تصميم إعلانك، بدلاً من معرّف تقليدي.
  2. أنشِئ تصميم إعلان وحدِّد قيمًا مناسبة. إنشاء مثيل Creative وضبط type المناسب لا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.setAdvertiserId(advertiserId);
    creative.setName("Test HTML5 display creative");
    creative.setSize(new Size().setId(sizeId));
    creative.setType("DISPLAY");
    
    // Upload the HTML5 asset.
    CreativeAssetId html5AssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, HTML5_ASSET_NAME, PATH_TO_HTML5_ASSET_FILE, "HTML").getAssetIdentifier();
    
    CreativeAsset html5Asset =
        new CreativeAsset().setAssetIdentifier(html5AssetId).setRole("PRIMARY");
    
    // Upload the backup image asset (note: asset type must be set to HTML_IMAGE).
    CreativeAssetId imageAssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, IMAGE_ASSET_NAME, PATH_TO_IMAGE_ASSET_FILE, "HTML_IMAGE")
        .getAssetIdentifier();
    
    CreativeAsset backupImageAsset =
        new CreativeAsset().setAssetIdentifier(imageAssetId).setRole("BACKUP_IMAGE");
    
    // Add the creative assets.
    creative.setCreativeAssets(ImmutableList.of(html5Asset, backupImageAsset));
    
    // Configure the backup image.
    creative.setBackupImageClickThroughUrl(
        new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setBackupImageReportingLabel("backup");
    creative.setBackupImageTargetWindow(new TargetWindow().setTargetWindowOption("NEW_WINDOW"));
    
    // Add a click tag.
    ClickTag clickTag =
        new ClickTag().setName("clickTag").setEventName("exit").setClickThroughUrl(
            new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setClickTags(ImmutableList.of(clickTag));
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بالرقم creatives.insert(). يلزم تحديد رقم تعريفي للمعلِن ليتم ربط تصميم الإعلان هذا به.
    Creative result = reporting.creatives().insert(profileId, creative).execute();
    
  4. (اختياري) اربط تصميم الإعلان بإحدى الحملات. ويمكن إجراء ذلك من خلال استدعاء campaignCreativeAssociations.insert()، مع إدخال أرقام تعريف الحملة وتصميمات الإعلانات.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();
    

PHP

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجع تحميل مواد العرض لمعرفة التفاصيل. في كلّ مرة تحمّل فيها مادة عرض بنجاح، ستحصل على assetIdenfitier في الردّ. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في تصميم إعلانك، بدلاً من معرّف تقليدي.
  2. أنشِئ تصميم إعلان وحدِّد قيمًا مناسبة. إنشاء مثيل Creative وضبط type المناسب لا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole.
    $creative = new Google_Service_Dfareporting_Creative();
    $creative->setAdvertiserId($values['advertiser_id']);
    $creative->setAutoAdvanceImages(true);
    $creative->setName('Test HTML5 display creative');
    $creative->setType('DISPLAY');
    
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $creative->setSize($size);
    
    // Upload the HTML5 asset.
    $html = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['html_asset_file'],
        'HTML'
    );
    
    $htmlAsset = new Google_Service_Dfareporting_CreativeAsset();
    $htmlAsset->setAssetIdentifier($html->getAssetIdentifier());
    $htmlAsset->setRole('PRIMARY');
    
    // Upload the backup image asset.
    $image = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['image_asset_file'],
        'HTML_IMAGE'
    );
    
    $imageAsset = new Google_Service_Dfareporting_CreativeAsset();
    $imageAsset->setAssetIdentifier($image->getAssetIdentifier());
    $imageAsset->setRole('BACKUP_IMAGE');
    
    // Add the creative assets.
    $creative->setCreativeAssets([$htmlAsset, $imageAsset]);
    
    // Configure the default click-through URL.
    $clickThroughUrl =
        new Google_Service_Dfareporting_CreativeClickThroughUrl();
    $clickThroughUrl->setLandingPageId($values['landing_page_id']);
    
    // Configure the backup image.
    $creative->setBackupImageClickThroughUrl($clickThroughUrl);
    $creative->setBackupImageReportingLabel('backup');
    
    $targetWindow = new Google_Service_Dfareporting_TargetWindow();
    $targetWindow->setTargetWindowOption('NEW_WINDOW');
    $creative->setBackupImageTargetWindow($targetWindow);
    
    // Add a click tag.
    $clickTag = new Google_Service_Dfareporting_ClickTag();
    $clickTag->setName('clickTag');
    $clickTag->setEventName('exit');
    $clickTag->setClickThroughUrl($clickThroughUrl);
    $creative->setClickTags([$clickTag]);
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بالرقم creatives.insert(). يلزم تحديد رقم تعريفي للمعلِن ليتم ربط تصميم الإعلان هذا به.
    $result = $this->service->creatives->insert(
        $values['user_profile_id'],
        $creative
    );
    
  4. (اختياري) اربط تصميم الإعلان بإحدى الحملات. ويمكن إجراء ذلك من خلال استدعاء campaignCreativeAssociations.insert()، مع إدخال أرقام تعريف الحملة وتصميمات الإعلانات.
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );
    

Python

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجع تحميل مواد العرض لمعرفة التفاصيل. في كلّ مرة تحمّل فيها مادة عرض بنجاح، ستحصل على assetIdenfitier في الردّ. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في تصميم إعلانك، بدلاً من معرّف تقليدي.
  2. أنشِئ تصميم إعلان وحدِّد قيمًا مناسبة. إنشاء مثيل Creative وضبط type المناسب لا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Upload the HTML5 asset
    html5_asset_id = upload_creative_asset(service, profile_id, advertiser_id,
                                           html5_asset_name,
                                           path_to_html5_asset_file, 'HTML')
    
    # Upload the backup image asset
    backup_image_asset_id = upload_creative_asset(
        service, profile_id, advertiser_id, backup_image_name,
        path_to_backup_image_file, 'HTML_IMAGE')
    
    # Construct the creative structure.
    creative = {
        'advertiserId': advertiser_id,
        'backupImageClickThroughUrl': {
            'landingPageId': default_landing_page['id']
        },
        'backupImageReportingLabel': 'backup_image_exit',
        'backupImageTargetWindow': {'targetWindowOption': 'NEW_WINDOW'},
        'clickTags': [{
            'eventName': 'exit',
            'name': 'click_tag',
            'clickThroughUrl': {'landingPageId': default_landing_page['id']}
        }],
        'creativeAssets': [
            {'assetIdentifier': html5_asset_id, 'role': 'PRIMARY'},
            {'assetIdentifier': backup_image_asset_id, 'role': 'BACKUP_IMAGE'}
        ],
        'name': 'Test HTML5 display creative',
        'size': {'id': size_id},
        'type': 'DISPLAY'
    }
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بالرقم creatives.insert(). يلزم تحديد رقم تعريفي للمعلِن ليتم ربط تصميم الإعلان هذا به.
    request = service.creatives().insert(profileId=profile_id, body=creative)
    
    # Execute request and print response.
    response = request.execute()
    
  4. (اختياري) اربط تصميم الإعلان بإحدى الحملات. ويمكن إجراء ذلك من خلال استدعاء campaignCreativeAssociations.insert()، مع إدخال أرقام تعريف الحملة وتصميمات الإعلانات.
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجع تحميل مواد العرض لمعرفة التفاصيل. في كلّ مرة تحمّل فيها مادة عرض بنجاح، ستحصل على assetIdenfitier في الردّ. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في تصميم إعلانك، بدلاً من معرّف تقليدي.
  2. أنشِئ تصميم إعلان وحدِّد قيمًا مناسبة. إنشاء مثيل Creative وضبط type المناسب لا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Upload the HTML5 asset.
    html5_asset_id = util.upload_asset(advertiser_id, path_to_html5_asset_file,
      'HTML').asset_identifier
    
    # Upload the backup image asset.
    backup_image_asset_id = util.upload_asset(advertiser_id,
      path_to_backup_image_file, 'HTML_IMAGE').asset_identifier
    
    # Construct the creative structure.
    creative = DfareportingUtils::API_NAMESPACE::Creative.new(
      advertiser_id: advertiser_id,
      backup_image_click_through_url:
        DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
          landing_page_id: default_landing_page.id
        ),
      backup_image_reporting_label: 'backup',
      backup_image_target_window:
        DfareportingUtils::API_NAMESPACE::TargetWindow.new(
          target_window_option: 'NEW_WINDOW'
        ),
      click_tags: [
        DfareportingUtils::API_NAMESPACE::ClickTag.new(
          event_name: 'exit',
          name: 'click_tag',
          click_through_url:
            DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
              landing_page_id: default_landing_page.id
            )
        )
      ],
      creative_assets: [
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: html5_asset_id,
          role: 'PRIMARY'
        ),
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: backup_image_asset_id,
          role: 'BACKUP_IMAGE'
        )
      ],
      name: 'Example HTML5 display creative',
      size: DfareportingUtils::API_NAMESPACE::Size.new(id: size_id),
      type: 'DISPLAY'
    )
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بالرقم creatives.insert(). يلزم تحديد رقم تعريفي للمعلِن ليتم ربط تصميم الإعلان هذا به.
    # Insert the creative.
    result = service.insert_creative(profile_id, creative)
    
  4. (اختياري) اربط تصميم الإعلان بإحدى الحملات. ويمكن إجراء ذلك من خلال استدعاء campaignCreativeAssociations.insert()، مع إدخال أرقام تعريف الحملة وتصميمات الإعلانات.
    # Create a new creative-campaign association to insert
    association =
      DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new(
        creative_id: creative_id
      )
    
    # Insert the advertiser group.
    result = service.insert_campaign_creative_association(profile_id, campaign_id,
      association)
    

إنشاء إعلان

السمة Ad هي الرابط بين Creative وPlacement. يمكن ربط Ad بموضع إعلان واحد أو أكثر، وبه تصميم إعلان واحد أو أكثر.

يمكنك إنشاء Ad بشكل صريح أو ضمني.

بشكلٍ صريح

#C

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.DefaultLandingPage = true;
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.Active = true;
    creativeAssignment.CreativeId = creativeId;
    creativeAssignment.ClickThroughUrl = clickThroughUrl;
    
  2. أنشِئ عنصر CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض للإعلانات بالتناوب، تأكّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
        creativeAssignment
    };
    
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.Active = true;
    placementAssignment.PlacementId = placementId;
    
  4. أنشئ عنصر Ad. يجب ضبط قيمة CreativeRotation على الحقل creativeRotation للعنصر Ad وplacementAssignments في مصفوفة placementAssignments لعنصر Ad.
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.ImpressionRatio = 1;
    deliverySchedule.Priority = "AD_PRIORITY_01";
    
    DateTime startDate = DateTime.Now;
    DateTime endDate = Convert.ToDateTime(campaign.EndDate);
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.Active = true;
    rotationGroup.CampaignId = campaignId;
    rotationGroup.CreativeRotation = creativeRotation;
    rotationGroup.DeliverySchedule = deliverySchedule;
    rotationGroup.StartTime = startDate;
    rotationGroup.EndTime = endDate;
    rotationGroup.Name = adName;
    rotationGroup.PlacementAssignments = new List<PlacementAssignment>() {
        placementAssignment
    };
    rotationGroup.Type = "AD_SERVING_STANDARD_AD";
    
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    // Insert the rotation group.
    Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();
    

Java

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.setDefaultLandingPage(true);
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.setActive(true);
    creativeAssignment.setCreativeId(creativeId);
    creativeAssignment.setClickThroughUrl(clickThroughUrl);
    
  2. أنشِئ عنصر CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض للإعلانات بالتناوب، تأكّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
    
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.setActive(true);
    placementAssignment.setPlacementId(placementId);
    
  4. أنشئ عنصر Ad. يجب ضبط قيمة CreativeRotation على الحقل creativeRotation للعنصر Ad وplacementAssignments في مصفوفة placementAssignments لعنصر Ad.
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.setImpressionRatio(1L);
    deliverySchedule.setPriority("AD_PRIORITY_01");
    
    DateTime startDate = new DateTime(new Date());
    DateTime endDate = new DateTime(campaign.getEndDate().getValue());
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.setActive(true);
    rotationGroup.setCampaignId(campaignId);
    rotationGroup.setCreativeRotation(creativeRotation);
    rotationGroup.setDeliverySchedule(deliverySchedule);
    rotationGroup.setStartTime(startDate);
    rotationGroup.setEndTime(endDate);
    rotationGroup.setName(adName);
    rotationGroup.setPlacementAssignments(ImmutableList.of(placementAssignment));
    rotationGroup.setType("AD_SERVING_STANDARD_AD");
    
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    // Insert the rotation group.
    Ad result = reporting.ads().insert(profileId, rotationGroup).execute();
    

PHP

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    $url = new Google_Service_Dfareporting_ClickThroughUrl();
    $url->setDefaultLandingPage(true);
    
    // Create a creative assignment.
    $creativeAssignment =
        new Google_Service_Dfareporting_CreativeAssignment();
    $creativeAssignment->setActive(true);
    $creativeAssignment->setCreativeId($values['creative_id']);
    $creativeAssignment->setClickThroughUrl($url);
    
  2. أنشِئ عنصر CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض للإعلانات بالتناوب، تأكّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    // Create a creative rotation.
    $creativeRotation = new Google_Service_Dfareporting_CreativeRotation();
    $creativeRotation->setCreativeAssignments([$creativeAssignment]);
    
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    $placementAssignment =
        new Google_Service_Dfareporting_PlacementAssignment();
    $placementAssignment->setActive(true);
    $placementAssignment->setPlacementId($values['placement_id']);
    
  4. أنشئ عنصر Ad. يجب ضبط قيمة CreativeRotation على الحقل creativeRotation للعنصر Ad وplacementAssignments في مصفوفة placementAssignments لعنصر Ad.
    // Create a delivery schedule.
    $deliverySchedule = new Google_Service_Dfareporting_DeliverySchedule();
    $deliverySchedule->setImpressionRatio(1);
    $deliverySchedule->SetPriority('AD_PRIORITY_01');
    
    $startDate = new DateTime('today');
    $endDate = new DateTime($campaign->getEndDate());
    
    // Create a rotation group.
    $ad = new Google_Service_Dfareporting_Ad();
    $ad->setActive(true);
    $ad->setCampaignId($values['campaign_id']);
    $ad->setCreativeRotation($creativeRotation);
    $ad->setDeliverySchedule($deliverySchedule);
    $ad->setStartTime($startDate->format('Y-m-d') . 'T23:59:59Z');
    $ad->setEndTime($endDate->format('Y-m-d') . 'T00:00:00Z');
    $ad->setName($values['ad_name']);
    $ad->setPlacementAssignments([$placementAssignment]);
    $ad->setType('AD_SERVING_STANDARD_AD');
    
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    $result = $this->service->ads->insert($values['user_profile_id'], $ad);
    

Python

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    # Construct creative assignment.
    creative_assignment = {
        'active': 'true',
        'creativeId': creative_id,
        'clickThroughUrl': {
            'defaultLandingPage': 'true'
        }
    }
    
  2. أنشِئ عنصر CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض للإعلانات بالتناوب، تأكّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    # Construct creative rotation.
    creative_rotation = {
        'creativeAssignments': [creative_assignment],
        'type': 'CREATIVE_ROTATION_TYPE_RANDOM',
        'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED'
    }
    
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    # Construct placement assignment.
    placement_assignment = {
        'active': 'true',
        'placementId': placement_id,
    }
    
  4. أنشئ عنصر Ad. يجب ضبط قيمة CreativeRotation على الحقل creativeRotation للعنصر Ad وplacementAssignments في مصفوفة placementAssignments لعنصر Ad.
    # Construct delivery schedule.
    delivery_schedule = {
        'impressionRatio': '1',
        'priority': 'AD_PRIORITY_01'
    }
    
    # Construct and save ad.
    ad = {
        'active': 'true',
        'campaignId': campaign_id,
        'creativeRotation': creative_rotation,
        'deliverySchedule': delivery_schedule,
        'endTime': '%sT00:00:00Z' % campaign['endDate'],
        'name': 'Test Rotation Group',
        'placementAssignments': [placement_assignment],
        'startTime': '%sT23:59:59Z' % time.strftime('%Y-%m-%d'),
        'type': 'AD_SERVING_STANDARD_AD'
    }
    
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    request = service.ads().insert(profileId=profile_id, body=ad)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    # Construct creative assignment.
    creative_assignment =
      DfareportingUtils::API_NAMESPACE::CreativeAssignment.new(
        active: true,
        creative_id: creative_id,
        click_through_url: DfareportingUtils::API_NAMESPACE::ClickThroughUrl.new(
          default_landing_page: true
        )
      )
    
  2. أنشِئ عنصر CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض للإعلانات بالتناوب، تأكّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    # Construct creative rotation.
    creative_rotation = DfareportingUtils::API_NAMESPACE::CreativeRotation.new(
      creative_assignments: [creative_assignment],
      type: 'CREATIVE_ROTATION_TYPE_RANDOM',
      weight_calculation_strategy: 'WEIGHT_STRATEGY_OPTIMIZED'
    )
    
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    # Construct placement assignment.
    placement_assignment =
      DfareportingUtils::API_NAMESPACE::PlacementAssignment.new(
        active: true,
        placement_id: placement_id
      )
    
  4. أنشئ عنصر Ad. يجب ضبط قيمة CreativeRotation على الحقل creativeRotation للعنصر Ad وplacementAssignments في مصفوفة placementAssignments لعنصر Ad.
    # Construct delivery schedule.
    delivery_schedule = DfareportingUtils::API_NAMESPACE::DeliverySchedule.new(
      impression_ratio: 1,
      priority: 'AD_PRIORITY_01'
    )
    
    # Construct and save ad.
    ad = DfareportingUtils::API_NAMESPACE::Ad.new(
      active: true,
      campaign_id: campaign_id,
      creative_rotation: creative_rotation,
      delivery_schedule: delivery_schedule,
      end_time: format('%sT00:00:00Z', campaign.end_date),
      name: 'Example Rotation Group',
      placement_assignments: [placement_assignment],
      start_time: format('%sT23:59:59Z', Time.now.strftime('%Y-%m-%d')),
      type: 'AD_SERVING_STANDARD_AD'
    )
    
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    result = service.insert_ad(profile_id, ad)
    

ضمنيًا

#C

  1. إنشاء Placement وحفظها
  2. إنشاء Creative وحفظها
  3. اربط Creative بعنصر Campaign نفسه المستخدَم في Placement من خلال طلب campaignCreativeAssociations.insert() (راجِع الخطوة 4 في القسم إنشاء تصميم إعلان). وسيؤدي هذا إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضعه.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
    

Java

  1. إنشاء Placement وحفظها
  2. إنشاء Creative وحفظها
  3. اربط Creative بعنصر Campaign نفسه المستخدَم في Placement من خلال طلب campaignCreativeAssociations.insert() (راجِع الخطوة 4 في القسم إنشاء تصميم إعلان). وسيؤدي هذا إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضعه.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();
    

PHP

  1. إنشاء Placement وحفظها
  2. إنشاء Creative وحفظها
  3. اربط Creative بعنصر Campaign نفسه المستخدَم في Placement من خلال طلب campaignCreativeAssociations.insert() (راجِع الخطوة 4 في القسم إنشاء تصميم إعلان). وسيؤدي هذا إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضعه.
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );
    

Python

  1. إنشاء Placement وحفظها
  2. إنشاء Creative وحفظها
  3. اربط Creative بعنصر Campaign نفسه المستخدَم في Placement من خلال طلب campaignCreativeAssociations.insert() (راجِع الخطوة 4 في القسم إنشاء تصميم إعلان). وسيؤدي هذا إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضعه.
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. إنشاء Placement وحفظها
  2. إنشاء Creative وحفظها
  3. اربط Creative بعنصر Campaign نفسه المستخدَم في Placement من خلال طلب campaignCreativeAssociations.insert() (راجِع الخطوة 4 في القسم إنشاء تصميم إعلان). وسيؤدي هذا إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضعه.
    # Create a new creative-campaign association to insert
    association =
      DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new(
        creative_id: creative_id
      )
    
    # Insert the advertiser group.
    result = service.insert_campaign_creative_association(profile_id, campaign_id,
      association)
    

ويوفر إنشاء إعلان ضمنيًا الخطوة الإضافية المتمثلة في إنشاء Ad. تجدر الإشارة إلى أنّ ذلك لا يمكن تنفيذه إلا في حال عدم وجود إعلان تلقائي بالحجم المحدّد في حملتك.

البحث عن عناصر

يمكنك البحث عن العناصر من خلال استدعاء العملية list() التي تعرضها الخدمة التي تحدد العنصر المطلوب البحث عنه، مع تحديد معايير اختيارية مناسبة لنوع الكائن هذا. وبالتالي، مثلاً للبحث عن عناصر "الإعلانات"، يمكنك استدعاء ads.list(). تكشف المعايير الاختيارية عن مجموعة من الخصائص المناسبة لهذا الكائن؛ واملأ أكبر عدد ممكن من الخصائص التي تريد البحث عنها. لن يعرض البحث سوى الكائنات التي تستوفي جميع معاييرك. لا يمكنك إجراء بحث يطابق أي معايير. وتسمح السلاسل باستخدام حرف البدل *، وهي ليست حسّاسة لحالة الأحرف، وتتطابق ضمن سلاسل أكبر.

لتحسين الأداء، يمكن طلب ردود جزئية باستخدام مَعلمة fields. يؤدي ذلك إلى توجيه الخادم لإرجاع الحقول التي تحددها فقط، بدلاً من عرض المورد الكامل. يمكن العثور على مزيد من المعلومات عن هذا الموضوع في دليل نصائح الأداء.

ترقيم الصفحات

أحيانًا لا يكون من المستحسن استرداد جميع نتائج طلب list(). على سبيل المثال، قد تكون مهتمًا فقط بأحدث 10 إعلانات من بين مجموعة من الآلاف. للمساعدة في ذلك، تتيح لك العديد من طُرق list() طلب نتائج أقل من خلال عملية تُعرف باسم ترقيم الصفحات.

تعرض الطرق التي تتيح التقسيم على صفحات مجموعات فرعية من النتائج في مجموعات تُسمى الصفحات. الحد الأقصى لعدد النتائج لكل صفحة هو 1,000 (الإعداد التلقائي). يمكنك تغيير عدد النتائج لكل صفحة من خلال ضبط maxResults، ويمكنك التكرار خلال الصفحات التي تستخدم nextPageToken التي يتم عرضها في الرد:

#C

// Limit the fields returned.
String fields = "nextPageToken,ads(advertiserId,id,name)";

AdsListResponse result;
String nextPageToken = null;

do {
  // Create and execute the ad list request.
  AdsResource.ListRequest request = service.Ads.List(profileId);
  request.Active = true;
  request.Fields = fields;
  request.PageToken = nextPageToken;
  result = request.Execute();

  foreach (Ad ad in result.Ads) {
    Console.WriteLine(
        "Ad with ID {0} and name \"{1}\" is associated with advertiser" +
        " ID {2}.", ad.Id, ad.Name, ad.AdvertiserId);
  }

  // Update the next page token.
  nextPageToken = result.NextPageToken;
} while (result.Ads.Any() && !String.IsNullOrEmpty(nextPageToken));

Java

// Limit the fields returned.
String fields = "nextPageToken,ads(advertiserId,id,name)";

AdsListResponse result;
String nextPageToken = null;

do {
  // Create and execute the ad list request.
  result = reporting.ads().list(profileId).setActive(true).setFields(fields)
      .setPageToken(nextPageToken).execute();

  for (Ad ad : result.getAds()) {
    System.out.printf(
        "Ad with ID %d and name \"%s\" is associated with advertiser ID %d.%n", ad.getId(),
        ad.getName(), ad.getAdvertiserId());
  }

  // Update the next page token.
  nextPageToken = result.getNextPageToken();
} while (!result.getAds().isEmpty() && !Strings.isNullOrEmpty(nextPageToken));

PHP

$response = null;
$pageToken = null;

do {
    // Create and execute the ads list request.
    $response = $this->service->ads->listAds(
        $values['user_profile_id'],
        ['active' => true, 'pageToken' => $pageToken]
    );

    foreach ($response->getAds() as $ads) {
        $this->printResultsTableRow($ads);
    }

    // Update the next page token.
    $pageToken = $response->getNextPageToken();
} while (!empty($response->getAds()) && !empty($pageToken));

Python

# Construct the request.
request = service.ads().list(profileId=profile_id, active=True)

while True:
  # Execute request and print response.
  response = request.execute()

  for ad in response['ads']:
    print 'Found ad with ID %s and name "%s".' % (ad['id'], ad['name'])

  if response['ads'] and response['nextPageToken']:
    request = service.ads().list_next(request, response)
  else:
    break

Ruby

token = nil
loop do
  result = service.list_ads(profile_id,
    page_token: token,
    fields: 'nextPageToken,ads(id,name)')

  # Display results.
  if result.ads.any?
    result.ads.each do |ad|
      puts format('Found ad with ID %d and name "%s".', ad.id, ad.name)
    end

    token = result.next_page_token
  else
    # Stop paging if there are no more results.
    token = nil
  end

  break if token.to_s.empty?
end

إنشاء علامات Floodlight

علامات Floodlight هي علامات HTML مضمّنة في صفحة تُستخدَم لتتبُّع إجراءات المستخدمين (مثل عمليات الشراء) داخل موقع إلكتروني. لإنشاء علامات Floodlight، تحتاج إلى FloodlightActivity. الذي ينتمي إلى FloodlightActivityGroup:

#C

  1. أنشِئ مجموعة أنشطة جديدة على Floodlight، مع ضبط قيم name وtype وfloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.Name = groupName;
    floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId;
    floodlightActivityGroup.Type = "COUNTER";
    
  2. يمكنك حفظ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، وسيؤدي ذلك إلى عرض رقم تعريف المجموعة الجديدة.
    // Insert the activity group.
    FloodlightActivityGroup result =
        service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
    
  3. أنشِئ نشاطًا جديدًا على Floodlight وخصِّص له رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.CountingMethod = "STANDARD_COUNTING";
    activity.Name = activityName;
    activity.FloodlightActivityGroupId = activityGroupId;
    activity.FloodlightTagType = "GLOBAL_SITE_TAG";
    activity.ExpectedUrl = url;
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والذي سيعرض رقم تعريف النشاط الجديد.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        service.FloodlightActivities.Insert(activity, profileId).Execute();
    
  5. يمكنك إنشاء العلامات من خلال الاتصال بـ floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    // Generate the floodlight activity tag.
    FloodlightActivitiesResource.GeneratetagRequest request =
        service.FloodlightActivities.Generatetag(profileId);
    request.FloodlightActivityId = activityId;
    
    FloodlightActivitiesGenerateTagResponse response = request.Execute();
    

Java

  1. أنشِئ مجموعة أنشطة جديدة على Floodlight، مع ضبط قيم name وtype وfloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.setName(groupName);
    floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId);
    floodlightActivityGroup.setType("COUNTER");
    
  2. يمكنك حفظ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، وسيؤدي ذلك إلى عرض رقم تعريف المجموعة الجديدة.
    // Insert the activity group.
    FloodlightActivityGroup result =
        reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
    
  3. أنشِئ نشاطًا جديدًا على Floodlight وخصِّص له رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.setName(activityName);
    activity.setCountingMethod("STANDARD_COUNTING");
    activity.setExpectedUrl(url);
    activity.setFloodlightActivityGroupId(activityGroupId);
    activity.setFloodlightTagType("GLOBAL_SITE_TAG");
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والذي سيعرض رقم تعريف النشاط الجديد.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        reporting.floodlightActivities().insert(profileId, activity).execute();
    
  5. يمكنك إنشاء العلامات من خلال الاتصال بـ floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    // Generate the floodlight activity tag.
    Generatetag request = reporting.floodlightActivities().generatetag(profileId);
    request.setFloodlightActivityId(activityId);
    
    FloodlightActivitiesGenerateTagResponse response = request.execute();
    

PHP

  1. أنشِئ مجموعة أنشطة جديدة على Floodlight، مع ضبط قيم name وtype وfloodlightConfigurationId.
    $group = new Google_Service_Dfareporting_FloodlightActivityGroup();
    $group->setFloodlightConfigurationId($values['configuration_id']);
    $group->setName($values['group_name']);
    $group->setType('COUNTER');
    
  2. يمكنك حفظ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، وسيؤدي ذلك إلى عرض رقم تعريف المجموعة الجديدة.
    $result = $this->service->floodlightActivityGroups->insert(
        $values['user_profile_id'],
        $group
    );
    
  3. أنشِئ نشاطًا جديدًا على Floodlight وخصِّص له رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    $activity = new Google_Service_Dfareporting_FloodlightActivity();
    $activity->setCountingMethod('STANDARD_COUNTING');
    $activity->setExpectedUrl($values['url']);
    $activity->setFloodlightActivityGroupId($values['activity_group_id']);
    $activity->setFloodlightTagType('GLOBAL_SITE_TAG');
    $activity->setName($values['activity_name']);
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والذي سيعرض رقم تعريف النشاط الجديد.
    $result = $this->service->floodlightActivities->insert(
        $values['user_profile_id'],
        $activity
    );
    
  5. يمكنك إنشاء العلامات من خلال الاتصال بـ floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    $result = $this->service->floodlightActivities->generatetag(
        $values['user_profile_id'],
        ['floodlightActivityId' => $values['activity_id']]
    );
    

Python

  1. أنشِئ مجموعة أنشطة جديدة على Floodlight، مع ضبط قيم name وtype وfloodlightConfigurationId.
    # Construct and save floodlight activity group.
    activity_group = {
        'name': 'Test Floodlight Activity Group',
        'floodlightConfigurationId': floodlight_config_id,
        'type': 'COUNTER'
    }
    
  2. يمكنك حفظ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، وسيؤدي ذلك إلى عرض رقم تعريف المجموعة الجديدة.
    request = service.floodlightActivityGroups().insert(
        profileId=profile_id, body=activity_group)
    
  3. أنشِئ نشاطًا جديدًا على Floodlight وخصِّص له رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    # Construct and save floodlight activity.
    floodlight_activity = {
        'countingMethod': 'STANDARD_COUNTING',
        'expectedUrl': 'http://www.google.com',
        'floodlightActivityGroupId': activity_group_id,
        'floodlightTagType': 'GLOBAL_SITE_TAG',
        'name': 'Test Floodlight Activity'
    }
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والذي سيعرض رقم تعريف النشاط الجديد.
    request = service.floodlightActivities().insert(
        profileId=profile_id, body=floodlight_activity)
    
  5. يمكنك إنشاء العلامات من خلال الاتصال بـ floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    # Construct the request.
    request = service.floodlightActivities().generatetag(
        profileId=profile_id, floodlightActivityId=activity_id)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشِئ مجموعة أنشطة جديدة على Floodlight، مع ضبط قيم name وtype وfloodlightConfigurationId.
    # Create a new floodlight activity group resource to insert.
    activity_group =
      DfareportingUtils::API_NAMESPACE::FloodlightActivityGroup.new(
        floodlight_configuration_id: floodlight_config_id,
        name:
          format('Example Floodlight Activity Group #%s', SecureRandom.hex(3)),
        type: 'COUNTER'
      )
    
  2. يمكنك حفظ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، وسيؤدي ذلك إلى عرض رقم تعريف المجموعة الجديدة.
    # Insert the floodlight activity group.
    result = service.insert_floodlight_activity_group(profile_id, activity_group)
    
  3. أنشِئ نشاطًا جديدًا على Floodlight وخصِّص له رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    # Create a new floodlight activity resource to insert.
    activity = DfareportingUtils::API_NAMESPACE::FloodlightActivity.new(
      counting_method: 'STANDARD_COUNTING',
      expected_url: 'http://www.google.com',
      floodlight_activity_group_id: activity_group_id,
      floodlight_tag_type: 'GLOBAL_SITE_TAG',
      name: format('Example Floodlight Activity #%s', SecureRandom.hex(3))
    )
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والذي سيعرض رقم تعريف النشاط الجديد.
    # Insert the floodlight activity.
    result = service.insert_floodlight_activity(profile_id, activity)
    
  5. يمكنك إنشاء العلامات من خلال الاتصال بـ floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    # Construct the request.
    result = service.generatetag_floodlight_activity(profile_id,
      floodlight_activity_id: activity_id)
    

إنشاء علامات مواضع إعلان

تتمثل الخطوة الأخيرة في إنشاء علامات HTML لإرسالها إلى الناشر من أجل عرض إعلاناتك. لإنشاء العلامات من خلال واجهة برمجة التطبيقات، يمكنك تقديم طلب إلى placements.generatetags()، مع تحديد مجموعة من placementIds وtagFormats.

#C

// Generate the placement activity tags.
PlacementsResource.GeneratetagsRequest request =
    service.Placements.Generatetags(profileId);
request.CampaignId = campaignId;
request.TagFormats =
    PlacementsResource.GeneratetagsRequest.TagFormatsEnum.PLACEMENTTAGIFRAMEJAVASCRIPT;
request.PlacementIds = placementId.ToString();

PlacementsGenerateTagsResponse response = request.Execute();

Java

// Generate the placement activity tags.
Generatetags request = reporting.placements().generatetags(profileId);
request.setCampaignId(campaignId);
request.setTagFormats(tagFormats);
request.setPlacementIds(ImmutableList.of(placementId));

PlacementsGenerateTagsResponse response = request.execute();

PHP

$placementTags = $this->service->placements->generatetags(
    $values['user_profile_id'],
    ['campaignId' => $values['campaign_id'],
     'placementIds' => [$values['placement_id']],
     'tagFormats' => ['PLACEMENT_TAG_STANDARD',
                      'PLACEMENT_TAG_IFRAME_JAVASCRIPT',
                      'PLACEMENT_TAG_INTERNAL_REDIRECT']
    ]
);

Python

# Construct the request.
request = service.placements().generatetags(
    profileId=profile_id, campaignId=campaign_id,
    placementIds=[placement_id])

# Execute request and print response.
response = request.execute()

Ruby

# Construct the request.
result = service.generate_placement_tags(profile_id,
  campaign_id: campaign_id,
  placement_ids: [placement_id])